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是未分配内存空间,无值,是一种无值(值不存在)  





目录
相关文章
|
17天前
|
Java 开发者
Java面试题:请解释内存泄漏的原因,并说明如何使用Thread类和ExecutorService实现多线程编程,请解释CountDownLatch和CyclicBarrier在并发编程中的用途和区别
Java面试题:请解释内存泄漏的原因,并说明如何使用Thread类和ExecutorService实现多线程编程,请解释CountDownLatch和CyclicBarrier在并发编程中的用途和区别
18 0
|
18天前
|
Java 大数据
解析Java中的NIO与传统IO的区别与应用
解析Java中的NIO与传统IO的区别与应用
|
4天前
|
存储 C++
C++ 中的 nullptr 和 NULL 有什么区别
C++ 中的 nullptr 和 NULL 有什么区别
10 0
|
17天前
|
存储 算法 Java
Java面试题:深入探究Java内存模型与垃圾回收机制,解释JVM中堆内存和栈内存的主要区别,谈谈对Java垃圾回收机制的理解,Java中的内存泄漏及其产生原因,如何检测和解决内存泄漏问题
Java面试题:深入探究Java内存模型与垃圾回收机制,解释JVM中堆内存和栈内存的主要区别,谈谈对Java垃圾回收机制的理解,Java中的内存泄漏及其产生原因,如何检测和解决内存泄漏问题
24 0
|
1天前
|
Java
Java中的equals()与==的区别与用法
【7月更文挑战第28天】
21 12
WXM
|
2天前
|
Java
Java三种循环语句的使用与区别
在Java中,常用的循环语句包括for循环、while循环和do...while循环。for循环适合已知循环次数的情况,其格式为for(初始化; 条件; 更新) { // 循环体 }。while循环则适合条件不确定的情况,先判断条件再执行,格式为while(条件) { // 循环体 }。do...while循环至少执行一次循环体,格式为do { // 循环体 } while(条件);。三者的主要区别在于执行顺序:for和while先判断条件再执行,而do...while先执行再判断。此外,for循环的控制变量在循环外不可用,而while循环的变量可在外部使用。
WXM
19 2
|
7天前
|
开发框架 安全 Java
.net和java有什么样的区别?
Java和.NET在本质、编程语言、生态系统与工具、跨平台性、应用领域、性能与效率以及安全性与可靠性等方面都存在明显的区别。选择哪个平台取决于具体的需求、技术栈和目标平台。
35 7
|
5天前
|
SQL Java Unix
Android经典面试题之Java中获取时间戳的方式有哪些?有什么区别?
在Java中获取时间戳有多种方式,包括`System.currentTimeMillis()`(毫秒级,适用于日志和计时)、`System.nanoTime()`(纳秒级,高精度计时)、`Instant.now().toEpochMilli()`(毫秒级,ISO-8601标准)和`Instant.now().getEpochSecond()`(秒级)。`Timestamp.valueOf(LocalDateTime.now()).getTime()`适用于数据库操作。选择方法取决于精度、用途和时间起点的需求。
18 3
|
16天前
|
存储 Java 程序员
Java面试题:请解释Java中的永久代(PermGen)和元空间(Metaspace)的区别
Java面试题:请解释Java中的永久代(PermGen)和元空间(Metaspace)的区别
43 11
|
17天前
|
存储 安全 Java
Java面试题:在JVM中,堆和栈有什么区别?请详细解释说明,要深入到底层知识
Java面试题:在JVM中,堆和栈有什么区别?请详细解释说明,要深入到底层知识
30 3