Java 中 "" 与 null 的区别与总结

发布时间: 更新时间: 总字数:742 阅读时间:2m 作者: IP上海 分享 网址

Java""null的区别与总结

类型问题

Javanull是一个关键字,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.");
}
Home Archives Categories Tags Statistics
本文总阅读量 次 本站总访问量 次 本站总访客数