Java学习——数据类型
学习内容来源:变量和数据类型
基本数据类型
基本数据类型是CPU可以直接进行运算的类型。
Java定义了以下几种基本数据类型:
-
整数类型:byte,short,int,long
-
浮点数类型:float,double
-
字符类型:char
-
布尔类型:boolean
计算机内存的最小存储单元是字节(byte),一个字节就是一个 8 位二进制数,即 8 个 bit。它的二进制表示范围从00000000~11111111。
几种基本数据类型占用的字节数:
- byte:1个字节
- short:2个字节
- int:4个字节
- long:8个字节
- float:4个字节
- double:8个字节
- char:2个字节
整型
对于整型类型,Java 只定义了带符号的整型,因此,最高位的 bit 表示符号位(0 表示正数,1 表示负数)。
定义整型的例子:
int i = 2147483647;
int i2 = -2147483648;
int i3 = 2_000_000_000; // 加下划线更容易识别
int i4 = 0xff0000; // 十六进制表示的16711680
int i5 = 0b1000000000; // 二进制表示的512
long l = 9000000000000000000L; // long型的结尾需要加L
各种整型能表示的最大范围如下:
- byte:-128 ~ 127
- short: -32768 ~ 32767
- int: -2147483648 ~ 2147483647
- long: -9223372036854775808 ~ 9223372036854775807
浮点数
浮点类型的数就是小数,因为小数用科学计数法表示的时候,小数点是可以“浮动”的,如 1234.5 可以表示成 12.345x102,也可以表示成 1.2345x103,所以称为浮点数。
定义浮点数的例子:
float f1 = 3.14f;
float f2 = 3.14e38f; // 科学计数法表示的3.14x10^38
double d = 1.79e308;
double d2 = -1.79e308;
double d3 = 4.9e-324; // 科学计数法表示的4.9x10^-324
浮点数可表示的范围非常大,float类型可最大表示 3.4x1038,而double类型可最大表示 1.79x10308。
布尔类型
布尔类型boolean只有true和false两个值,布尔类型总是关系运算的计算结果。
注意:Java 语言对布尔类型的存储并没有做规定,因为理论上存储布尔类型只需要 1 bit,但是通常 JVM 内部会把 boolean 表示为 4 字节整数。但是 Boolean 数组在编译的时候就会被编译成 byte 数组,所以在数组中 Boolean 占 1个字节。
例子:
boolean b1 = true;
boolean b2 = false;
boolean isGreater = 5 > 3; // 计算结果为true
int age = 12;
boolean isAdult = age >= 18; // 计算结果为false
字符类型
字符类型 char 表示一个字符。Java 的 char 类型除了可表示标准的 ASCII 外,还可以表示一个 Unicode 字符。
注意:char 类型使用单引号',且仅有一个字符,要和双引号 " 的字符串类型区分开。
例子:
char a = 'A';
char zh = '中';
引用类型
引用类型内部存储一个“地址”,指向对象在内存中的位置。引用类型最常用的就是 String 字符串
String s = "hello";
常量
定义变量的时候,如果加上 final 修饰符,这个变量就变成了常量。
final double PI = 3.14; // PI是一个常量
PI = 300; // compile error! 不能给加上 final 修饰符的变量重新赋值。