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的处理若干方法的更多相关文章

  1. Java中的equals和hashCode方法

    本文转载自:Java中的equals和hashCode方法详解 Java中的equals方法和hashCode方法是Object中的,所以每个对象都是有这两个方法的,有时候我们需要实现特定需求,可能要 ...

  2. Java提高篇——equals()与hashCode()方法详解

    java.lang.Object类中有两个非常重要的方法: 1 2 public boolean equals(Object obj) public int hashCode() Object类是类继 ...

  3. Java中的equals和hashCode方法详解

    Java中的equals和hashCode方法详解  转自 https://www.cnblogs.com/crazylqy/category/655181.html 参考:http://blog.c ...

  4. 转:Java中的equals和hashCode方法详解

    转自:Java中的equals和hashCode方法详解 Java中的equals方法和hashCode方法是Object中的,所以每个对象都是有这两个方法的,有时候我们需要实现特定需求,可能要重写这 ...

  5. java 如何重写equal 和hashcode方法(最佳实践)

    先看完理解这篇:Java hashCode() 和 equals()的若干问题解答 实现高质量的equals方法的诀窍包括 使用==操作符检查“参数是否为这个对象的引用”: 使用instanceof操 ...

  6. Java并发编程中的若干核心技术,向高手进阶!

    来源:http://www.jianshu.com/p/5f499f8212e7 引言 本文试图从一个更高的视角来总结Java语言中的并发编程内容,希望阅读完本文之后,可以收获一些内容,至少应该知道在 ...

  7. [java] 更好的书写equals方法-汇率换算器的实现(4)

    [java] 更好的书写equals方法-汇率换算器的实现(4) // */ // ]]>   [java] 更好的书写equals方法-汇率换算器的实现(4) Table of Content ...

  8. Java基础知识点2:hashCode()方法

    hashCode()方法基本实现 hashCode方法是Java的Object类所定义的几个基本方法之一.我们可以深入到Object类的源码中去查看: public native int hashCo ...

  9. java内省机制及PropertyUtils使用方法

    背景 一般情况下,在Java中你可以通过get方法轻松获取beans中的属性值.但是,当你事先不知道beans的类型或者将要访问或修改的属性名时,该怎么办?Java语言中提供了一些像java.bean ...

随机推荐

  1. 关于cnpm的命令出错 cant find module npm-cli.js,以及vue packages version mismatch出错

    1.cant find module npm-cli.js 这个修复比较简单粗暴,直接找到安装node的安装软件,然后点开,里面有一个修复选项. 修复完就可以了 2.第二个vue packages v ...

  2. activiti7 获取流程定义的xml

    RepositoryService repositoryService = ProcessEngines.getDefaultProcessEngine().getRepositoryService( ...

  3. PDOStatement::errorCode

    PDOStatement::errorCode — 获取跟上一次语句句柄操作相关的 SQLSTATE(PHP 5 >= 5.1.0, PECL pdo >= 0.1.0) 说明 语法 st ...

  4. PHP __construct() 函数

    实例 函数创建一个新的 SimpleXMLElement 对象,然后输出 body 节点的内容:高佣联盟 www.cgewang.com <?php $note=<<<XML ...

  5. P1429 平面最近点对[加强版] 随机化

    LINK:平面最近点对 加强版 有一种分治的做法 因为按照x排序分治再按y排序 可以证明每次一个只会和周边的六个点进行更新. 好像不算很难 这里给出一种随机化的做法. 前置知识是旋转坐标系 即以某个点 ...

  6. luogu P4515 [COCI2009-2010#6] XOR 容斥

    LINK:XOR 一个不常见的容斥套路题. 以往是只求三角形面积的交 现在需要求被奇数次覆盖的区域的面积. 打住 求三角形面积的交我也不会写 不过这道题的三角形非常特殊 等腰直角 且直角点都在左下方 ...

  7. luogu P2467 [SDOI2010]地精部落

    很有意思的dp计数题目. 思考一下发现开始时山峰和开始是山谷的方案数是相同的 所以我们只需要统计一个即可. 证明的话可以考虑对于任意一种开始时山峰的方案 每个数字变成n-a[i]+1 那么可以此方案还 ...

  8. 【leetcode每日两题】-Day1-简单题

    1. 两数之和 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标. 你可以假设每种输入只会对应一个答案.但是,数组中同一个元素 ...

  9. jetbrain的plugin repository地址

    jetbrain的plugin repository地址:https://plugins.jetbrains.com/plugins/alpha/5047 有的时候 plugins内搜不到东西 把这个 ...

  10. python8.1多线程

    import threadingimport time def run1 (name,sex): print(name,sex,"执行线程1") time.sleep(3)def ...