1、所有局部变量都放在栈内存中保存,不管其是基本类型的变量还是引用类型的变量,都存储在各自的方法栈区中;但引用类型变量所引用的对象(数组对象、普通java对象)则总是存储在堆内存中。
2、全局变量作为对象 的一部分,初始化对象时,会存储在堆中。
3、引用变量何时只是栈(stack)内存中的变量本身,何时又变为实际的java对象?
规则很简单:引用变量本质上只是一个指针,只要程序通过引用变量访问属性,或者通过引用变量访问方法,该引用变量将由它引用的对象代替。
1、所有局部变量都放在栈内存中保存,不管其是基本类型的变量还是引用类型的变量,都存储在各自的方法栈区中;但引用类型变量所引用的对象(数组对象、普通java对象)则总是存储在堆内存中。
2、全局变量作为对象 的一部分,初始化对象时,会存储在堆中。
3、引用变量何时只是栈(stack)内存中的变量本身,何时又变为实际的java对象?
规则很简单:引用变量本质上只是一个指针,只要程序通过引用变量访问属性,或者通过引用变量访问方法,该引用变量将由它引用的对象代替。