zoukankan      html  css  js  c++  java
  • Java:null

    null

    前言:发现Java中的null还真有些需要注意的地方


    • null的定位

    null既不是对象也不是一种类型,它仅是一种特殊的值,表示一种空白,一种缺失。你可以将其赋予任何引用类型,或者说将null转化成任何类型

    String str = null; 
    Integer itr = null;
    Double dbl = null; 
     
    String myStr = (String) null;
    Integer myItr = (Integer) null; 
    Double myDbl = (Double) null; 
    

    当类中的对象变量/引用类型(包括数组对象)未被初始化时,自动用null填补空白
    而类中的基本类型变量则赋为默认值如 int → 0 、 double → 0.0 、char → 、boolean → false

    • null不可以自动装箱或转换为默认值
      null可以赋值给引用变量,但不能将null赋给基本类型变量
    统计各数字出现次数
    Map<Integer,Integer> numberAndCount = new HashMap<>();
            int[] numbers = {3, 5, 7, 9, 11, 13, 17, 19, 2, 3, 5, 33, 12, 5};
            for (int i : numbers) {
                int count = numberAndCount.get(i);// NullPointerException here
                numberAndCount.put(i, count++); 
            }
    
    • null不是任何类的实例
      虽然null可以填补甚至"转换"为任意类型,但是null不是任何类的实例
    Integer iAmNull = null;
    if(iAmNull instanceof Object)
       System.out.println("true");                             
     else
       System.out.println("false");
    输出false
    
    • 内容为null的对象变量可以调用该类的类方法
      这也是类静态方法与类的对象无关,也无法使用非静态内容的有力说明
    public static void main(String args[]) throws InterruptedException {
            Study myObject = null;
            myObject.staticMethod();
            myObject.notStaticMethod();
        }
            private static void staticMethod(){
                System.out.println("I am static method, can be called by null reference");
            }
    
            private void notStaticMethod(){
                System.out.println("I am NON static method, don't date to call me by null");
            }
    
    • 可以将null传递给方法使用
      所以要考虑参数传为null时的安全问题

    • Java中 null == null 返回true


    2018/11/19

  • 相关阅读:
    pandas 之 数据合并
    第一册:lesson sixty five.
    第一册:lesson sixty three。
    C#正则表达式。
    第一册:lesson sixty one.
    C#泛型。
    SQL命令入门。
    C#序列化与反序列化。
    第一册:lesson fifty nine。
    C#文件操作。
  • 原文地址:https://www.cnblogs.com/kafm/p/12721837.html
Copyright © 2011-2022 走看看