先说一下java有哪些数据类型吧:
- 基本数据类型{数值形【整型(byte,short,int,long),浮点型(float,double)】;字符型【char】;布尔类型【boolean】}
- 引用数据类型{类【class】;接口【interface】;数组【[ ]】}
两种不同数据类型的区别:
- 基本数据类型:变量存储在栈中;栈的特点是存储空间小,但是存取速度快
- 引用数据类型:变量存储在堆中;堆的特点是存储空间大,但是存取速度相对较慢
数组存放不同的基本数据类型和String时有默认值,且默认值为:
- 整型 (byte,short,int,long):默认值都是 0
- 浮点型(float,double) :默认值都是 0.0
- 布尔型(boolean) :默认值是 false
- 字符型(char) :默认值是 一个空格
- 再补充一个: 字符串(String)也有默认值,且默认值是null
- (后来才知道,字符串也是引用值,引用值存放在数组中的默认值都是null)
用代码测试一下(版本:jdk11):
public class Demo{
public static void main(String[] args){
byte[] a1 = new byte[3];
short[] a2 = new short[3];
int[] a3 = new int[3];
long[] a4 = new long[3];
float[] a5 = new float[3];
double[] a6 = new double[3];
boolean[] a7 = new boolean[3];
char[] a8 = new char[3];
String[] a9 = new String[3];
System.out.println("byte:");
for(int i = 0; i < 3; i++){
System.out.println(a1[i]);
}
System.out.println("short:");
for(int i = 0; i < 3; i++){
System.out.println(a2[i]);
}
System.out.println("int:");
for(int i = 0; i < 3; i++){
System.out.println(a3[i]);
}
System.out.println("long:");
for(int i = 0; i < 3; i++){
System.out.println(a4[i]);
}
System.out.println("float:");
for(int i = 0; i < 3; i++){
System.out.println(a5[i]);
}
System.out.println("double:");
for(int i = 0; i < 3; i++){
System.out.println(a6[i]);
}
System.out.println("boolean:");
for(int i = 0; i < 3; i++){
System.out.println(a7[i]);
}
System.out.println("char:");
for(int i = 0; i < 3; i++){
System.out.println(a8[i] + "左方有一个空格,可以看出char的默认值为空格");
}
System.out.println("String:");
for(int i = 0; i < 3; i++){
System.out.println(a9[i]);
}
}
}
result: