java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > Java 空和null

Java 空和null的区别

作者:二哈喇子!

本文主要介绍了Java 空和null的区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

前言 StringUtils

提示:这里可以添加本文要记录的大概内容:

StringUtils 是 Apache Commons Lang 库中提供的一个工具类,专为处理 java.lang.String 类型的对象而设计。这个类提供了大量静态方法,用于执行各种常见的字符串操作,如检查空值、空白字符处理、比较、查找、截取、转换、拆分、拼接、填充、修剪等。StringUtils 类旨在作为 Java 标准库中 String 类方法的补充,提供更加便捷、高效且 null 安全的字符串处理功能。

以下几个方面概括了 StringUtils 的核心特点和用途:

使用 StringUtils 类的主要优点在于其简化了字符串处理逻辑,增强了代码可读性,同时提供了对 null 值的安全处理,有助于减少潜在的运行时错误。在Java开发中,尤其是在处理用户输入、数据清洗、配置解析、日志记录、数据序列化与反序列化等场景中,StringUtils 类方法常被广泛应用。要使用这些方法,需确保已将 org.apache.commons:commons-lang3 库添加到项目的依赖中。

提示:以下是本篇文章正文内容,下面案例可供参考

当然可以,接下来我将通过代码示例进一步详细阐述Java中"空"和"null"的区别:

1. 空(empty):

字符串:

String emptyString = "";
System.out.println(emptyString.length()); // 输出:0
System.out.println(emptyString.isEmpty()); // 输出:true

以上代码创建了一个空字符串"",其length()方法返回0,表示没有包含任何字符。同时,isEmpty()方法返回true,进一步验证这是一个空字符串。

集合:

List<String> emptyList = new ArrayList<>();
System.out.println(emptyList.size()); // 输出:0
System.out.println(emptyList.isEmpty()); // 输出:true

Set<String> emptySet = new HashSet<>();
System.out.println(emptySet.size()); // 输出:0
System.out.println(emptySet.isEmpty()); // 输出:true

这里创建了两个空集合:一个空的ArrayList和一个空的HashSet。它们的size()方法都返回0,表示没有包含任何元素。isEmpty()方法均返回true,确认它们是空集合。

2. null:

引用类型变量:

String nullString = null;
List<String> nullList = null;

try {
    System.out.println(nullString.length()); // 抛出 NullPointerException
    System.out.println(nullList.size()); // 抛出 NullPointerException
} catch (NullPointerException e) {
    System.out.println("Caught NullPointerException");
}

上述代码中,nullStringnullList分别被赋值为null。当试图调用它们的length()size()方法时,会抛出NullPointerException,因为它们并未指向任何实际对象。在实际编程中,需要通过条件判断或使用Objects.requireNonNull()等方法来避免此类异常。

基本类型变量:

int primitiveInt = 0;
Integer objectInt = null;

System.out.println(primitiveInt); // 输出:0
System.out.println(objectInt); // 输出:null

这里展示了基本类型变量(primitiveInt)与包装类型变量(objectInt)的区别。基本类型变量不能取null值,如primitiveInt被赋值为0,输出其值为0。而包装类型变量可以取null值,如objectInt被赋值为null,输出其值为null

3. isBlank

isBlank 包括了 empty 的检查范围,即 null 和空字符串

StringUtils.isBlank :是空字符串、只包含空白字符
!StringUtils.isBlank:非空字符串、不只包含空白字符

StringUtils.isBlank 是 Apache Commons Lang 库中提供的一个实用方法,用于判断给定的字符串是否为空白。这里的“空白”不仅包括空字符串(""),还包括只包含空白字符(如空格、制表符、换行符等)的字符串。具体来说,StringUtils.isBlank 方法的行为如下:

简而言之,StringUtils.isBlank 方法旨在检测一个字符串是否既无实质内容又无意义,即要么完全没有字符,要么全部由空白字符组成。在编程实践中,此方法常用于数据验证、清理或格式化,帮助开发者快速判断一个字符串是否需要进一步处理或是否可以视为无效输入。

使用示例:

import org.apache.commons.lang3.StringUtils;

public class Example {
    public static void main(String[] args) {
        String emptyString = "";
        String whitespaceString = "     ";
        String nonEmptyString = "Hello, World!";

        System.out.println(StringUtils.isBlank(emptyString)); // 输出:true
        System.out.println(StringUtils.isBlank(whitespaceString)); // 输出:true
        System.out.println(StringUtils.isBlank(nonEmptyString)); // 输出:false
    }
}

在这个示例中,StringUtils.isBlank 分别判断了空字符串、只包含空白字符的字符串和非空白字符串,输出结果反映了它们是否被识别为空白。

总结:

通过上述代码示例,我们可以更直观地看到Java中"空"(empty)和"null"的区别:

 到此这篇关于Java 空和null是两回事的文章就介绍到这了,更多相关Java 空和null内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文