Java数据类型转换
Java数据类型转换
以前的知识稍微有点遗忘了,打算再重新整理一下吧。对于基本数据类型,不同的数据类型之间可以相互转换,但需要满足一定的规则。
转换规则
精度高的数据类型就像容量大的杯子,可以放更大的数据
精度低的数据类型就像容量小的杯子,只能放更小的数据
小杯子往大杯子里倒东西,大杯子怎么都放得下
大杯子往小杯子里倒东西,有的时候放的下,有的时候就会有溢出
注意点:虽然short和char都是16位的,长度是一样的,但是彼此之间,依然需要进行强制转换。
short类型与char类型的转换如下:
复制char a = 'C';
short b = 56;
char c = (char) b;
short d = (short) a;
低精度向高精度转换(自动转换)
低精度的数据类型能够自动转换为高精度的数据类型,即低容量能被高容量自动兼容。
如int数据类型能自动转换为long数据类型。
int a = 123;
long b = 256;
b = a;
注意点:整型和整型进行运算的时候,如果两边的值都是小于或者等于int的,那么其结果就是int。
如 short 类型 与 byte 类型相加时,最终的数据类型为 int
short a = 2;
byte b = 12;
int c = a + b;
高精度向低精度转换(强转)
高精度的数据类型也可以向低精度的数据类型进行强制转换,但数据大小需要满足低精度数据类型的取值范围,否则会有数据丢失的风险。
如 int 类型 能够 强转为 byte 数据类型
int a1 = 123;
int a2 = 490;
byte b;
b = (byte) a1;
//转换正常
System.out.println("b1:" + b);
b = (byte) a2;
//截取8位长度的二进制数,即11101010为 -22
System.out.println("b2:" + b);
System.out.println("a1的二进制:" + Integer.toBinaryString(a1));
System.out.println("a2的二进制:" + Integer.toBinaryString(a2));
输出结果如下:
b1:123
b2:-22
a1的二进制:1111011
a2的二进制:111101010
博客参考文章:https://how2j.cn/k/variable/variable-transfer/264.html#nowhere
自我控制是最强者的本能-萧伯纳
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!