java基本数据类型转换
进行赋值和运算时,精度小的类型自动转换为精度大大数据类型 规则如下 箭头前端的可以转换为后端的类型 可以跨级 低精度向高精度转换
1、char—>int—>long—>float—>double
2、byte—>short—>int—>long—>float—>double
int a = 'a'; //ok char->int double d = 80; //ok int->double
1、有多种类型的数据混合运算时,系统首先自动将所有数据转换成容量最大的那种数据类型,然后在进行计算
int n1 = 10; float d1 = n1 + 1.1;//错误的 double d1 = n1 + 1.1;//正确 float d1 = n1 + 1.1f;//正确 有了f这个结果是float类型 //由于将要转换成容量最大的类型,所以此处d1的结果类型是double不是float
2、当我们把精度大的数据类型直接赋值给小精度数据类型时,就会报错,反之将进行自动类习惯转换
int n2 = 1.1;//错误 double是高精度类型的
3、(byte、short)和 char之间不会相互进行自动转换
把具体数据赋给byte时,先判断该数是否在byte范围内。如果是,就可以。如果是把变量赋值给byte,首先需要判断变量的类型
byte b1 = 10;//正确 范围-128~127 int i1 = 1;//正确 byte b2 = i1;//虽然范围内正确。但是类型是高精度转为低精度 错误 char c1 = b1;//错误 char和byte short之间不能进行类型转换 byte b2 = c1;相同错误错误 char和byte short之间不能进行类型转换
4、byte short char三者之间以及和同类型之间可以进行计算,在计算时,首先转换为int类型。
byte b1 = -1; byte b2 = 1; short s1 = 1; short s2 = b2 + s1;//错误,short和byte类型进行计算时,直接将结果转换为int类型了 不能赋值为byte、short类型 int i1 = b2 + s1; //正确 byte b3 = b1 + b2; //错误 相同的类型也是必须转换为int类型才开始计算
5、boolean不参与自动转换
6、自动提升原则:表达式结果的类型自动提成为操作数中最大的类型
byte b1 = 1; short s1 = 3; int i1 = 1; double d1 = 300; double d2 = b1 + s1 + i1 + d1; //多种类型进行计算的时候 最终的结果必须是这些数里最大的类型
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律