Java数据类型

  我之所以写这篇博客,是因为我突然意识到基础的重要性,特别对于那些基础的东西,往往可能成为你以后面试的绊脚石,所以现在我们就必须清除这些障碍,下面我简单的总结一下Java的数据类型,大家看了就当做复习吧!

  Java语言支持两种类型:基本类型(Primitive Type)和引用类型(Reference Type),下面用一张图片略略展示一下:

Java数据类型_第1张图片

  整数类型:

  这里我把byte、short、int、long、char,我之所以把char归纳进整数类型,因为它在内存中的存储方式也是跟其他整数类型的一样,只不过是在数值在拿出来的时候转化成特定的字符而已。

  下面我们看看这些类型的表示范围:

类型 内存占用空间 范围
byte 1个字节 -2^7 - 2^7-1
short 2个字节 -2^15 - 2^15-1
int 4个字节 -2^31 - 2^31-1
long 8个字节 -2^63 - 2^63-1
char 2个字节 0 - 2^16

  从上面我们可以看出几点:

  1.Java数据类型的范围是规定的,无论在windows还是linux,都一样,这样就保证了跨平台性。

  2.Java数据没有像C语言那样有signed和unsigned之分。

  3.char类型没有负数的概念。

  Java中整数的表达形式有两种必须掌握的,就是八进制和十六进制,八进制以0开头,十六进制以0x或者0X开头,其中10-15分别用a-f来(不区分大小写)表示。

 

 1 public class Scale {
 2 
 3     public static void main(String[] args) {
 4         
 5         /**
 6          * 八进制数
 7          * @author Guo
 8          */
 9         int a = 023;
10         System.out.println(a);
11         
12         /**
13          * 十六进制
14          * @author Guo
15          */
16         int b = 0x32ac;
17         System.out.println(b);
18     }
19 } 

  Java对于超出范围的数对怎么对待呢?

 1 public class OutOfBound {
 2 
 3     public static void main(String[] args) {
 4         
 5         /**
 6          * 这里输出127
 7          * @author Guo
 8          */
 9         byte a = 127;
10         System.out.println(a);
11     
12         /**
13          * 这里输出了-128
14          * @author Guo
15          */
16         byte b = (byte) 128;
17         System.out.println(b);
18     }
19 }

Java数据类型_第2张图片

  Java对于超出范围的数,依然是按照补码的规则就是计算,就好像在一个范围内循环的感觉。

  

  浮点类型:

  Java的浮点类型有两种:float和double,浮点类型有固定的表示范围和字段长度,字段的长度也是与平台无关

数据类型

内存占用空间

表示范围

float

4个字节

-3.403E38-3.403E38

double

8个字节

-1.798E308-1.798E308

  对于float类数值,第1位是符号位,接下来8位表示指数,再接下来的23位表示尾数;

  对于double型数值,第1位是符号位,接下来11位表示指数,再接下来的52位表示尾数。

 

  布尔类型:

  布尔型只有一个boolean类型,用于表示逻辑上的真假,在Java中,boolean数值只有true或者false

 

  空类型(null Type):

  就是null值的类型,这种类型没有名称,因为null类型没有名称,所以不可能声明一个null类型的变量或者转换到null类型,空引用(null)是null类型变量唯一的值,空引用可以转成任何引用类型。

  

 

 

 

 

 

 

 

 

你可能感兴趣的:(java)