为什么书上写的定义byte和short型的变量是
byte a=6;short a = 5;
而别人写的是byte a=(byte)6;short a=(short)5;
到底该怎么写?
byte a=(byte)6 是强转 byte范围 -128127 ,在这个范围内怎么写都行,超过这个范围需要强转 ,如byte a=(byte) 128,但是结果值就不是128了,而是-12832767
自己去敲敲代码模拟执行看看结果 short同样的,范围 -32768
byte a = (byte) 128;
byte b = 12;
System.out.println(a);
System.out.println(b);
两种都对
这里涉及到了Java的类型转换
Java的基本数据类型包括八种:
整数类型(byte,short,int long)
浮点数类型(double,float)
布尔类型(boolean)
字符类型(char)
类型从小到大依次为:
byte short int long float double
类型转换有两种:
自动(隐式)类型转换:从小类型到大类型,不需要强制转换符
强制类型转换:从大类型到小类型,需要强制转换符实现强制转换
别人的写法是把6当做了int型,但是byte也是可以直接赋值的
有用记得给个采纳呐