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;
//多种类型进行计算的时候 最终的结果必须是这些数里最大的类型

posted on   老菜农  阅读(84)  评论(0编辑  收藏  举报

编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律

导航

统计信息

点击右上角即可分享
微信分享提示