Java基础学习:数组03
-
三种初始化及内存分析:
-
Java内存分析:Java内存:
-
堆:
-
存放new的对象和数组;
-
可以被所有的线程共享,不会存放别的对象引用;
-
-
-
存放基本变量类型(会包含这个基本类型的具体数值)
-
引用对象的变量(会存放这个引用在堆里面的具体地址)
-
-
方法区:
-
可以被所有的线程共享
-
包含了所有的class和static变量
-
-
-
-
代码实例:数据下标越界:错误
public class ArrayDemo02 {
public static void main(String[] args) {
//1
int[] nums=new int[3];//创建一个int类型数组
//2,给数组赋值
nums[0]=1;
nums[1]=2;
nums[2]=3;
//3,获取数组元素的值
//ava.lang.ArrayIndexOutOfBoundsException: 数组下标越界
System.out.println(nums[3]);//ava.lang.ArrayIndexOutOfBoundsException: 3
}
} -
三种初始化:
-
静态初始化:
int[] a={1,2,3}; -
动态初始化:
int[] a=new int[2];
a[0]=1;
a[1]=2; -
数组的默认初始化:
//1,数组是引用类型,它的元素相当于类的实例变量,因此数组一经分配空间,其中的每个元素也被按照实例变量同样的方式被隐式初始化;
-
代码例子:
public class ArrayDemo03 {
public static void main(String[] args) {
//三种初始化
//1,静态初始化:创建+赋值
int[] a={1,2,3};//一旦定义,不可改变
//2,动态初始化:包含默认初始化
int[] a1=new int[2];
a1[0]=1;
System.out.println(a1[0]);//
//3,默认初始化
int[] a2=new int[2];
System.out.println(a2[0]);//0
}
}
-
-
笔记:
-
数组声明的时候,并不存在;只有创建的时候才会存在(内存堆中开辟内存空间);
-
实例变量:从属于对象,不加static;
-
类变量:从属于类,加static;
-
-

浙公网安备 33010602011771号