故事背景
---摩诃般若波罗蜜多心经:
观自在菩萨,行深般若波罗蜜多时,照见五蕴皆空,度一切苦厄。舍利子,色不异空,空不异色;色即是空,空即是色。受想行识,亦复如是。舍利子,是诸法空相,不生不灭,不垢不净,不增不减。是故空中无色,无受想行识,无眼耳鼻舌身意,无色声香味触法,无眼界,乃至无意识界,无无明,亦无无明尽,乃至无老死,亦无老死尽。无苦寂灭道,无智亦无得。以无所得故,菩提萨埵。依般若波罗蜜多故,心无挂碍,无挂碍故,无有恐怖。远离颠倒梦想,究竟涅磐,三世诸佛,依般若波罗蜜多故,得阿耨多罗三藐三菩提。故知般若波罗蜜多是大神咒,是大明咒, 是无上咒,是无等等咒,能除一切苦,真实不虚。故说般若波罗蜜多咒,即说咒曰:揭谛揭谛,波罗揭谛,波罗僧揭谛,菩提娑婆诃。
![955316f87d8674c7f31f0dbcb2ae7eed.png](https://i-blog.csdnimg.cn/blog_migrate/09cc66d35b2e4b9492f9bfa7f658919f.jpeg)
java中的空null
我们先看几段代码吧
1.例一:null的对象性
public class NullTest {public static void greet() {System.out.println("Hello world!");}public static void main(String[] args) {((NullTest) null).greet();}}
上面的程序看起来似乎应该抛出NullPointerExceptioin 异常,因为其main 方法
是在常量null 上调用greet 方法,而你是不可以在null 上调用方法的,对吗?
其实编译和运行都没有问题。运行结果为:
Hello world!
2.例二:null的初始化
public static void main(String[] args) {String str=null;Integer in=null;Double dou=null;String str1=(String)null;Integer in1=(Integer)null;Double dou1=(Double)null;int in2=null;int in3=(int)null;}
![173898329f7ef99492aca61b63bb6e23.png](https://i-blog.csdnimg.cn/blog_migrate/27d8e515f17154d7fe01fe97b22c7c7e.jpeg)
发现null可以初始化引用类型,也可以转换为任意的引用类型。但不能给基本类型赋值,或者转换为基本类型。
3.例三:null的相等性
public static void main(String[] args) {System.out.println(null==null);System.out.println(null!=null);System.out.println(Double.NaN==Double.NaN);System.out.println(Double.NaN!=Double.NaN);}
结果该是什么呢?
true
false
false
true
4.例四:null不是引用类型
public static void main(String[] args) {Integer in=null;if(in instanceof Integer) {System.out.println("null is integer");}else {System.out.println("null is not integer");}}
你猜会打印出什么?
![c41317d0f6f22589fac5b693d4e93143.png](https://i-blog.csdnimg.cn/blog_migrate/1b5f5db0647c0a40f5594bd7f639e449.jpeg)
结果是:
null is not integer
5.例5:不可传递
public static void main(String[] args) {Integer i=null;int k=i;System.out.println(k);}
报错:
Exception in thread "main" java.lang.NullPointerException
NullTest.main(NullTest.java:6)
6.例6:null的数组
public static void main(String[] args) {String[] arr1={"abc