黑马程序员技术交流社区

标题: 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