;;public classJavaNull {/*java version : 1.6*/
public staticString name;//模拟装箱(该case仅是用来帮助理解自动装箱过程)
@Testpublic voidtest001(){int a = 10;
Integer A=(a);
put(A);
}//模拟拆箱(该case仅是用来帮助理解自动拆箱过程)//若包装类型变量值为null,转换成基本类型的变量时,不会赋值成对应的初值,会报NullPointException
@Testpublic voidtest002(){
Integer A= null;int a = (); //NullPointException
put(a);
}//String类型的对象判断非空并且非空字符串,则如case test003所示即可
@Testpublic voidtest003(){
String name= null;if(null !=name && !()){
put(null);
}
}//静态变量未初始化,但不会报空指针异常,因为虚拟机在加载该类的同时,会初始化静态变量值为null
@Testpublic voidtest004(){
put(name);
}//当Integer对象的值超过127时,引用对象不再指向原来的内存地址,所以case test005打印结果为:"a == b",test006打印结果为:"a != b"//当变量为引用类型时,"==" 判断变量是否指向同一内存地址,".equal()"判断变量的值是否相等
@Testpublic voidtest005(){
Integer a= 100;
Integer b= 100;if(a ==b){
put("a == b");
}else{
put("a != b");
}
}
@Testpublic voidtest006(){
Integer a= 128;
Integer b= 128;if(a ==b){
put("a == b");
}else{
put("a != b");
}
}//转换(null值是所有引用类型的默认值,可以强制转换为任一对象类型)//猜想:java中存在一个潜在的Null类概念,是所有引用类型的变量的子类,test008打印结果为:"test--null",说明存在一个潜在方法
@Testpublic voidtest007(){
String a= (String)null;
Double b= (Double)null;
}
@Testpublic voidtest008(){
String temp= null;
put("test--"+temp);
}//静态方法可以由类名直接调用,该case只是为了测试//若对象test值为null,则用该对象调用静态方法时,不会报NullPointException,但调用非静态方法则会报NullPointException
@Testpublic voidtest009(){
JavaNull test= null;
();
();//NullPointException
}//null值比较会返回true
@Testpublic voidtest010(){if(null == null){
put("yes");
}else{
put("no");
}
}//case test011和test012为instanceof的用法//instanceof说明:如果 object 是 class 的一个实例,则 instanceof 运算符返回 true。如果 object 不是指定类的一个实例,或者object 是 null,则返回 false
@Testpublic voidtest011(){//Integer num = null;
Integer num = new Integer(0);;if(num instanceofInteger){
put("yes");
}else{
put("no");
}
}//instanceof可以匹配数组
@Testpublic voidtest012(){
String str[]= {"abc","bcd"};if(str instanceofString[]){
put("yes");
}else{
put("no");
}
}public static voidgetStaticMethod(){
put("StaticMethod");
}public voidgetNotStaticMethod(){
put("NotStaticMethod");
}public static voidput(Object obj){
(obj);
}
}