迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > Java >

Java 中的 Null 和空字符串

作者:迹忆客 最近更新:2023/03/26 浏览次数:

本篇文章将讨论 Java 中 null 和空字符串之间的区别。但在此之前,我们将了解 nullempty 之间的基本区别。

Empty 就像一个空盒子,我们可以根据需要使用它来填充它或做需要。

Null 就像一个真空,带有一些与之相关的属性,因此我们既不能认为它是空的,也不能认为它是满的。

在 Java 中,字符串是指字符序列。例如,delftstack 是一个字符串。

我们经常在 Java 中看到空字符串和 null 字符串。很多人认为空字符串和空字符串是一样的,但是空字符串和空字符串是有区别的。


在 Java 中使用空字符串

String a = ""; // empty string

这里的 a 是一个空字符串。当我们将空字符串分配给 string 变量时,它表明 reference 变量引用了堆中字符串的内存位置。

空字符串是其中没有字符的字符串,它具有明确定义的长度长度为 0。我们可以对空字符串执行所有字符串操作。

我们可以通过使用 length() 方法找到它的长度,找出一些字符的索引等。


在 Java 中使用空字符串

String b = null;

这里的 b 是一个空字符串。将 null 分配给字符串变量时,引用变量不引用堆中的任何内存位置。

空字符串表示根本没有字符串。它没有长度,因为它根本不是字符串。

对空字符串应用任何标准字符串操作将导致 NullPointerException 运行时。


Java 中的空字符串示例

在这个例子中,我们创建了一个空字符串和一个空字符串,然后我们使用 length() 方法检查它们的工作情况。空字符串会引发异常,而空字符串不会。

请参见下面的示例。

public class SimpleTesting {
    public static void main(String[] args) {
        // empty string
        String a = "";
        // null string
        String b = null;

        // printing length of empty string
        System.out.println("length a = " + a.length());

        // this piece of code will still throw nullpointerexception .*
        if (b != "") {
            // printing length of null string
            System.out.println("length b =" + b.length());
        }
    }
}

输出:

length a = 0
Exception in thread "main" java.lang.NullPointerException: Cannot invoke "String.length()" because "<local2>" is null
        at SimpleTesting.main(SimpleTesting.java:15)

使用 Java 中的 equals() 方法检查 Null 和空字符串

在这个例子中,我们使用了 equals() 方法和 equal == 运算符来检查空字符串。表达式 a==b 将返回 false,因为""null 在内存中不占用相同的空间。

简单来说,我们可以说变量不指向同一个对象。a.equals(b) 将返回 false,因为 ab 指向的对象引用值不匹配。

b.equal(a) 将返回 NullPointerExpception 因为 b 指向一个模糊的引用,并且不允许任何操作。

public class SimpleTesting {
    public static void main(String[] args) {
        //empty string
        String a = "";
        //null string
        String b = null;
        System.out.println(a == b);
        System.out.println(a.equals(b));
        System.out.println(b.equals(a));
    }
}

输出:

false
false
Exception in thread "main" java.lang.NullPointerException: Cannot invoke "String.equals(Object)" because "<local2>" is null
        at SimpleTesting.main(SimpleTesting.java:13)

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

使用 Mysqldump 备份 MySQL 中的数据

发布时间:2023/05/09 浏览次数:192 分类:MySQL

本篇文章将介绍如何使用 mysqldump 只备份数据。 在这里,我们将探讨 --no-create-info 、--compact 、--skip-triggers 和 --no-create-db 选项。

更新 MySQL 表中的主键

发布时间:2023/05/09 浏览次数:61 分类:MySQL

本篇文章介绍如何更新 MySQL 表中的主键。 我们将使用 ALTER 命令对主键进行任何更改。更新 MySQL 表中的主键 我们可以在多种情况下更新 MySQL 表中的主键。

Oracle 的 decode 函数在 MySQL 中的等价物

发布时间:2023/05/09 浏览次数:115 分类:MySQL

本篇文章介绍了三种替代实现,我们可以将它们用作 MySQL 中 Oracle 的 decode() 函数的等价物。 为此,我们将使用 IF()、CASE 以及 FIELD() 和 ELT() 的组合。

更改 MySQL 服务器中的 max_allowed_packet Size

发布时间:2023/05/09 浏览次数:142 分类:MySQL

本篇文章介绍如何更改 MySQL 服务器中的 max_allowed_packet 大小。 为了了解这一点,我们将使用两个操作系统,Windows 10 和 Linux (Ubuntu)。

关闭 MySQL 中的外键约束

发布时间:2023/05/09 浏览次数:191 分类:MySQL

在本文中我们将学习在MySQL Workbench中使用FOREIGN_KEY_CHECKS来临时关闭MySQL中的外键约束。我们暂时关闭外键有多种情况。

终止 MySQL 中的连接

发布时间:2023/05/09 浏览次数:60 分类:MySQL

这篇文章将讨论 MySQL 非活动进程的问题以及我们如何杀死 MySQL 服务器中未使用的进程。终止 MySQL 中的连接

MySQL 中的 While 循环

发布时间:2023/05/08 浏览次数:126 分类:MySQL

在本文中,我们将了解如何在 MySQL 中使用 while 循环,并且我们还将看到一个相关的示例以及适当的解释以使主题更容易理解。

在 MySQL 中使用不同的值更新多行中的多列

发布时间:2023/05/08 浏览次数:106 分类:MySQL

在本文中,我们将学习使用 CASE 语句、IF() 函数、INSERT ... ON DUPLICATE KEY UPDATE 子句和 UPDATE with JOIN() 函数在 MySQL 中更新多行中具有不同值的多个列。

为 MySQL 中的多列指定唯一约束

发布时间:2023/05/08 浏览次数:123 分类:MySQL

在本篇文章中,我们将了解在 MySQL 中为多列指定唯一约束的多种方法。称为 UNIQUE 的完整性约束确保列或列组合中的每个值都是不同的。 表约束或列约束都可以是唯一约束。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便