ObjectUtils.isEmpty() 和 null 区别

分配内存和赋值的区别:

isEmpty () :判断值是否为空,即使已经分配内存,但没有赋值,依然是空
null: 判断值是否为空,没有分配内存, 可能出现空指针异常

public class IsEmptyTest {

    public static void main(String[] args) {
        String s1 = new String();
        String s2 = "abc";
        String s3 = "";
        String s4 = null;
        System.out.println(s1 == null);
        System.out.println(ObjectUtils.isEmpty(s1));
        System.out.println("---------------");
        System.out.println(s2 == null);
        System.out.println(ObjectUtils.isEmpty(s2));
        System.out.println("---------------");
        System.out.println(s3 == null);
        System.out.println(ObjectUtils.isEmpty(s3));
        System.out.println("---------------");
        System.out.println(s4 == null);
        System.out.println(ObjectUtils.isEmpty(s4));
    }

false
true
---------------
false
false
---------------
false
true
---------------
true
true

你可能感兴趣的:(bug,java)