字符串声明,然后初始化为 "" 和 null 有什么不同啊? 请详细一点,谢谢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 ""就是空串,null就是空,也就是没对象,""有对象 ""分配了内存null没有分配内存 ""申请了内存空间,只是不存储实际内容null不申请空间,严格的说是没有初始化 String s;String s1 = "";第一个.声明一个s,在内存中的栈区分配一块空间,没有任何引用值.第二个.声明一个s1,在内存中的栈区分配一块空间,同时在堆区创建一个字符串实例,其中没有内容.栈区分配的空间指向堆区的实例.这就是不同. 比较实用的理解就是String s1=null;String s2="";System.out.println(s1.toString()); 报错System.out.println(s2.toString()); 不报错 " "是一个空的字符串对象,null表示引用不参考至任何对象 null,不可预知,不可知。"",字符串长度为0。 null 就是内存中不存在对象"" 就是内存中有""对象 String s = "";分配了内存地址,不会出现空指针异常哈。而 String s = null;则没有分配内存地址,会出现空指针异常哈。 String s = new String("");在堆内存中开辟了内存,只不过值是一个""(空字符串),s的值为开辟的这块内存的地址.而String s1 = null;只是在栈内存中声名了一个变量,而这个变量不指向任何对象,也就是不指向堆内存中开辟内存的任何对象. “”空字符串表示你有一个空空的钱包null表示你连一个钱包都没有 堆区和栈区都是内存的一部分啊~!我们new出来的东东都是在堆内存中的,而声明的变量等都是在栈内存中的. ""判断是用equalnull 是用== 堆区放动态new出来的东西 栈区放局部变量和方法的参数 关于字符串匹配的问题 hibernate中,增改删记录,在线等 10000个数求第2大的数,不许用排序算法.谁有没有什么好的方法?? 两个值相同的字符串,比较的时候为什么就不相等 向各位大大门请教,JAVA 求一个原创的有源码的JAVA制作的XML转换小工具(报酬具体谈) java包名为什么不能大写? 急~~~~ 100分求程序!模仿浏览器下载网页功能! 大家帮忙看看,是什么问题 struts问题 <html:hidden property="worklistStr" value="<bean:write name='worklistId'/>" />问题:谢谢... 如何在数组中寻找元素
null没有分配内存
null不申请空间,严格的说是没有初始化
String s1 = "";第一个.声明一个s,在内存中的栈区分配一块空间,没有任何引用值.
第二个.声明一个s1,在内存中的栈区分配一块空间,同时在堆区创建一个字符串实例,其中没有内容.栈区分配的空间指向堆区的实例.这就是不同.
String s1=null;
String s2="";System.out.println(s1.toString()); 报错
System.out.println(s2.toString()); 不报错
null,不可预知,不可知。
"",字符串长度为0。
而 String s = null;则没有分配内存地址,会出现空指针异常哈。
在堆内存中开辟了内存,只不过值是一个""(空字符串),s的值为开辟的这块内存的地址.
而String s1 = null;
只是在栈内存中声名了一个变量,而这个变量不指向任何对象,也就是不指向堆内存中开辟内存的任何对象.
null表示你连一个钱包都没有
我们new出来的东东都是在堆内存中的,而声明的变量等都是在栈内存中的.
null 是用==
堆区放动态new出来的东西 栈区放局部变量和方法的参数