定义byte和short型到底该怎么写呢?

为什么书上写的定义byte和short型的变量是
byte a=6;short a = 5;
而别人写的是byte a=(byte)6;short a=(short)5;
到底该怎么写?

img

byte a=(byte)6 是强转 byte范围 -128127 ,在这个范围内怎么写都行,超过这个范围需要强转 ,如byte a=(byte) 128,但是结果值就不是128了,而是-128
自己去敲敲代码模拟执行看看结果 short同样的,范围 -32768
32767

byte  a = (byte) 128;
            byte  b =  12;
             System.out.println(a);
             System.out.println(b);

img

两种都对
这里涉及到了Java的类型转换

Java的基本数据类型包括八种:
整数类型(byte,short,int long)
浮点数类型(double,float)
布尔类型(boolean)
字符类型(char)
类型从小到大依次为:
​ byte short int long float double

类型转换有两种:
自动(隐式)类型转换:从小类型到大类型,不需要强制转换符
强制类型转换:从大类型到小类型,需要强制转换符实现强制转换
别人的写法是把6当做了int型,但是byte也是可以直接赋值的
有用记得给个采纳呐