谁能下为例解释下池、栈、堆这三个东东啊
sbyvi 2007-10-11 10:04:33 String s1,s2;
s1=new String("we are students");
s2=new String("we are students");
String s3,s4;
s3="how are you";
s4="how are you";
实际上String 类型的值是放在一个字符串常量池里,s3="how are you"; s4="how are you";当s3执行完了后池里有一个对象,内容就是"how are you",再执行s4 的话,jvm首先会去池中找,当在池中找到"how are you"的话,s4直接引用它,若没找到,在创建新的对象引用.
s1=new String("we are students"); s2=new String("we are students");栈中的s1,s2分别引用堆中两个对象,堆中的这两个对象指向常量池中的同一个常量"we are students",所以s1,s2的并不相等.
------------------------
谁能以此为例解释下池、栈、堆这三个东东啊(原贴http://topic.csdn.net/u/20070928/13/ba91e7d0-f7bc-4f2d-9a79-30387e7dd292.html?1914171932)
栈中存放了s1,s2,s3,s4这四个变量,池中有"we are students" 和"how are you" 两个对象 堆中又有什么啊,上面说“栈中的s1,s2分别引用堆中两个对象”