首先说说在java代码中的区别:
" "分配了内存 ;null没有
调用null的字符串的方法会抛空指针异常。
""是一个字符串(String).它在内存中是存在的.它可以使用Object对象中的方法(如"".toString();"".equals())
而null它是一个空对象.在内存中是不存在的.它不可以使用Object对象中的方法
""占内存.. 在内存中会分配一个空间.
null不占内存. 为空引用.
String str1 = null; str引用为空
String str2 = ""; str应用一个空串
也就是null没有分配空间,""分配了空间,因此str1还不是一个实例化的对象,儿str2已经实例化。
注意因为null不是对象,""是对象。所以比较的时候必须是 if(str1==null){....}和if(str2.equals("")){}
对象用equals比较,null用等号比较。因此,如果str1=null;下面的写法错误:
if(str1.equals("")||str1==null){//如果str1没有值,则....
//。。。。
}
正确的写法是 if(str1==null||str1.equals("")){ //先判断是不是对象,如果是,再判断是不是空字符串
//...
}
补充:
Java里面,类的对象都是用句柄来访问的,就像C里面的指针。
而在Java里面有两个比较相等的方法一个是用“==”,另一个是String 里面的equals()方法,两个的区别是,前者比较的是地址,后者比较的 是内容。
例如你写了这样的一个语句
String str1,str2;
那就是定义了两个指向不同String实例的句柄,现在他们都是指向null 的所以str1==str2==null,此时你不能用length()方法,因为,他们 都没有指向具体的对象,如果调用这个方法的话,会返回一个 NullPointerException。 之后,如果你写了这样的语句 str1=new String(); 那么str1将指向一个具体的String实例,所以str1!=str2,str1!=null, 而且更重要的是str1!="",因为""与str1所指的是两个不同的地址。 但方法str1.length()的返回值就是0了,也就是字符串为空。 同样即使你再这样写
str2=new String(); 这个时候依然是str1!=str2,因为他们指向的是两个不同的地址, 但如果你用str1.equals(str2)的话,返回值就是true,因为他们的内 容相同,都为空。
分享到:
相关推荐
总结来说,理解Java中`null`、空字符串`""`的区别,以及如何安全地进行比较,是编写健壮代码的关键。同时,了解字符串对象的内存地址和内容相等性的差异,可以帮助我们更好地理解和调试程序。在实际开发中,应始终...
以下是从标题和描述中提取的关于Java中`null`的9个关键知识点,以及每个知识点的详细解释: 1. **null的定义**: `null`是Java中的一个关键字,它不是一个对象,而是表示一个引用变量没有指向任何实例。例如,当你...
在编程语言中,如Java、Python或C#,当我们通过API或库与数据库交互时,需要确保在对应字段设置为null。例如,在Java的JDBC中: ```java PreparedStatement pstmt = connection.prepareStatement("INSERT INTO ...
首先,Java中对象的“空”通常指的是`null`值,即对象引用没有指向任何实例。在Java中,你可以直接使用`==`运算符来比较一个对象引用是否为`null`。例如: ```java Object obj = getSomeObject(); if (obj == null)...
以下是一些关于Java开发的常见问题及其解决方法。 首先,确保Java开发环境的正确安装和配置。在Windows系统中,可以通过快捷键Win+R打开运行窗口,输入“cmd”进入命令提示符,然后输入“java -version”,如果能...
在 Java 中,对 null 进行强制类型转换是一个常见的操作,但是在实际开发中,是否会抛出异常呢?今天,我们将通过实例代码来介绍 Java 中对 null 进行强制类型转换的方法。 首先,让我们看一下基本类型的强制类型...
在Java开发中,我们经常会遇到从集合类List、Map中取出数据转换为String的问题,但如果处理不好,经常会遇到空指针异常java.lang.NullPointerException。因此,了解Java String转换时为null的解决方法变得非常重要。...
Java开发文档(JDK1.8中文版)是Java开发者的重要参考资料,它包含了Java语言规范、API文档、技术指南等丰富的信息。这份文档是Java 8版本的,Java 8是Oracle公司于2014年发布的一个重大更新,引入了许多新特性,极大...
这篇文章将深入探讨如何在Java中检查对象是否为`null`或空字符串,并提供一个实用的工具类示例,帮助开发者实现这一功能。 首先,我们来看如何判断一个对象是否为`null`。在Java中,你可以直接使用`==`运算符与`...
- **背景与原因**:在Java开发过程中,对象之间的属性复制是一项常见需求。Apache Beanutils因其简单易用的特点被广泛采用,但根据阿里巴巴Java开发手册的指导原则,其存在若干缺陷: - **性能问题**:相较于其他...
### Java开发中的常用小技巧详解 #### JDBC使用技巧与注意事项 **1. 使用PreparedStatement代替Statement** 在Java中,利用JDBC操作数据库时,我们经常需要动态构建SQL语句。直接使用`Statement`来构建这样的SQL...
《阿里巴巴Java开发规范》是Java开发者的一份重要指南,它为编写高质量、可维护的代码提供了明确的标准和建议。这份规范不仅适用于阿里巴巴集团内部的开发团队,也对广大Java开发者有着广泛的参考价值。以下是该规范...
Java开发源代码是Java程序员日常工作中不可或缺的一部分,它揭示了Java平台的核心机制和类库的内部运作。在Java 8中,特别是版本1.8.0_144,引入了许多重要的更新和改进,这对于理解Java语言的演进以及如何优化代码...
《Java开发手册(嵩山版)》是阿里巴巴技术团队与社区开发者共同努力的成果,它集成了大量的实战经验,旨在提高Java开发的效率和质量。手册覆盖了编程规约、异常日志、单元测试、安全规约、MySQL数据库、工程结构、...
《谷歌Java开发规范》是Google公司为Java开发者提供的一套详尽且权威的编码指导原则,旨在提升代码质量,提高团队协作效率,并降低维护成本。这份规范不仅关注语法层面的约定,更注重代码的可读性、可维护性和可扩展...
首先,`null`是Java中的一个关键字,与`public`、`static`和`final`等关键字相同。它是大小写敏感的,必须写为`null`,不能写作`Null`或`NULL`。如果写错,编译器会报错。现代集成开发环境(IDEs)如Eclipse和...
Java是一种广泛使用的面向对象的编程语言,其设计目标之一就是具有高级别的可读性和可维护性。在实际编程过程中,由于各种原因,我们...因此,`CheckUtil`工具类是Java开发中的一个实用工具,值得在项目中推广和使用。
Gson库可以自动处理Java对象与JSON格式之间的转换,但是默认情况下,所有的属性,无论其值是什么,都会被序列化进JSON字符串中,包括null值和空字符串。 然而,在大数据传输或存储到数据库的场景中,包含大量无意义...
《Java8开发指南》是针对Java 8这一重要版本的一份详尽的技术手册,它涵盖了Java 8的主要特性和更新,旨在帮助开发者更好地理解和利用这一版本的潜能。在这个指南中,我们将深入探讨以下几个核心知识点: 1. **...
### 重要知识点解析 ...综上所述,《阿里巴巴Java开发手册》为开发者提供了一套全面、实用的开发规范。通过遵循这些规定,可以有效提高代码质量和开发效率,减少潜在的错误和隐患,确保项目的顺利进行。