前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >测者的测试技术手册:Java中的null类型

测者的测试技术手册:Java中的null类型

作者头像
Criss@陈磊
发布2019-08-02 11:35:51
3670
发布2019-08-02 11:35:51
举报
文章被收录于专栏:测试技术圈测试技术圈

null是一个非常非常特殊的类型,对于每一个测试人员都要十分小心null的存在的可能性。同时null也让很多RD头疼,甚至连Java的设计者都成人null是一个设计失误。这篇文章,测者想聊聊这个让很多人不喜欢的null。

null 到底是怎样的存在

在Java中有基本类型和引用类型,但是null却不属于上述两种,我们即不能声明一个变量为null类型,也不能将变量转换为null。null的引用是唯一一种null正确的表达方式。但是null却可以转换成任何一种引用类型。

代码语言:javascript
复制
public class MrTesterTestClass{

    Integer int1 = null;
    String str1 = null;
    Integer int2 = (Integer) null;
    String str2 = (String) null;

}

上面的代码在编译其中并不会报错。但是如果我们使用:

代码语言:javascript
复制
int int3 = null

那么就出出现问题。

null的一些细节注意点

null的装箱拆箱的细节

先说一个Java的概念:装箱和拆箱

代码语言:javascript
复制
Integer count =100;装箱

int sum =count;拆箱

上面的代码清洗的解释了装箱和拆箱的过程,装箱就是自动将基本数据类型转换为包装器类型;拆箱就是自动将包装器类型转换为基本数据类型。

但是如果任何一个包装器类型在拆箱的时候都会包NPE异常(空指针异常)。

布尔运算

null很特别,但是可以而且仅可以做布尔运算。

null==null的结果是true,但是这里面特别注意:如果是两个null的引用变量那么首先要保证两个引入变量的类型完全一致。运算结果才会是true。

String类型转换

代码语言:javascript
复制
public static void main(String[] args){

    String str = null;

    str= str+"ss";

    System.out.println(str);
}

上面的代码的输出:nulss。String转换后的null可以进行字符串运算,这是因为字符串进行连接的时候,编译器对null进行了特别的优化。

null 不等于“”

null和“”不相等,这是因为“”会在内容中有一个

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-12-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 质问 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • null 到底是怎样的存在
  • null的一些细节注意点
    • null的装箱拆箱的细节
    • 布尔运算
    • String类型转换
    • null 不等于“”
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档