Java判断null的几种方式

这篇具有很好参考价值的文章主要介绍了Java判断null的几种方式。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

组内code review时,有同学提到字符串判断空值的写法,如下两种,

(1)null在后,

@Test
public void testDemo1() {
  String str = null;
  if (str == null) {
    System.out.println("null在后");
    return;
  }
}

(2)null在前,

@Test
public void testDemo2() {
  String str = null;
  if (null == str) {
    System.out.println("null在前");
    return;
  }
}

这两种写法,有什么区别?

这两个测试,都可以执行,有种解释是,null放在前面是为了避免少写一个"=",因为"null="书写会报错,防止笔误写成"=null",不会报错,进而漏掉问题。

null==a是以前C语言的写法,因为C允许if(a=null)这种判断,但这个其实是少写了个"=",所以c开发的人员为了避免这问题,就出现了null==a的写法,因为这样一旦漏写了个=号,编译器就会编译不通过。

但这在Java和c#这种面向对象的语言里面是不需要的,因为少个=号,不管java还是C#都是编译错误。

因此,Java中对null进行判断放在前后没有什么区别,只是为了代码规范,为了避免写代码时书写错误(建议将null放在前面,并不强制)。

顺带说下,Java中判断字符串是否为空的四种方法,

方法一:最多人使用的一个方法,直观,方便,但效率很低,

if(s == null || s.equals(""));

方法二:比较字符串长度,效率高

if(s == null || s.length() == 0);

方法三:Java SE 6.0才开始提供的方法,效率和方法二几乎相等,但出于兼容性考虑,推荐使用方法二,

if(s == null || s.isEmpty());

方法四:这是一种比较直观,简便的方法,而且效率也非常的高,与方法二、三的效率差不多,

if (s == null || s == "");

注意,s == null这个判断是有必要存在的,如果String类型为null,进行equals(String)或length()等操作会抛出java.lang.NullPointerException。而且s==null的顺序必须出现在前面,不然同样会抛出java.lang.NullPointerException。

如果您认为这篇文章有些帮助,还请不吝点下文章末尾的"点赞"和"在看",或者直接转发pyq,

java 判断为null,java,开发语言

近期更新的文章:

《MySQL新身份验证插件caching_sha2_password》

《金融知识小科普 - 北向资金》

《MySQL的MVCC再学习》

《金融知识小科普 - 宽基指数》

《能从家中看球的球场》

近期的热文:

《"红警"游戏开源代码带给我们的震撼》

文章分类和索引:

《公众号1100篇文章分类和索引》文章来源地址https://www.toymoban.com/news/detail-644966.html

到了这里,关于Java判断null的几种方式的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Java实现异步的几种方式

    普通线程实现异步,但频繁创建、销毁线程比较耗资源,所以一般交给线程池执行 结果: Future异步 和普通线程实现异步区别不大,只是使用Future是要获取执行后的返回值 结果: Spring的@Async异步 使用@Async注解实现异步的前提是需要在启动类上标注@EnableAsync来开启异步配置

    2024年02月04日
    浏览(46)
  • Java读取文件的几种方式

    1. 使用流读取文件 2. 使用JDK1.7提供的NIO读取文件(适用于小文件) 3. 使用JDK1.7提供的NIO读取文件(适用于大文件) 4. 使用JDK1.4提供的NIO读取文件(适用于超大文件) 5. 使用cmmons-io依赖提供的FileUtils工具类读取文件 添加依赖: 6. 使用cmmons-io依赖提供的IOtils工具类读取文件 添加依赖:

    2024年02月16日
    浏览(39)
  • java:解析json的几种方式

    Java是一种流行的编程语言,它提供了很多实用的库和工具,在处理JSON数据时也不例外。在本文中,我们将介绍Java中如何解析JSON数据。 JSON是一种轻量级的数据交换格式,它已经成为Web应用程序中最流行的数据格式之一。Java提供了许多库来处理JSON数据,包括Jackson、Gson和JS

    2024年02月03日
    浏览(40)
  • Java 终止线程的几种方式

    所谓正常运行结束,就是程序正常运行结束,线程自动结束。 一般run()方法执行完,线程就会正常结束,然而,常常有些线程是伺服线程。他们需要长时间的运行,只有在外部某些条件满足的情况下,才能关闭这些线程。使用一个变量来控制循环,例如:最直接的方法就是设

    2024年02月07日
    浏览(33)
  • java读取资源路径的几种方式

    注意,以上是在Junit测试文件中的结果,工作可以精确到所在模块,而普通类里打印是只有主目录没有模块的,如下:

    2024年02月15日
    浏览(32)
  • java stream去重的几种方式

    这个方法会根据元素的 hashCode() 和 equals() 方法来判断是否重复。如果是自定义的类,需要重写这两个方法。 示例: 这个方法可以根据元素的某个属性或者多个属性来去重,比如 name 或者 name+address。这个方法会使用 TreeSet 来排序元素,所以不能保持原来的顺序。 示例: 这个方

    2024年02月13日
    浏览(45)
  • 【Java序列化的几种方式】

    在Java中,常见的序列化方式有以下几种: Java原生序列化是一种Java标准库提供的序列化技术,可以将Java对象转换为字节流进行传输和存储。可以通过实现java.io.Serializable接口来实现序列化,但是Java原生序列化存在一些性能和兼容性的问题。 JSON是一种轻量级的数据交换格式,

    2024年02月15日
    浏览(46)
  • Java 中创建线程的几种方式

    Java 是一种面向对象的编程语言,它支持多线程编程。多线程编程是指在一个程序中同时运行多个线程,这些线程可以并行执行,以提高程序的效率和性能。Java 提供了多种创建线程的方法,本文将介绍这些方法以及它们的优缺点。 Java 中的 Thread 类是一个抽象类,我们可以通

    2024年02月09日
    浏览(39)
  • java数组转List的几种方式

    缺点 : 不可新增、删除元素 。如上图remove()操作后,会报下图中的错误。 报错原因 :Arrays.asList(strArr)返回值是java.util.Arrays类中一个私有静态内部类 java.util.Arrays.Arraylist,并不是我们平时用的java.util.ArrayList()。 java.util.Arrays.ArrayList类具有 set(),get(),contains()等方法,但是不

    2024年02月10日
    浏览(37)
  • 【Java 干货教程】Java实现分页的几种方式详解

    无论是自我学习中,还是在工作中,固然会遇到 与前端搭配实现分页的功能 ,发现有几种方式,特此记录一下。 这种情况也是有的,(根据业务场景且仅仅只能用于 数据量少 的情况)。即后端不做任何数据的限制,直接把全部数据返回给前端,前端通过组件实现分页,筛选等

    2024年02月02日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包