Java--- 关于null的处理若干方法
Java--- 关于null的处理若干方法
相信空指针是平时最常见的错误了,下面认识 null ,有助于解决 NPE 问题。
nulll大小写敏感
关于这个问题,其实是对面试时候手写算法题时候需要注意的问题。
null 它是 Java的关键字,它是大小写敏感的,不能写成 NULL,Null等等。
当然在现实工作中,现有市面上的流行编译器一般会有报错提示。
null 是任何引用类型的初始值
这里需要注意是引用类型,基本数据类型的,int 默认初始值是 0;boolean 默认初始值是 false 等。
也就是说 Object 类型的默认初始值都是 null 。
null 是一种有特殊的值
null 既不是对象也不是数据类型,他只是一种特殊的值。
可以将它复制给任何引用类型的变量,这时并不会抛出空指针异常。
但是注意,并不能赋值给基本数据类型的变量,因为持有 null 的包装类在进行自动拆箱的时候,不能完成转换,会抛出空指针异常。null 同时也不能和基本数据类型作比较。
public static void main(String[] args) {
Integer isNull = null;
// instanceof = isInstance 方法
if(isNull instanceof Integer){
System.out.println("isNull is instanceof Integer");
}else{
System.out.println("isNull is not instanceof Integer");
}
}

这是 instanceof 操作符一个很重要的特性,使得对类型强制转换检查很有用。
静态变量为 null 调用静态方法不会抛出 NullPointerException。因为静态方法使用了静态绑定。
使用 Null-Safe 方法
所谓使用 Null-Safe 方法,其实就是多使用工具类提供的的静态方法。以此来避免 NullPointerException。
private static String numbers;
public static void main(String[] args) {
String string = String.valueOf(numbers); //编译通过
String s = numbers.toString(); //java.lang.NullPointerException
}
null 的判断
你可以使用 == 或者!=操作来比较 null 值,但是不能使用其他算法或者逻辑操作,例如小于或者大于。跟SQL不一样,在Java中null == null 将返回true。
Java--- 关于null的处理若干方法的更多相关文章
- Java中的equals和hashCode方法
本文转载自:Java中的equals和hashCode方法详解 Java中的equals方法和hashCode方法是Object中的,所以每个对象都是有这两个方法的,有时候我们需要实现特定需求,可能要 ...
- Java提高篇——equals()与hashCode()方法详解
java.lang.Object类中有两个非常重要的方法: 1 2 public boolean equals(Object obj) public int hashCode() Object类是类继 ...
- Java中的equals和hashCode方法详解
Java中的equals和hashCode方法详解 转自 https://www.cnblogs.com/crazylqy/category/655181.html 参考:http://blog.c ...
- 转:Java中的equals和hashCode方法详解
转自:Java中的equals和hashCode方法详解 Java中的equals方法和hashCode方法是Object中的,所以每个对象都是有这两个方法的,有时候我们需要实现特定需求,可能要重写这 ...
- java 如何重写equal 和hashcode方法(最佳实践)
先看完理解这篇:Java hashCode() 和 equals()的若干问题解答 实现高质量的equals方法的诀窍包括 使用==操作符检查“参数是否为这个对象的引用”: 使用instanceof操 ...
- Java并发编程中的若干核心技术,向高手进阶!
来源:http://www.jianshu.com/p/5f499f8212e7 引言 本文试图从一个更高的视角来总结Java语言中的并发编程内容,希望阅读完本文之后,可以收获一些内容,至少应该知道在 ...
- [java] 更好的书写equals方法-汇率换算器的实现(4)
[java] 更好的书写equals方法-汇率换算器的实现(4) // */ // ]]> [java] 更好的书写equals方法-汇率换算器的实现(4) Table of Content ...
- Java基础知识点2:hashCode()方法
hashCode()方法基本实现 hashCode方法是Java的Object类所定义的几个基本方法之一.我们可以深入到Object类的源码中去查看: public native int hashCo ...
- java内省机制及PropertyUtils使用方法
背景 一般情况下,在Java中你可以通过get方法轻松获取beans中的属性值.但是,当你事先不知道beans的类型或者将要访问或修改的属性名时,该怎么办?Java语言中提供了一些像java.bean ...
随机推荐
- PHP idate() 函数
------------恢复内容开始------------ 实例 格式化本地时间/日期为整数.测试所有不同的格式: <?phpecho idate("B") . " ...
- 6.15 省选模拟赛 老魔杖 博弈论 SG函数
这道题确实没有一个很好的解决办法 唯一的正解可能就是打表找规律 或者 直接猜结论了吧. 尽管如此 在此也给最终结论一个完整的证明. 对于70分 容易发现状态数量不大 可以进行暴力dp求SG函数. 原本 ...
- 一本通 1783 矩阵填数 状压dp 容斥 计数
LINK:矩阵填数 刚看到题目的时候感觉是无从下手的. 可以看到有n<=2的点 两个矩形. 如果只有一个矩形 矩形外的方案数容易计算考虑 矩形内的 必须要存在x这个最大值 且所有值<=x. ...
- 最优化算法【牛顿法、拟牛顿法、BFGS算法】
一.牛顿法 对于优化函数\(f(x)\),在\(x_0\)处泰勒展开, \[f(x)=f(x_0)+f^{'}(x_0)(x-x_0)+o(\Delta x) \] 去其线性部分,忽略高阶无穷小,令\ ...
- What is 测试金字塔?
我的女朋友是一名测试工程师,但她之前却不知道测试金字塔的概念,为此我曾经在家里的白板上画了一个图一层一层给她讲解过.我和同事在给团队面试测试和开发岗位时,也会必问到这个问题,想到可能有很多开发童鞋都不 ...
- Flask官方文档学习-flask快速入门
环境搭建 下载安装Python3:www.python.org 终端运行命令:python3 -m venv flask_dev,来创建虚拟环境 启用虚拟环境,终端使用命令 source /flask ...
- Java助教工作总结
很荣幸在步入在研究生之际,有机会能协助代老师完成面向对象程序设计(java)课程的教学工作.这也是我人生中第一次接触助教工作,好多东西不太清楚,也没经验,有什么做的不好的,还望老师同学及时指出. 上周 ...
- 007_go语言中的switch语句
代码演示 package main import "fmt" import "time" func main() { i := 2 fmt.Print(&quo ...
- 【Python笔记】2020年7月22日练习=[定义一个函数quadratic(a, b, c),接收3个参数,返回一元二次方程的两个解]
学习教程:廖雪峰-Python教程-函数-函数定义 学习记录:[定义一个函数quadratic(a, b, c),接收3个参数,返回一元二次方程的两个解] 学习心得: 1.对问题进行判断分析后再下手. ...
- SCOI2020迷惑记
睡了个好觉还是很困但没咋吃饭就出门了. 到了之后随便跟认得到的人扯了两句就进去了. 结果让我们站在外面等... 然后通知说不能自带水和吃的那我这个中午没吃饭的咋整啊. 马上啃了半块巧克力就进了考场,然 ...