前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java基础学习-基本数据类型之间的转换

Java基础学习-基本数据类型之间的转换

原创
作者头像
FutureTester
发布2021-12-12 11:22:23
3960
发布2021-12-12 11:22:23
举报
文章被收录于专栏:FutureTester

Java语言还是至关重要,熟悉Java语言对测试帮助非常大,以前也断断续续学习了一段时间,因为一些原因后来还是以python为主,Java就暂且搁置了,最近打算重新开头学习一遍。从Javase基础语法到面向对象最后在多线程、网络编程、框架等,大概这么一个学习路线。

第一节从基本数据类型转换开始,直接开始吧:

  • 在赋值运算或算术运算时,要求数据类型相同,否则要进行类型转换
  • 除Boolean类型外,所有的基本数据类型因为各自的精度不同,赋值时都要考虑这个问题
  • 除Boolean类型外,所有的基本数据类型包括:整型,浮点型,字符型

转换方式

自动转换(隐形转换)

注意

1、在进行算术运算操作的时候,必须要求数据类型一致,否则无法操作

2、在运算过程中,如果两个值的类型不一致,会自动将小的类型转换为大的类型

代码语言:javascript
复制
                   byte b = 10;
                   int a = 20;
                   int c;
                   c = a+b;

强制转换

注意

1、在运算过程中可以手动强制转换,将大的类型转换为小的类型

实现方式(datatype)

代码语言:javascript
复制
                    byte b = 10;
                    int a = 20;
                    byte c;
                    c = (byte)(a+b);

输出值为30

2、强制转换时,当心丢失数据或失真

当将一种数据类型强制转换为另一种类型,而又超出了目标数据类型的表示范围,就会被截断为一个完全不同的值

3、强制转换,会发生精度损失,结果可能不准确

代码语言:javascript
复制
                        byte b = 10;
                        int a = 200;
                        byte c;
                        c = (byte)(a+b);

输出值为-46

原因:

我们想要的值为210210的二进制为11010010,第一位为符号位0是正,1是负,

总结:

=右侧:所有变量先转换为字节数量最多的数据类型,再计算

=两侧:左侧宽度>右侧宽度 自动转换

左侧宽度<右侧宽度 强制转换

特例:

可以将整形常量直接赋值给byteshort,char等类型变量,而不需要进行强制类型转换,只要不超出其表示范围

代码语言:javascript
复制
                   short a = 12; //属于合法
                   short a = 1313312313; // 属于非法

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 转换方式:
    • 自动转换(隐形转换)
      • 强制转换
        • 特例:
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档