JAVA基本类型转换(第2节)
基本类型转换有一下要点:
- 多个类型参与运算时,整型、浮点型、字符型都可以参与运算,唯独布尔类型不能参与运算
- 在类型转换时,涉及到类型级别,详细如下:级别从低到高:byte,short,char-->int-->long-->float-->double
- 类型级别的作用:当一个表达式中存在多个类型时,都自动转换为表达式中级别最高的那个类型进行计算
- 在进行赋值运算的时候:类型级别也有用处,详细如下:
- 如左边类型级别=右边类型级别,则直接赋值
- 如左边类型级别>右边类型级别,则直接自动转换
- 如左边类型级别<右边类型级别,则需要做强制类型转换
- 强制类型转换是数据"失真“,举例如下”
double d1 = 6; System.out.println(d1);// 6.0 int i1 = (int) 3.14; System.out.println(i1);// 3 // double d2 = 3+3.14F+3.14159+'a'+true;// 报错 double d3 = 30+3.14F+3.14159+'a';// 左边类型级别=右边类型级别,则直接赋值 int i2 = (int) (30+3.14F+3.14159+'a');// 左边类型级别<右边类型级别,则需要做强制类型转换 float f1 = 30+3.14F+'a';// 左边类型级别=右边类型级别,则直接赋值 double d4 = 30+3.14F+'a';// 左边类型级别=右边类型级别,则直接赋值 System.out.println(30+3.14F+3.14159+'a');// 133.28158938964845 System.out.println(d3);// 133.28158938964845 System.out.println(i2);// 133 System.out.println(30+3.14F+'a');//130.14 System.out.println(f1);// 130.14 System.out.println(d4);// 130.13999938964844 //强制类型转换是数据失真 byte b1 = (byte) 258; System.out.println(b1);// 2 // 解答:十进制258放在内存中存储情况如下,(258为整型,没指定类型,默认为int类型,占4个字节,一个字节8个内存位) // 00000000 00000000 00000001 00000010 // 强转为byte类型后,内存分布如下:(byte类型占1个字节,直接砍掉左侧三个字节) // 00000010 // 00000010转换为十进制为数字2
分类:
JAVA从0开始自学记录
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具