NULL-SpringMVC-Java

Java Null Exception 最大的原因  ------> null 使用失误

1. Java中的Null是什么?

a) Java的关键字,像public、static、final, 它是case-sensitive

b) 任何引用类型的默认值(所有object类型的引用值),像int的默认值是0,boolean的默认值是false. 

c) null 可以将其赋予任何引用类型,仅仅是一种特殊的值,

             String str =null;// null can be assigned to String

             Integer itr =null;// you can assign null to Integer also

             Double dbl =null;// null can also be assigned to Double

             String myStr = (String)null;// null can be type cast to String

             Integer myItr = (Integer)null;// it can also be type casted to Integer

             Double myDbl = (Double)null;// yes it's possible, no error

d) null不可以赋给基本类型变量,例如int、double、float、boolean。

e) 任何含有null值的包装类在Java拆箱生成基本数据类型时候都会抛出一个空指针异常

            Integer iAmNull =null;

            int i = iAmNull;     // Remember - No Compilation Error

在控制台会抛出空指针异常

f) 如果使用了带有null值的引用类型变量,instanceof操作将会返回false;

           Integer iAmNull =null;

          if(iAmNullinstanceofInteger){

                   System.out.println("iAmNull is instance of Integer");

            }else{

                   System.out.println("iAmNull is NOT an instance of Integer");

             }

说明 null 不是Integer的特定类的实例,即不是Integer的一个实例

g) null值的引用类型变量调用非静态方法,会抛出空指针异常

静态方法使用静态绑定,不会抛出空指针异常

            Demo myObject = null;

            myObject.iAmStaticMethod();

            myObject.iAmNonStaticMethod();

           }

            private static void iAmStaticMethod(){

             System.out.println("I am static method, can be called by null reference");

             }

             private void iAmNonStaticMethod(){

              System.out.println("I am NON static method, don't date to call me by null");

               }

h) 可以使用 == 或者!=操作来比较null值

           null == null

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,803评论 18 399
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,083评论 19 139
  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 12,788评论 0 33
  • 小编费力收集:给你想要的面试集合 1.C++或Java中的异常处理机制的简单原理和应用。 当JAVA程序违反了JA...
    八爷君阅读 4,690评论 1 114
  • 回顾和概述 内置函数库: 字符函数 数值函数 日期时间函数 加密函数 如果需要一些系统没有提供的函数,就需要自定义...
    齐天大圣李圣杰阅读 460评论 0 0