`
yourkenny
  • 浏览: 11727 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

关于java开发中的null与空

    博客分类:
  • java
阅读更多
首先说说在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中String判断值为null或空及地址是否相等的问题

    总结来说,理解Java中`null`、空字符串`""`的区别,以及如何安全地进行比较,是编写健壮代码的关键。同时,了解字符串对象的内存地址和内容相等性的差异,可以帮助我们更好地理解和调试程序。在实际开发中,应始终...

    Java中有关Null的9件事Java开发Java经验技巧

    以下是从标题和描述中提取的关于Java中`null`的9个关键知识点,以及每个知识点的详细解释: 1. **null的定义**: `null`是Java中的一个关键字,它不是一个对象,而是表示一个引用变量没有指向任何实例。例如,当你...

    如何将数据库中的NUll写入到数据库中去

    在编程语言中,如Java、Python或C#,当我们通过API或库与数据库交互时,需要确保在对应字段设置为null。例如,在Java的JDBC中: ```java PreparedStatement pstmt = connection.prepareStatement("INSERT INTO ...

    java 判断对象是否为空

    首先,Java中对象的“空”通常指的是`null`值,即对象引用没有指向任何实例。在Java中,你可以直接使用`==`运算符来比较一个对象引用是否为`null`。例如: ```java Object obj = getSomeObject(); if (obj == null)...

    Java开发常见问题汇总.ppt

    以下是一些关于Java开发的常见问题及其解决方法。 首先,确保Java开发环境的正确安装和配置。在Windows系统中,可以通过快捷键Win+R打开运行窗口,输入“cmd”进入命令提示符,然后输入“java -version”,如果能...

    Java中对null进行强制类型转换的方法

    在 Java 中,对 null 进行强制类型转换是一个常见的操作,但是在实际开发中,是否会抛出异常呢?今天,我们将通过实例代码来介绍 Java 中对 null 进行强制类型转换的方法。 首先,让我们看一下基本类型的强制类型...

    Java String转换时为null的解决方法

    在Java开发中,我们经常会遇到从集合类List、Map中取出数据转换为String的问题,但如果处理不好,经常会遇到空指针异常java.lang.NullPointerException。因此,了解Java String转换时为null的解决方法变得非常重要。...

    java开发文档(jdk1.8中文版java8.zip

    Java开发文档(JDK1.8中文版)是Java开发者的重要参考资料,它包含了Java语言规范、API文档、技术指南等丰富的信息。这份文档是Java 8版本的,Java 8是Oracle公司于2014年发布的一个重大更新,引入了许多新特性,极大...

    Java判断对象是否为空(包括null ,"")的方法

    这篇文章将深入探讨如何在Java中检查对象是否为`null`或空字符串,并提供一个实用的工具类示例,帮助开发者实现这一功能。 首先,我们来看如何判断一个对象是否为`null`。在Java中,你可以直接使用`==`运算符与`...

    阿里巴巴Java开发手册(嵩山版).pdf

    - **背景与原因**:在Java开发过程中,对象之间的属性复制是一项常见需求。Apache Beanutils因其简单易用的特点被广泛采用,但根据阿里巴巴Java开发手册的指导原则,其存在若干缺陷: - **性能问题**:相较于其他...

    java开发中的一些常用小技巧

    ### Java开发中的常用小技巧详解 #### JDBC使用技巧与注意事项 **1. 使用PreparedStatement代替Statement** 在Java中,利用JDBC操作数据库时,我们经常需要动态构建SQL语句。直接使用`Statement`来构建这样的SQL...

    阿里巴巴Java开发规范(正式版)

    《阿里巴巴Java开发规范》是Java开发者的一份重要指南,它为编写高质量、可维护的代码提供了明确的标准和建议。这份规范不仅适用于阿里巴巴集团内部的开发团队,也对广大Java开发者有着广泛的参考价值。以下是该规范...

    Java 开发源代码

    Java开发源代码是Java程序员日常工作中不可或缺的一部分,它揭示了Java平台的核心机制和类库的内部运作。在Java 8中,特别是版本1.8.0_144,引入了许多重要的更新和改进,这对于理解Java语言的演进以及如何优化代码...

    《Java开发手册(嵩山版)》.pdf

    《Java开发手册(嵩山版)》是阿里巴巴技术团队与社区开发者共同努力的成果,它集成了大量的实战经验,旨在提高Java开发的效率和质量。手册覆盖了编程规约、异常日志、单元测试、安全规约、MySQL数据库、工程结构、...

    谷歌Java开发规范.rar

    《谷歌Java开发规范》是Google公司为Java开发者提供的一套详尽且权威的编码指导原则,旨在提升代码质量,提高团队协作效率,并降低维护成本。这份规范不仅关注语法层面的约定,更注重代码的可读性、可维护性和可扩展...

    Java中关于Null的9个解释(Java Null详解)

    首先,`null`是Java中的一个关键字,与`public`、`static`和`final`等关键字相同。它是大小写敏感的,必须写为`null`,不能写作`Null`或`NULL`。如果写错,编译器会报错。现代集成开发环境(IDEs)如Eclipse和...

    java万能判空工具类-可直接使用

    Java是一种广泛使用的面向对象的编程语言,其设计目标之一就是具有高级别的可读性和可维护性。在实际编程过程中,由于各种原因,我们...因此,`CheckUtil`工具类是Java开发中的一个实用工具,值得在项目中推广和使用。

    java json不生成null或者空字符串属性(详解)

    Gson库可以自动处理Java对象与JSON格式之间的转换,但是默认情况下,所有的属性,无论其值是什么,都会被序列化进JSON字符串中,包括null值和空字符串。 然而,在大数据传输或存储到数据库的场景中,包含大量无意义...

    Java8开发指南

    《Java8开发指南》是针对Java 8这一重要版本的一份详尽的技术手册,它涵盖了Java 8的主要特性和更新,旨在帮助开发者更好地理解和利用这一版本的潜能。在这个指南中,我们将深入探讨以下几个核心知识点: 1. **...

    阿里巴巴java开发手册(嵩山版).pdf

    ### 重要知识点解析 ...综上所述,《阿里巴巴Java开发手册》为开发者提供了一套全面、实用的开发规范。通过遵循这些规定,可以有效提高代码质量和开发效率,减少潜在的错误和隐患,确保项目的顺利进行。

Global site tag (gtag.js) - Google Analytics