Java原始数据类型
基本类型由编程语言预定义,并由保留关键字命名。基本类型表示单个值而不是对象,并且基本值不与其他基本值共享状态。 Java中有八种原始数据类型,如下所示:
- byte
- short
- int
- long
- float
- double
- boolean
- char
Java中的这些原始类型可以分为四类
- 整数–属于此组的基本类型为byte,short,int和long。所有这些原始类型都代表全值有符号数。
- 浮点数–此组中包含的基本类型为浮点数和带分数的双精度表示数字。
- 字符–该组包括char,其值为16位Unicode字符。
- 布尔值–该组包括布尔值原始类型,其值为true或者false。
Java中的原始数据类型
字节-字节数据类型是8位带符号的2的补码整数。最小值为-128,最大值为127(含)。字节数据类型对于在大型数组中保存内存很有用。
public class Test { public static void main(String[] args) { //Error - range is -128 to 127 //byte b = 145; byte b = 124; System.out.println("Value- " + ++b); } }
输出:
Value- 125
short:short数据类型是一个16位带符号的二进制补码整数。最小值为-32,768,最大值为32,767(含)。
int:int数据类型是32位带符号的2的补码整数,最小值为-231,最大值为231-1(即-2,147,483,648至2,147,483,647)。在Java SE 8和更高版本中,可以使用int数据类型表示无符号的32位整数,其最小值为0,最大值为232-1. 包装器类Integer提供了将int数据类型用作无符号整数的方法。
long:long数据类型是64位二进制补码整数。带符号的long的最小值为-263,最大值为263-1. 在Java SE 8和更高版本中,可以使用long数据类型来表示无符号的64位long,其最小值为0,最大值为244-1. 当我们需要一个比int提供的值宽的值范围时,请使用此数据类型。
float:float数据类型是单精度32位IEEE 754浮点。
对于浮点数据类型数字,我们需要使用后缀f或者F,否则数字将被视为双精度。
float f = 4.678f;
永远不要将这种数据类型用于精确值,例如货币。需要小数部分时可以使用float类型的字段,但是不需要很高的精度。
public class Test { public static void main(String[] args) { float f = 0.72f; float result = 1 - f; System.out.println("Value- " + result); } }
输出:
Value- 0.27999997
如我们所见,价值失去了一些精度。
double:double数据类型是双精度64位IEEE 754浮点。对于十进制值,此数据类型通常是默认选择。像float一样,这种数据类型绝对不能用于货币等精确值。
布尔值:布尔数据类型只有两个可能的值:true和false。将此数据类型用于跟踪真/假条件的简单标志。
public class Test { public static void main(String[] args) { boolean b = false; if(!b){ System.out.println("I am here!"); } } }
输出:
I am here!
char:char数据类型是单个16位Unicode字符。最小值为" \ u0000"(或者0),最大值为" \ uffff"(或者65,535(含))。
要定义字符,可以使用单引号引起来的字符,也可以提供该字符的unicode。
例如,在以下程序中,两个char变量都分配了char'a'。
public class Test { public static void main(String[] args) { char c = 'a'; char ch = '\u0061'; System.out.println("Value- " + c); System.out.println("Value- " + ch); } }
基本类型的默认值
声明字段时,不一定总是需要分配值。编译器会将已声明但未初始化的字段设置为合理的默认值。
下表总结了Java中原始数据类型的默认值。
数据类型 | 默认值(对于字段) |
---|---|
byte | 0 |
short | 0 |
int | 0 |
long | 0L |
float | 0.0f |
double | 0.0d |
char | ‘\u0000’ |
boolean | false |
参考:https://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html