发布时间:
Aug 23, 2013
更新时间:
Aug 23, 2013
总字数:746
阅读时间:2m
作者: 谢先斌
Java中""与null的区别与总结
类型问题
在Java中null是一个关键字,null本身代表一个不确定的对象(或空对象),但不属于java.lang.Object类型,null不能用于基本数据类型。(在C语言中,NULL指针是一个无类型指针,在ASCII码的第一个字符是NULL,它的数值是0,占用1字节,C语言把它作为字符串的最后一个字符,以表示字符串到此结束."\0"。)
在Java中""是一个长度为零的空字符串,是String类的一个实例化对象。
内存分配问题
String s=null;只是声明了一个String对象的引用,但是这个引用未指乡任何内存空间;而String s="";这个引用指向了一块空字符串的内存空间。
操作问题
NULL代表声明了一个不确定的队形(或空对象),对空对象做任何操作都不非法的,当然除了=和==。""`是一个字符串了,该字符串没有内容,长度为零,对字符串的所有操作都适用于它。
测试实例
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
//当提示输入一空行时,我们敲击回车:这时str存的因为一个空串
System.out.println("please input one line:");
String str = sc.nextLine();
System.out.println("line:"+str.length());
System.out.println(str.equals(""));
System.out.println(str.equals(null));
System.out.println(str==null);
System.out.println("------");
//null是对象吗? 属于Object类型吗?
if (null instanceof java.lang.Object) {
System.out.println("null属于java.lang.Object类型");
} else {
System.out.println("null不属于java.lang.Object类型");
}
System.out.println("------");
String mess = null
//System.out.println(mess.length());//改行报 java.lang.NullPointerException,即空指针异常。
System.out.println("The end of main thread.");
}