黑马程序员技术交流社区
标题:
string,new string ,new stringbuffer各存放在内存哪?
[打印本页]
作者:
章成
时间:
2011-7-22 10:11
标题:
string,new string ,new stringbuffer各存放在内存哪?
string name="zhangsan" ,string name=new string("zhangsan")" ,stringBuffer sb=new stringBuffer();
三个各自内存存储问题?
作者:
匿名
时间:
2011-7-22 11:22
string name="zhangsan" 是先在栈中创建一个对String类的对象引用变量 name,然后通过符号引用去字符串常量池 里找有没有"zhangsan",如果没有,则将"zhangsan"存放进字符串常量池 ,并令name指向”zhangsan”,如果已经有”zhangsan” 则直接令name指向“zhangsan”。
string name=new string("zhangsan")" 是用new()来新建对象的,它会在存放于堆中。每调用一次就会创建一个新的对象。
stringBuffer sb=new stringBuffer();
StringBuffer所创建的空间在盛装字串时分配的空间并不是像String那样刚好与字串所占大小相同,而是在盛装字串大小的基础上还要追加16位的空间意味着StringBuffer所创建的空间可以向其中再次追加字串。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2