黑马程序员技术交流社区

标题: string 小问题 [打印本页]

作者: 王--明    时间: 2012-2-23 10:09
标题: string 小问题
string = null 和string = “”;
何时各自定义,内存怎么分配。

作者: 张开开    时间: 2012-2-23 11:18
这种方式我还真没有见过!是不是String a="" 和String a=null; 应该要有个名字吧,或者用new了
作者: 沈样    时间: 2012-2-23 11:24
string = null 应该是在栈内存中开了个string地址为空 和string = “”是把栈内的string地址引到了String池中的""的地址;
如有不对请指出
作者: 仵先进    时间: 2012-2-23 11:38
string   str="",表示一个空串,被实列化了,占用了内存空间  
  string   str=null,表示一个空引用,没有占用了空间
作者: 【专】【属】    时间: 2012-2-23 13:15
同意上楼的,
不过很要注意的对于null的字符串调用对象的方法会抛出NullPointException的异常,而对""这样的对象这不会。

作者: 彭沛东    时间: 2012-2-23 13:40
String  str= “”;等于在栈内存中开辟空间。
String str = null;没有初始化、也就是没开辟空间、容易报空指针异常。
         
作者: 陈伟    时间: 2012-2-23 14:16
string = null
表示定义了一个引用型变量string,不指向任何对象,当该变量指向的变量使用完毕,可以这样写释放内存
string = “”;
表示定义了一个引用型变量string指向一个内容为空的对象;
作者: 朱皓    时间: 2012-2-23 14:46
string str=null;是指声明了一个string类型变量的引用,但是在堆内存中并没有开辟空间;
string str="";是指黑马声明了一个string类型变量的引用,在堆内存中也开辟了空间,但是长度为0;
作者: 黄锦成    时间: 2012-2-23 14:58
String s = null :只是定义了一个字符串变量,没有在内存中开辟空间
String s= "";定义了一个字符串变量,在内存中开辟了空间,内容为空





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2