第十四课.局部变量如何在内存中储存

 

对于局部变量,如果是基本类型,会把值直接存储在栈;如果是引用类型,比如String s = new String("xuenixiang");会把其对象存储在堆,而把这个对象的引用(指针)存储在栈。

再如

String s1 = new String(“xuenixiang”);

String s2 = s1;

s1和s2同为这个字符串对象的实例,但是对象只有一个,存储在堆,而这两个引用存储在栈中。

 

类的成员变量在不同对象中各不相同,都有自己的存储空间(成员变量在堆中的对象中),基本类型和引用类型的成员变量都在这个对象的空间中,作为一个整体存储在堆。而类的方法却是

该类的所有对象共享的,只有一套,对象使用方法的时候方法才被压入栈,方法不使用则不占用内存。