java基本数据类型及相互间的转换
2023-09-14 08:59:11 时间
1.首先复习一下java的基本数据类型,见下图
2.比较他们的字节数
备注:1字节(Byte)=8位(Bit)
3.转换中的知识点
*java中整数类型默认的int类型;小数类型默认的double;
*char 可以当做一中特殊的整数类型;
*int无法转换为boolean;
*小数类型转为整数类型,小数可能被舍弃,所有出现精度损失,所以需要强制转换;
*boolean 类型不能转换成任何其它数据类型;
byte b2 = 120;
//没报错的原因:
//编译时候,进行检查,看赋值大小是否超过变量的类型所容纳的范围
//如果超过,报错:从int转换到byte可能会有损失,如果没超过,编译通过
float f3 = 100L; 这种情况,整数部分,可以直接赋值给float整数部分
float f1 = 100.9; 这种情况,因为默认的是double,如果这样转换,有可能失去小数点,必须强制转换
long l3 = 1000.9f; 小数转为整数,小数可能丢失,需要强制转换
double d2 = 10.9d;
int i2 = d2; //错误: 不兼容的类型: 从double转换到int可能会有损失
char c1 = 'a';
int i3 = c1; //自动转换
int i4 = 100;
//char c2 = i4;// 错误: 不兼容的类型: 从int转换到char可能会有损失
4.四则运算中
/*
1、如果两个操作数中有一个是double类型,另一个就会转换为double类型;
2、否则,如果有一个操作数是float,另一个就会转化为float;
3、否则,如果有一个操作数是long,另一个就会转换为long;
4、否则,两个操作数都将转换为int类型。
*/
*面试陷阱
byte b1 = 10;
byte b2 = 11;
//错误: 不兼容的类型: 从int转换到byte可能会有损失
//否则,两个操作数都将转换为int类型。
byte b3 = b1 + b2 //错误
byte b3 = (byte)(b1 + b2); //正确
*面试陷阱2:
short s1 = 1;
s1 = s1 + 1; //错误: 不兼容的类型: 从int转换到short可能会有损失
short s2 = 1;
s2 += 1; // 等同于short s2 = (short)(s2 + (short)1); //正确
5.最后是从小到大顺序图一张
6.面试:什么是不可变对象(immutable object)?
解析:不可变对象指对象一旦被创建,状态就不能再改变。任何修改都会创建一个新的对象,如String、Integer及其它包装类。
7.隐式类型转换
当将占位数少的类型赋值给占位数多的类型时,java自动使用隐式类型转换(如int型转为long型)
8.显式类型转换
当把在级别高的变量的值赋给级别低变量时,必须使用显式类型转换运算(如double型转为float型)
欢迎关注我的微信公众号:安卓圈
相关文章
- Java实现 LeetCode 756 金字塔转换矩阵(DFS)
- Java实现 洛谷 P1421 小玉买文具
- java实现第三届蓝桥杯地址格式转换
- java实现第七届蓝桥杯冰雹数
- Java实现第九届蓝桥杯全球变暖
- Java实现第十届蓝桥杯质数
- Java实现 蓝桥杯 算法训练 纪念品分组
- java 11 标准Java异步HTTP客户端
- Java I/O 模型的演进
- 【JAVA】java中split以"." 、""、“|”分隔字符串
- Atititjs javascript异常处理机制与java异常的转换.js exception process
- 不重复的随机数JAVA、C#·适合初级人员玩耍。
- 常见Java面试题之如何实现对象克隆
- Java中String类的concat方法___java的String字符串的concat()方法连接字符串和“+“连接字符串解释
- Java中将Map转换为JSON
- Java //PP2.6 编写一个应用程序,将英里转换为千米(1英里等于1.60935千米)。以浮点数类型读取用户输入的英里数
- Java学习路线-27:IO操作深入与IO操作类继承体系
- Java通过PDF模板导出数据 adobe acrobat的PDF编辑器 itextpdf java导出文件输出流
- Java static静态关键字 有啥用
- 快2023年了,还不会性能调优?阿里P7亲授“Java性能调优技术宝典”看完直接涨薪5K
- java线程状态及转换
- hibernate中的java对象有几种状态,其相互关系如何(区别和相互转换)。
- 【Java 基础】Java 变量、八种基本数据类型及转换详解
- 从源头开始学习 Java 单例模式:线程安全和性能的双重保障
- 【java】Java 抽象类
- Java 在云原生中的内存问题