zoukankan      html  css  js  c++  java
  • java-null简介

    对于每一个Java程序员来说,null肯定是一个让人头痛的东西,连Java的发明者都承认这是一项巨大的设计失误,今天就来总结一下Java中关于null的知识.

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

    持续更新中......

    下面将用十个例子来验证上面的四点
    Integer a1 = null;
    Integer a2 = null;
    System.out.println(a1.equals(a2))--空指针异常

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

    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,不同类型直接编译报错.(如果是一个封装类型+一个基本类型还是运行成功的-意思是:integer+double等)
    8.用String转换后的null可以进行字符串运算,这是因为字符串进行连接的时候,编译器对null进行了特别的优化,其实就是例化StringBuilder,在调用append()方法时对null的一个特别处理,当为null时,转化为“null”,最后调用toString()返回一个String对象.
    9.用八大基本类型转换后的null,不可以进行基本类型的运算,否则会出现编译或者运行错误.
    10.null和“”并不相等,因为下面的s并没有指向某一块内存,而s1指向了一块空字符串的内存.

  • 相关阅读:
    微服务配合docker使用
    基于docker部署使用ELK+FileBeat日志管理平台
    Ubuntu开发用新机安装流程
    http 直接从body里传输数据
    005
    003
    004
    001
    002
    谷歌查看、管理cookie
  • 原文地址:https://www.cnblogs.com/hongchengshise/p/10375409.html
Copyright © 2011-2022 走看看