Java中常见null简析

x33g5p2x  于2022-05-28 转载在 Java  
字(1.0k)|赞(0)|评价(0)|浏览(307)

对于每一个Java程序员来说,null肯定是一个让人头痛的东西,今天就来总结一下Java中关于null的知识。

  • 1.null不属于任何类型,可以被转换成任何类型,但是用instanceof永远返回false.
  • 2.null永远不能和八大基本数据类型进行赋值运算等,否则不是编译出错,就是运行出错.
  • 3.null可以和字符串进行运算.
  • 4.同种类型的null,比较都返回true,null==null也返回true.

下面将用例子来验证上面的四点

首先来看看下面的一道题:

public class Null{

public static void nihao(){

  System.out.println("你好陌生人");

 }

public static void main(String[] args){

  ((Null)null).nihao();

 }

}

A、你好陌生人

B、编译不通过

C、编译通过,执行报错

D、内存溢出

答案是A

下面的总结将使你很清晰的了解到上面程序为什么成为这样的结果:

1.null是Java中的关键字,它不属于任何类型,只是一种特殊的值,也可以说说代表一个不确定的对象.

2.null是所有引用类型的默认值.

3.null可以被转化为任何类型,输出null不会抛出任何异常,这和println()的源代码有关.

4.null可以被转化为任何类型,所以可以调用静态方法.

5.null可以被转化为任何类型,但是不能调用非静态方法,运行时会出错.

6.null被强转化任何类型后,它还仅仅是一个特殊值,并不属于任何类型.

7.null==null返回true,被转换为同种类型的null,都返回true,不同类型直接编译报错.

8.用String转换后的null可以进行字符串运算,这是因为字符串进行连接的时候,编译器对null进行了特别的优化,其实就是例化StringBuilder,在调用append()方法时对null的一个特别处理,当为null时,转化为“null”,最后调用toString()返回一个String对象.

9.用八大基本类型转换后的null,不可以进行基本类型的运算,否则会出现编译或者运行错误.

10.null和“”并不相等,因为下面的s并没有指向某一块内存,而s1指向了一块空字符串的内存.

相关文章

微信公众号

最新文章

更多