Java基本类型使用频率很高,它们的建立不是经过new关键字产生的。一般 new出来的对象都是保存在堆内,用这种方式建立小而简单的变量是不划算的。因此对于这些基本类型的建立方法,Java采起和C/C++同样的策略:不使用 new 建立,使用一个变量直接存储value,并置于栈内存中,所以更加高效。安全
Java肯定了每种基本类型的内存占用大小。ide
基本类型 | 大小 | 最小值 | 最大值 | 包装类型 |
---|---|---|---|---|
Boolean | true/false | - | - | Boolean |
char | 16 bits | Unicode 0 | Unicode 216 -1 | Character |
byte | 8 bits | -128 | +127 | Byte |
short | 16 bits | -215 | +215 -1 | Byte |
int | 32 bits | -231 | +231 -1 | Integer |
long | 64 bits | -263 | +263 -1 | Long |
float | 32 bits | IEEE754 | IEEE754 | Float |
double | 64 bits | IEEE754 | IEEE754 | Double |
- 全部数值类型都有正负符号。
- Boolean类型的大小没有明确的规定,一般取true/false。
若是须要在堆内存里表示基本数据类型的数据,能够经过基本类型对应的包装类型实现。code
//方式一: char c ="x"; Character ch = new Character(c); //方式二 Character ch = new Character("x");
在类初始化时,基本类型将会被赋予一个初始值。对象
基本类型 | 初始值 |
---|---|
boolean | false |
char | \u0000 (null) |
byte | (byte) 0 |
short | (short) 0 |
int | 0 |
long | 0L |
float | 0.0f |
double | 0.0d |
这些默认值仅在Java初始化类的时候才会被赋予,确保了基础类型的字段始终能被初始化。内存
初始默认值对于程序来讲不必定是合法的,因此为了安全,最好显式地初始化变量。it