关于Java的基本类型你真的了解了清楚了么

很多应聘者到企业面试Java工程师的常常会被问到,你能给我说一下Java的基本类型么? 基本上大部分人能够顺口溜一样就把八个基本类型说了一遍,倘若有面试官愿意深究的话就会顺便问下他们之间的区别,但是如果面试官不深入问的话,这个问题也就过去了。当深入去问的时候常常很多人开始云山雾罩,不知所云了。

这其实就是Java的一个最基本的知识,不管工作经验怎么样,如何仅仅注重实操,对此也应该要必须掌握的。下面详细介绍一下。

Java的基本类型主要包含如下:

  1. boolean   取值范围 是  true   和false。
  2. byte      占用内存空间为1个字节,也就是8位,由于它是有符号的,最左侧一位表示符号位,因此根据计算机的补码表示法,其取值范围是-128(二进制:1000000) 到 127 (二进制:01111111).
  3. char 类型 :占用内存空间为2个字节,也就是16位。 取值范围与于byte的算法一致。-2的15次幂到2的15次幂-1。
  4. short 类型 : 与char类型完全一致。
  5.   int类型,是计算机中最常用的类型。 占用的4个字节32位。  取值范围与于byte的算法一致。-2的31次幂到2的31次幂-1。
  6.   long 类型,是计算机中最常用的类型。 占用的8个字节64位。  取值范围与于byte的算法一致。-2的61次幂到2的61次幂-1。
  7. float类型,是浮点类型。占用的4个字节32位。取值范围比较大,远远超过long类型,大约在 -3.4E+38 和 3.4E+38 之间的范围。这是由他的数字表示法来决定的,其表示包括一个符号位、一个 8 位 指数部分和一个23 位尾数。指数位要减去127才是真正的指数数值。位数表示的是完全的小数部分。计算的时候需要用1加上尾数部分在移动小数点的位置,小数点向左还是右移动以及移动多少位由指数数值决定,移动小数点位置后就得到了该二进制浮点表示的真正的数值。这也是浮点名称的由来,小数点的位置是浮动的,所以叫浮点。
  8. double 的存储方式与float的原理一样,不过是精度更高而已。一个double类型占用了64位,包含一个符号位,11个指数位置和52个尾数位。

    在实际的工作应用中,常常碰见各种类型之间的转换的问题。隐式转换的规则是又小类型向高类型转换,由精度低向精度高转换: byte->char/short -> short -> int->long->float -> double。如果反向转换的话需要进行强制类型转换。但是可能会造成精度丢失的问题或溢出问题,比如System.out.println("257:" + (byte)255); 所以工作中判断类型取值范围是非常必要的。

猜你喜欢

转载自blog.csdn.net/zhuzg2005/article/details/84667564