JAVA中isEmpty和null以及""的区别

简介:

这是一个比较容易混淆的概念,为了弄清楚这个问题,最好的方法当然是写程序来验证,上代码吧~~:

    /** 
     *  
     */  
    package JavaTest;  
      
    public class TestNull {  
      
        /** 
         * @param args 
         */  
        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 = ''");  
            }  
        }  
      
    }  


以上输出:

    String a = new String  
    String b = ""  
    String c =null  

分析:

    此时a是分配了内存空间,但值为空,是绝对的空,是一种有值(值存在为空而已)  
    此时b是分配了内存空间,值为空字符串,是相对的空,是一种有值(值存在为空字串)  
    此时c是未分配内存空间,无值,是一种无值(值不存在)  





目录
相关文章
|
7天前
|
前端开发 JavaScript Java
Java与JavaScript的区别与联系:有人的地方就有江湖,有浏览器的地方就有JavaScript
Java与JavaScript的区别与联系:有人的地方就有江湖,有浏览器的地方就有JavaScript
|
8天前
|
安全 Java
【JAVA】在 Queue 中 poll()和 remove()有什么区别
【JAVA】在 Queue 中 poll()和 remove()有什么区别
|
1天前
|
Java
【JAVA学习之路 | 基础篇】==与equals方法的区别
【JAVA学习之路 | 基础篇】==与equals方法的区别
|
2天前
|
安全 编译器 C语言
NULL和nullptr到底是什么?它们的区别又是什么?
NULL和nullptr到底是什么?它们的区别又是什么?
|
7天前
|
消息中间件 前端开发 Java
java面试刷题软件kafka和mq的区别面试
java面试刷题软件kafka和mq的区别面试
|
8天前
|
安全 Java 开发者
Java一分钟之-Optional类:优雅处理null值
【5月更文挑战第13天】Java 8的`Optional`类旨在减少`NullPointerException`,提供优雅的空值处理。本文介绍`Optional`的基本用法、创建、常见操作,以及如何避免错误,如直接调用`get()`、误用`if (optional != null)`检查和过度使用`Optional`。正确使用`Optional`能提高代码可读性和健壮性,建议结合实际场景灵活应用。
23 3
|
8天前
|
Java 开发框架 XML
JDK、JRE、Java SE、Java EE和Java ME有什么区别?
JDK、JRE、Java SE、Java EE和Java ME有什么区别?
|
8天前
|
Java
java一分钟之-字符流与字节流的区别
【5月更文挑战第11天】Java的输入输出通过流操作,分为字符流和字节流。字节流处理二进制数据,如图片、音频,基类是`InputStream`和`OutputStream`;字符流处理文本,基类是`Reader`和`Writer`。字符流涉及编码转换,字节流不涉及。易错点包括乱码(需指定编码)、混用流类型和忘记关闭流。示例展示了字节流和字符流读文件。理解区别并注意编码和资源管理可提高代码质量。
38 3
|
8天前
|
安全 Java 编译器
Java中String、StringBuilder和StringBuffer的区别
Java中String、StringBuilder和StringBuffer的区别
12 1
|
8天前
|
Java 测试技术 Maven
Spring Boot单元测试报错java.lang.IllegalStateException: Could not load TestContextBootstrapper [null]
Spring Boot单元测试报错java.lang.IllegalStateException: Could not load TestContextBootstrapper [null]