• Java中的isEmpty方法、null以及""的区别


    public class TestNull {
     
        public static void main(String[] args) {
            String a = new String();
            String b = "";
            String c = null;
            if (a.isEmpty()) {
                System.out.println("String a = new String");
            }
     
            if (b.isEmpty()) {
                System.out.println("String b = """);
            }
     
            if (c == null) {
                System.out.println("String c =null");
            }
     
            if (null == a) {
                System.out.println("String a =null");
            }
     
            if (a == "") {
                System.out.println("a = ''");
            }
        }
    }

    控制台输出:

    分析:

    此时a是分配了内存空间,但值为空,是绝对的空,是一种有值(值存在为空而已)。

    此时b是分配了内存空间,值为空字符串,是相对的空,是一种有值(值存在为空字串)。

    此时c是未分配内存空间,无值,是一种无值(值不存在)。

    综上所述:

    isEmpty() 分配了内存空间,值为空,是绝对的空,是一种有值(值 = 空)
    "" 分配了内存空间,值为空字符串,是相对的空,是一种有值(值 = 空字串)
    null 是未分配内存空间,无值,是一种无值(值不存在)

    例子二: 

    	public static void main(String[] args) {
    		String a = new String();
    		String b = "";
    		String c = null;
    		if (a.isEmpty()) {
    			System.out.println("String a is empty");
    		}
    		if (b.isEmpty()) {
    			System.out.println("String b is empty");
    		}
    		if (c == null) {
    			System.out.println("String c = null");
    		}
    		if (null == a) {
    			// 编译器直接就提示了Dead code,a指向了一个新对象,肯定不是null了
    			System.out.println("String a =null");
    		}
    		if (a == "") {
    			System.out.println("a = ''");
    		}
    		if (a.equals("")) {
    			//由于a是字符串,字符串的比较需要用equals,不能直接用 ==
    			System.out.println("a = ''");
    		}
    		/*if (c.isEmpty()) {
    			// 这里会报空指针,即null不能使用此方法
    			System.out.println("c == null   and   c.isEmpty");
    		}*/
    		
    		List<String> list = new ArrayList<>();
    		//list.add("");
    		if (list.isEmpty()) {
    			System.out.println("list is empty");
    		}
    		System.out.println(list.size());
    	}
    /*Output:
    String a is empty
    String b is empty
    String c = null
    equals:a = ''
    list is empty
    0
    */

    end
    原文链接:https://blog.csdn.net/peng86788/article/details/80885814

  • 相关阅读:
    读取手机联络人实例
    MotionEvent中getX()和getRawX()的区别
    Android开源项目发现--- 效率开发工具篇(持续更新)
    开发资源收藏
    ViewHolder VS HolderView ?
    如何测试 Android 中的定时事件
    性能优化实例
    lamba
    并行操作多个序列map
    连续处理函数reduce
  • 原文地址:https://www.cnblogs.com/cxy2020/p/13202988.html
Copyright © 2020-2023  润新知