计算机内存的最小存储单元是字节(byte),一个字节就是一个 8 位二进制数,即 8 个 bit。
它的二进制表示范围从 00000000~11111111,换算成十进制是 0~255,换算成十六进制是
00~ff。
一个字节是 1byte, 1024 字节是 1K, 1024K 是 1M, 1024M 是 1G, 1024G 是 1T。一个拥有
4T 内存的计算机的字节数量就是:
4T = 4 x 1024G
= 4 x 1024 x 1024M
= 4 x 1024 x 1024 x 1024K
= 4 x 1024 x 1024 x 1024 x 1024
= 4398046511104
不同的数据类型占用的字节数不一样。我们看一下 Java 基本数据类型占用的字节数:
byte 恰好就是一个字节,而 long 和 double 需要 8 个字节。
基本数据类型是 CPU 可以直接进行运算的类型。 Java 定义了以下几种基本数据类型:
整数类型: byte, short, int, long
浮点数类型: float, double
字符类型: char
布尔类型: boolean
整型:对于整型类型, Java 只定义了带符号的整型,因此,最高位的 bit 表示符号位(0 表示正数,
1 表示负数)。各种整型能表示的最大范围如下:
byte: -128 ~ 127
short: -32768 ~ 32767
int: -2147483648 ~ 2147483647
long: -9223372036854775808 ~ 9223372036854775807
浮点型:浮点类型的数就是小数,因为小数用科学计数法表示的时候,小数点是可以“浮动”的,如
1234.5 可以表示成 12.345x102,也可以表示成 1.2345x103,所以称为浮点数。浮点数可表示的范围非常大, float 类型可最大表示 3.4x1038,而 double 类型可最大表示
1.79x10308。
布尔类型:布尔类型 boolean 只有 true 和 false 两个值,布尔类型总是关系运算的计算结果:
boolean b1 = true;
boolean b2 = false;
Java 语言对布尔类型的存储并没有做规定,因为理论上存储布尔类型只需要 1 bit,但是通常
JVM 内部会把 boolean 表示为 4 字节整数。
字符类型:字符类型 char 表示一个字符,注意 char 类型使用单引号',且仅有一个字符,要和双引号"的字符串类型区分开。
引用类型:
除了上述基本类型的变量,剩下的都是引用类型。例如, 引用类型最常用的就是 String 字符
串:
String s = "hello";
引用类型的变量类似于 C 语言的指针,它内部存储一个“地址”,指向某个对象在内存的位
置。
进制转换:
二进制的转换:
System.out.println("1234的二进制表示:"+Integer.toBinaryString(1234)); 八进制的转换: System.out.println("1234的八进制表示:"+Integer.toOctalString(1234)); 十六进制的转换: System.out.println("1234的十六进制表示:"+Integer.toHexString(1234)); 十进制的转换: System.out.println("1234的十进制"+Integer.toString(1234));