Java的数据类型

Java是一种强类型语言。强类型有两方面的含义:
1.所有的变量必须先声明,然后才能使用。不能够直接使用一个未定义的变量。
2.变量声明后就被指定了具体类型,只能够匹配相对应的类型的值。在编译时期会进行严格的检查,确保变量与值相对应。

Java中数据类型分成两类:基本类型和引用类型。

基本类型包括布尔类型和数值类型。
引用类型包括类、接口、数组类型以及特殊的null类型。

基本类型

Java总共有八种基本数据类型:
boolean、byte、char、short、int、long、float、long。

基本类型包括布尔类型和数值类型。数值类型又分为整数类型和浮点类型。char代表字符型,实际上字符型也是一种整数类型,相当于无符号整数类型。
整数类型包括:byte、short、char、int、long
浮点类型包括:float、double

整型

整型就是我们平时说的整数类型,实际上指4种类型。

  • byte:1个字节,在内存中占8位,表示的范围是 -2^7 ~ 2^7 -1
  • short:2个字节,在内存中占16位,表示的范围是 -2^15 ~ 2^15 -1
  • int:4个字节,在内存中占32位,表示的范围是 -2^31 ~ 2^31 -1
  • long:8个字节,在内存中占64位,表示的范围是 -2^63 ~ 2^63 -1

在通常的情况下,Java中出现的一个整数值默认数据类型就是int类型。
但是如果一个数字的值非常大时,超出了int的表数范围,Java不会自动将这个数当成long类型来处理。如果希望将一个数当做long类型处理的话,应该在该数值后边加上L,例如 long a = 0L.

字符型

字符型 char 用来表示单个字符,两个字节,在内存占据16位,Java使用16位的Unicode字符集。字符型其实也是一种整数类型,相当于无符号整数类型。计算机在底层保存字符时,实际上保存字符对应的编号,范围是0~65535.因此字符型可以直接当做整数类型来使用。

浮点型

浮点型用来表示小数。有两种:float和double。

  • float:四个字节,占据32位。代表单精度浮点数。
  • double:把个字节,占据64位。代表双精度浮点数。
    浮点数采用二进制数据来表示浮点数,因此不能精确表是一个浮点数。double类型比float类型精度要更高一点。如果想要精确表是一个浮点数,需要使用BigDecimal类。
    在Java中默认的浮点数类型是double类型,如果希望一个浮点数用float表示,则需要在浮点数后面加上f或F,例如5.12F。

Java还提供三种特殊的浮点数类型:正无穷大、负无穷大、非数。

  • 正无穷大,Java中用Double.POSITIVE_INFINITY或者Float.POSITIVE_INFINITY表示。一个正的浮点数除以0,会得到正无穷大。注意只能是浮点数类型,因为整数类型除以0,会抛出异常。
  • 负无穷大,Java中用Double.NEGATIVE_INFINITY或者Float.NEGATIVE_INFINITY表示。一个负的浮点数除以0,会得到负无穷大。
  • 非数。Java中用Double.NaN或者Float.NaN表示。0.0除以0.0或者对一个负数开方,就会得到非数。

所有的正无穷大数值都相等,所有负无穷大数值都相等。NaN和任何数都不相等,和NaN也不相等。

布尔类型

boolean类型用来表示逻辑的真或者假。用一个字节表示。boolean值只能是true或者false。

Java中基本数据类型按照所占空间大小排列如下:

boolean<1>、byte<1>、short<2>、char<2>、int<4>、float<4>、long<8>、double<8>

引用类型

引用类型包括数组、类、接口、null类型。引用类型就是对一个对象的引用。
可以声明一个引用,并不一定需要与一个对象相关联,即引用可以脱离对象独立存在。

String s;

这里只创建的是引用,并不是对象,如果此时调用引用s就会抛出运行时错误。
因此创建引用的时候同时进行初始化。

你可能感兴趣的:(Java的数据类型)