Java基础学习-基本数据类型之间的转换
Java语言还是至关重要,熟悉Java语言对测试帮助非常大,以前也断断续续学习了一段时间,因为一些原因后来还是以python为主,Java就暂且搁置了,最近打算重新开头学习一遍。从Javase基础语法到面向对象最后在多线程、网络编程、框架等,大概这么一个学习路线。
第一节从基本数据类型转换开始,直接开始吧:
- 在赋值运算或算术运算时,要求数据类型相同,否则要进行类型转换
- 除Boolean类型外,所有的基本数据类型因为各自的精度不同,赋值时都要考虑这个问题
- 除Boolean类型外,所有的基本数据类型包括:整型,浮点型,字符型
转换方式:
自动转换(隐形转换)
注意:
1、在进行算术运算操作的时候,必须要求数据类型一致,否则无法操作
2、在运算过程中,如果两个值的类型不一致,会自动将小的类型转换为大的类型
byte b = 10;
int a = 20;
int c;
c = a+b;
强制转换
注意:
1、在运算过程中可以手动强制转换,将大的类型转换为小的类型
实现方式(datatype)
byte b = 10;
int a = 20;
byte c;
c = (byte)(a+b);
输出值为30
2、强制转换时,当心丢失数据或失真
当将一种数据类型强制转换为另一种类型,而又超出了目标数据类型的表示范围,就会被截断为一个完全不同的值
3、强制转换,会发生精度损失,结果可能不准确
byte b = 10;
int a = 200;
byte c;
c = (byte)(a+b);
输出值为-46
原因:
我们想要的值为210
,210
的二进制为11010010
,第一位为符号位0
是正,1
是负,
总结:
=右侧:所有变量先转换为字节数量最多的数据类型,再计算
=两侧:左侧宽度>右侧宽度 自动转换
左侧宽度<右侧宽度 强制转换
特例:
可以将整形常量直接赋值给byte
,short
,char
等类型变量,而不需要进行强制类型转换,只要不超出其表示范围
short a = 12; //属于合法
short a = 1313312313; // 属于非法
相关文章
- java常用的7大排序算法汇总
- 基于Java实现简易的 注册 + 登录 系统 (中级)
- Java文件操作(超详细+代码示例)
- Java中对象数组的使用
- 求解最大公约数,最小公倍数(Java语言实现)
- 跨平台开发框架 Compose Multiplatform 1.0 发布
- Java小项目实现——简易的登录系统实现
- Java中的三元运算符
- 细说Java中方法的定义以及两种调用方式
- Java数据类型转换问题和以及变量类型判断问题
- Java规范开发代码书写以及常用快捷键
- Java动态代理机制分析及扩展
- Java反射最佳实践
- 打造高性能Java应用需掌握的5大知识
- Java线程面试题
- Java实现基于朴素贝叶斯的情感词分析
- 图文详解Java对象内存布局
- JAVA使用几种对称加密算法
- JAVA使用几种非对称加密
- SimpleDateFormat 工具多线程环境下导致的严重问题