随笔-0  评论-2  文章-61  trackbacks-0

关于String a="ssss"与String a=new ("aaaa")的区别,涉及到栈和堆内存分配的问题
首先在编译的时候,所有String 对象,包括字符串常量,比如上面的"ssss"和"aaaa",都会预先在常量池中占据一个位置,在真正运行的时候,他们被分配到栈中,以便加快存取速度.new  操作符告诉JVM要在堆中分配出一块内存来创建对象.

String str = "hello";
先在内存中找是不是有"hello" 这个对象,如果有,就让str指向那个"hello".如果内存里没有"hello",就创建一个新的对象保存"hello".
String str=new String ("hello")
就是不管内存里是不是已经有"hello"这个对象,都新建一个对象保存"hello"

posted on 2006-12-22 09:11 comchyi 阅读(307) 评论(0)  编辑  收藏

只有注册用户登录后才能发表评论。


网站导航: