zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    css 选择器
    用 jupyter notebook 打开 oui.txt 文件出现的问题及解决方案
    jupyter notebook 中用 matplot 画图不显示图像
    dropna(thresh=n) 的用法
    pandas 对象中 to_pickle 方法参数命名问题,不能用frame
    Index.get_indexer 方法的含义
    7)微分
    5)函数极限与连续函数
    3)数据科学的数学之序列与极限--阶乘/指数增长比较
    2)数据科学的数学之序列与极限
  • 原文地址:https://www.cnblogs.com/cxy2020/p/13202988.html
Copyright © 2011-2022 走看看