关于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) 编辑 收藏