Java数组问题
《李刚疯狂Java》笔记
- Java数组是静态的
Java数组变量是引用类型变量,并不是数组本身,而是指向堆内存中的数组对象。
-
Java不能同时使用静态初始化和动态初始化数组
-
数组对象和数组变量
数组对象是堆内存中连续分配的空间,而数组变量是引用(类似指针的职责)
main 方法声明的变量属于局部变量,存在栈中,而数组元素作为数组对象保存在堆内存中。
###拓展: #
- Java中所有的引用变量,不需要经过初始化操作,需要进行初始化操作的是该引用变量所引用的对象。
- 异常:NullPointerException 。当通过引用变量访问实例属性时,或调用非静态方法时,若该变量未引用一个有效的对象,程序就会报错。
当发生这种错误时,应该看引用变量被调用时是否指向了有效对象。
Java 对象
局部变量(形参,方法内局部变量,代码块内局部变量)作用时间短暂,被存储在方法的栈内存中。JVM内的一个类的类变量只需一块内存空间;实例变量每次被创建即需要一块内存。
static关键字,将实例成员变为类成员。类变量初始化时处于实例变量之前。
对象的三种初始化方式:构造器,初始化块(直接添加{Xxxx}),定义变量时制定初始值。