提问的方式了解JAVA原始数据类型

「这是我参与11月更文挑战的第3天,活动详情查看:2021最后一次更文挑战」。

  • JAVA中数据类型大小和平台是32位、64位相关吗?

A:不相关,虚拟机原因会兼容平台。

  • JAVA中解析数据时,需要考虑处理器的大小端问题?(即0x1234的12是在高位还是低位)?

A:不需要。JAVA由于虚拟机的关系,屏蔽了大小端问题,需要知道的话可用ByteOrder.nativeOrder()查询。在操作ByteBuffer中,也可以使用ByteBuffer.order进行设置。

  • JAVA中short、int、long的字节分别是多少?

A:2、4、8

  • float、double是多少字节?

A:4、8

  • JAVA中BYTE、CHAR是多少字节?C++中char是多少字节?

A:JAVA中是1和2,C++中是1

  • boolean类型的大小?

A:bool类型无空间大小

  • 不可变类型有哪几种?

A:short、int、long、float、double、byte、char、boolean的包装类型,以及String。这9种属于不可变类型。

  • 类里成员如果是基本数据类型,那么会自动初始化?初始化成什么?

A:会,初始化为0或者false

  • JAVA中局部变量没初始化,会报错吗?

A:不使用的话不会报错。如果使用的话,编译器会检测到没初始化,就会报错。

  • 布尔类型可以强制转化成其他类型吗?

A:不能。boolean b = 1或者boolean b = true是不可以的。

扫描二维码关注公众号,回复: 13175645 查看本文章
  • 什么时候不能隐式转化?

A:如果丢失精度,则不能隐式转化,比如long转int或者double转long。编译器会强制使用强制转化。

  • 8种原始数据类型的类型优先级排序是?

A:byte、short、char<int<long<float<double

  • 整型包装类型的比较,下面输出是什么?

Integer num1 = 128, num2 =128;
System.out.println(num1 == num2);
A: 输出false。 值的范围在-128~127的时候Integer可以直接用==比较大小,但是超出这个范围时,==就不管用了,要用equals。大致原因是在那个范围,Integer的对象会直接用缓存对象,所以地址都相同。不在那个范围,Integer对象新生成1个对象,所以地址不同。

猜你喜欢

转载自juejin.im/post/7031194282312597511