博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
测者的测试技术手册:Java中的null类型是测试不可超越的鸿沟
阅读量:6855 次
发布时间:2019-06-26

本文共 1000 字,大约阅读时间需要 3 分钟。

hot3.png

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

null 到底是怎样的存在

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

 
  1. public class MrTesterTestClass{

  2.  

  3.    Integer int1 = null;

  4.    String str1 = null;

  5.    Integer int2 = (Integer) null;

  6.    String str2 = (String) null;

  7.  

  8. }

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

 
  1. int int3 = null

那么就出出现问题。

null的一些细节注意点

null的装箱拆箱的细节

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

 
  1. Integer count =100;装箱

  2.  

  3. int sum =count;拆箱

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

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

布尔运算

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

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

String类型转换

 
  1. public static void main(String[] args){

  2.  

  3.    String str = null;

  4.  

  5.    str= str+"ss";

  6.  

  7.    System.out.println(str);

  8. }

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

null 不等于“”

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

关注测者,关注测试

640?wx_fmt=jpeg&tp=webp&wxfrom=5&wx_lazy=1&wx_co=1

转载于:https://my.oschina.net/leichen/blog/2993389

你可能感兴趣的文章
effective java读书笔记2:遇到多个构造器参数时要考虑用构建器
查看>>
架构师之路----文章汇总
查看>>
DIV+CSS 页面布局--固定宽度且居中的版式
查看>>
apache配置多域名
查看>>
lae界面开发工具入门之介绍九--<简单逻辑篇>
查看>>
WEB 3D时代:三维图形高密度计算步入云端
查看>>
分布式概念
查看>>
网络IPC:套接字
查看>>
IOS学习之文本尺寸的计算
查看>>
spring 笔记
查看>>
[转载] 中国好声音120831
查看>>
数据库设计的14个技巧(转)
查看>>
C++学习笔记之 (三)
查看>>
网络设备的安全汇总
查看>>
[转载] 七龙珠第一部——第103话 比克大魔王
查看>>
oracle datafile 生成查询树
查看>>
docker 资料
查看>>
swingEDT机制
查看>>
洛谷2038 无线网络发射器选址
查看>>
TP 服务器phpmyadmin用不了原因之一 开启伪静态 需要修改文件
查看>>