菜鸟提问,请大家帮忙~什么时候用到String的null值啊? 同志们,有个问题想请教~要想定义一个空字符串可以这样啊?String aa="";为什么要用String aa=null啊?什么时候用到String的null值啊?就是这样的String aa=null等待回复~ 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 空值也是值 但是如果是null的话 那么就把内存空间也给高没了 String aa=""; aa为指向空字符的引用 String aa=null aa为指向空的引用 只想声明,不想实例化的时候用null String strForTest=new String("abc");strForTest=null;----->导致的结果:那么new String("abc")随时都可能被GC回收。 你要知道 "" 不等于null内存地址也不同 如果方法返回NULL ,方便判断。 如果方法返回NULL ,方便判断。 如果是用 a="",则会为你分配一块内存,a就是指向这个内存的,如果 是用a = null,则不会分配内存给你。 若String ss="";ss.length()=0若String ss=null;ss.length() NullPointerException. String str=null; 只是声明,不会分配内存地址;Steing str=“”;分配了内存地址,占用了资源 String aa=""; aa为指向 空字符的引用 String aa=null aa为指向 空的引用 是否分配内存的区别null没有分配""已经分配了 如果你用String aa=null的话GC(垃圾回收器)会在某一特定的时间对它进行回收,以释放资源!!!而String aa=""意思是句柄aa引用了一个空字符串,GC不会回收 空串是有地址空间的,null没有,一般在初始化的时候用.最好是赋予空串,避免空指针 呵呵。楼上的。一般都是声明为null吧。空指针的话是其他地方来判断避免的吧 null != ""你看一看下面的代码class TestNull{ public static void main(String[] args){ String[] str = new String[3]; str[0] = "aaaa"; str[1] = ""; System.out.println("str[0]="+str[0]); System.out.println("str[1]="+str[1]); System.out.println("str[2]="+str[2]); }} 你想要把String对象内存回收掉的话,就可以用null了 一个非常离奇古怪的问题 半学半做的Java文件传输,但是找不到问题原因,请诸位大侠帮忙 请教个小问题 jfreechart LegendItem设置填充颜色不起作用! 麻烦大家来帮我找找bug,找出一个奖励10分,分不够在加,我可用分570分,不可能有57个bug吧? MySQL 的 JDBC 下载地址,安装步骤,以及Java的调用方法 关于jbuilder 我用mDeJava.exe反编译出来的源文件,怎么不能使用啊? 怎样才能做出半透明的JMenuItem,有人会吗? 关于运行异常,方法上的声明问题 问一个似乎可笑的问题 显示/隐藏ComboBox控件的滚动条提示
aa为指向空字符的引用
String aa=null
aa为指向空的引用
strForTest=null;
----->导致的结果:
那么new String("abc")随时都可能被GC回收。
内存地址也不同
ss.length()=0若String ss=null;
ss.length() NullPointerException.
Steing str=“”;分配了内存地址,占用了资源
aa为指向 空字符的引用
String aa=null
aa为指向 空的引用
null没有分配
""已经分配了
而String aa=""意思是句柄aa引用了一个空字符串,GC不会回收
你看一看下面的代码
class TestNull{
public static void main(String[] args){
String[] str = new String[3];
str[0] = "aaaa";
str[1] = "";
System.out.println("str[0]="+str[0]);
System.out.println("str[1]="+str[1]);
System.out.println("str[2]="+str[2]);
}
}
你想要把String对象内存回收掉的话,就可以用null了