java是静态语言,在使用之前需要声明变量类型。
//声明一个可存放数据类型为String,长度为5的数组
String[] arr = new String[5];
数组初始化有两种方式
//静态初始化,方法一
String[] arr1 = new String[]{
"hello",
"world",
"hello",
"java"
};
//静态初始化方法二
String[] arr2 = {
"xixi",
"haha"
};
//动态初始化方法
String[] arr3 = new String[5];
动态初始化时,系统默认分配初始化值按照如下规则
1. 数组元素类型为基本类型中的整数(byte, short, int, long),默认初始值是0。
2. 数组元素类型为基本类型中的浮点数(float, double)默认初始值是0.0。
3. 数组元素类型为基本数据类型中的字符型(char),默认初始值是'\u0000'。
4. 数组元素类型为引用类型(类,接口,数组),默认初始值是null。
数组初始化一旦完成,就无法改变数组的长度
public static void main(String[] args) {
String[] buff = new String[]{
"v1",
"v2"
};
//声明数组
String[] movies;
movies = buff;
System.out.println(Arrays.toString(buff));
}
结果:
[v1, v2]
由上可只movies(数组变量并不需要初始化,但是该引用所引用的对象需要初始化)。
public static void main(String[] args) {
int[] iArr; //1
iArr = new int[]{ //2
1,
2
};
}
Tips: 并不是所有的基础数据类型都存储在栈区,如上此时的"1,2存储在堆区域。更明确的说,所有的局部变量都存储栈内存中(包括基本数据类型变量和引用类型变量)。但引用类型变量所引用的对象
总是存储在堆内存里。
class Person {
int age;
String name;
public Person() {
}
public Person(int age, String name) {
this.age = age;
this.name = name;
}
}
public class ArrDemo {
public static void main(String[] args) {
Person[] students = new Person[2]; //1
System.out.println(students.length); //2
Person amber = new Person(1,"amber");//3
Person nick = new Person(3, "nick"); //4
students[0] = amber; //5
students[1] = nick; //6
System.out.println(amber); //7
System.out.println(students[0]); //8
}
}
未完
疯狂Java:突破程序员基本功的16课-李刚编著 学习笔记(未完待续)
原文:https://www.cnblogs.com/amberbar/p/11610381.html