java里面的空串,null与 new String()

静态方法,静态方法使用静态绑定,不会抛出空指针异常。IsEmpty不是,所以引用null会抛出空指针异常。

IsEmpty()函数定义:

public boolean isEmpty() {
    //String
    return value.length == 0;//字符串得有长度,才能用。
    //ArrayList,HashMap
    return size == 0;
    //HashSet
    return map.isEmpty();
}

String str = new String();//调用的构造函数

public String() {
    this.value = "".value;//明显是空串的值。
}

而空串是有长度(0)与内存分配的!!!

String s1 = new String();
String s2 = "";
if("".equals(s1)) {
    System.out.println("s1是空串");
}
if("".equals(s2)) {
	System.out.println("s2是空串");
}

运行结果:

s1是空串
s2是空串

null其实很好理解,还有一种特殊的 引用类型。所谓引用数据类型就是对一个对象的引用,对象包括实例和数组两种。实际上,引用类型变量就是一个指针,只是 Java 语言里不再使用指针这个说法。

空类型(null type)就是 null 值的类型,这种类型没有名称。因为 null 类型没有名称,所以不可能声明一个 null 类型的变量或者转换到 null 类型。(这里就说明了它是不会被分配内存的。只是在堆里边引用一个地址)
空引用(null)是 null 类型变量唯一的值。空引用(null)可以转换为任何引用类型。java中的任何引用变量都将null作为默认值。

在实际开发中,程序员可以忽略 null 类型,假定 null 只是引用类型的一个特殊直接量。

注意:空引用(null)只能被转换成引用类型,不能转换成基本类型,因此不要把一个 null 值赋给基本数据类型的变量。

最后记录一篇好文章java中的null类型—有关null的9件事

发布了93 篇原创文章 · 获赞 65 · 访问量 5479

猜你喜欢

转载自blog.csdn.net/qq_44861675/article/details/105318849