1.java数据类型(两类数据类型:基本类型 (原始类型),引用类型)
┏数值型━┳━整数型:byte short int long
┏基本数据类型━━┫ ┗━浮点型:float double
┃ ┣字符型:char
数据类型╋ ┗布尔型:boolean
┃ ┏类(class)
┗引用数据类型━━╋接口(interface)
┗数组(array)
2.基本类型与默认值
基本数据类型的值就是一个数字,一个字符或一个布尔值。
数据类型 | byte | short | int | long | float | double | char | boolean |
---|---|---|---|---|---|---|---|---|
大小(bit) | 8 | 16 | 32 | 64 | 32 | 64 | 16 | 1 |
范围 | -128 ~ 127 | -32768 ~ 32767 | -2147483648 ~ 2147483647 | -9233372036854477808 ~ 9233372036854477807 | -3.40292347E+38 ~ 3.40292347E+38 | -1.79769313486231570E+308 ~ 1.79769313486231570E+308 | '\u0000' ~ '\uffff ' | true / false |
包装类 | Byte | Short | Integer | Long | Float | Double | Character | Boolean |
默认值 | 0 | 0 | 0 | 0 | 0.0f | 0.0d | '\u0000' | false |
注:
a.基本类型中,int永远占4个字节(1Byte = 8bit);
b.boolean类型长度与平台有关,其它数据类型长度都是与平台无关;
c.基本数据类型默认值仅在作为类中属性时生效。public class BasicTypeDefaultValueTest {
// 基本数据类型默认值仅在作为类中属性时生效
static byte byteX;
static short shortX;
static int intX;
static long longX;
static float floatX;
static double doubleX;
static boolean booleanX;
static char charX;
static char charXX = ' ';
public static void main(String[] args) {
int intY;
boolean booleanY;
System.out.println(byteX); // 输出0
System.out.println(shortX); // 输出0
System.out.println(intX); // 输出0
System.out.println(longX); // 输出0
System.out.println(floatX); // 输出0.0
System.out.println(doubleX); // 输出0.0
System.out.println(booleanX); // 输出false
System.out.println((int)charX); // 输出0
System.out.println((int)charXX);// 输出32
//System.out.println(intY); // 编译不通过
//System.out.println(booleanY); // 编译不通过
}
}
3.引用类型与默认值
引用类型(reference type)指向一个对象,不是原始值,指向对象的变量是引用变量。
引用数据类型的值是指向内存空间的引用,就是地址,所指向的内存中保存着变量所表示的一个值或一组值。
null是所有引用类型的默认值。
java里面除去基本数据类型的其它类型都是引用数据类型,自己定义的class类也是引用类型,可以像基本类型一样使用。
引用类型常见的有:String,StringBuffer,ArrayList,HashMap等。
4.基本类型与引用类型比较
a.基本数据类型分配在栈上,引用数据类型分配在堆上。
b.基本类型使用“==”比较时,他们比较的是值。
基本类型和他的包装类(引用类型)使用==“”和方法equals()比较时,他们比较的都是值。
引用类型使用“==”比较时,他们比较的是地址。
引用类型使用方法equals()比较时,他们比较的是值。