• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            chenglong7997

            java的null

            一、null是代表不確定的對(duì)象
                Java中,null是一個(gè)關(guān)鍵字,用來(lái)標(biāo)識(shí)一個(gè)不確定的對(duì)象。因此可以將null賦給引用類型變量,但不可以將null賦給基本類型變量。

            比如:int a = null;是錯(cuò)誤的。Ojbect o = null是正確的。

              Java中,變量都遵循一個(gè)原則,先定義,并且初始化后,才可以使用。我們不能int a后,不給a指定值,就去打印a的值。
            這條對(duì)對(duì)于引用類型變量也是適用的。

               有時(shí)候,我們定義一個(gè)引用類型變量,在剛開(kāi)始的時(shí)候,無(wú)法給出一個(gè)確定的值,但是不指定值,程序可能會(huì)在try語(yǔ)句塊中初始化值。
                我們下面使用變量的時(shí)候就會(huì)報(bào)錯(cuò)。這時(shí)候,可以先給變量指定一個(gè)null值,問(wèn)題就解決了。例如: 
            Connection conn = null;
            try {
               conn = DriverManager.getConnection("url", "user", "password");
            } catch (SQLException e) {
               e.printStackTrace();
            }

            String catalog = conn.getCatalog();

            如果剛開(kāi)始的時(shí)候不指定conn = null,則最后一句就會(huì)報(bào)錯(cuò)。

            二、null本身不是對(duì)象,也不是Objcet的實(shí)例

              null本身雖然能代表一個(gè)不確定的對(duì)象,但就null本身來(lái)說(shuō),它不是對(duì)象,也不知道什么類型,也不是java.lang.Object的實(shí)例。
            可以做一個(gè)簡(jiǎn)單的例子:

            //null是對(duì)象嗎? 屬于Object類型嗎?
            if (null instanceof java.lang.Object) {
              System.out.println("null屬于java.lang.Object類型");
            } else {
              System.out.println("null不屬于java.lang.Object類型");
            }

            結(jié)果會(huì)輸出:null不屬于java.lang.Object類型

            三、Java默認(rèn)給變量賦值

            在定義變量的時(shí)候,如果定義后沒(méi)有給變量賦值,則Java在運(yùn)行時(shí)會(huì)自動(dòng)給變量賦值。
            賦值原則是整數(shù)類型int、byte、short、 long的自動(dòng)賦值為0,帶小數(shù)點(diǎn)的float、double自動(dòng)賦值為0.0,
            boolean的自動(dòng)賦值為false,其他各供引用類型變量自動(dòng)賦值為 null。
            這個(gè)具體可以通過(guò)調(diào)試來(lái)看。

            四、容器類型與null

            List:允許重復(fù)元素,可以加入任意多個(gè)null。
            Set:不允許重復(fù)元素,最多可以加入一個(gè)null。
            Map:Map的key最多可以加入一個(gè)null,value字段沒(méi)有限制。
            數(shù)組:基本類型數(shù)組,定義后,如果不給定初始值,則java運(yùn)行時(shí)會(huì)自動(dòng)給定值。
            引用類型數(shù)組,不給定初始值,則所有的元素值為null。

            五、null的其他作用

            1、判斷一個(gè)引用類型數(shù)據(jù)是否null。 用==來(lái)判斷。
            2、釋放內(nèi)存,讓一個(gè)非null的引用類型變量指向null。這樣這個(gè)對(duì)象就不再被任何對(duì)象應(yīng)用了。
            等待JVM垃圾回收機(jī)制去回收。

            以下是我的一些想法:
            package com.zac.expe1;

            public class NullInDepth {
               public static void helloThere(){
                System.out.println("Hello from null?!");
               }

               public static void main(String[] args) {
                 //((NullInDepth)null).helloThere();
                 NullInDepth nullIn = null;
                 nullIn.helloThere();
                 Object nullStr = null;
                 NullInDepth nullOut = (NullInDepth) nullStr;
                 System.out.println(nullIn);
               }

            }

            這里Hello from null?!會(huì)被打印出來(lái),而后邊一句會(huì)打印出null,
            我們知道println一般是調(diào)用對(duì)象的toString來(lái)進(jìn)行打印,但是null明顯不是對(duì)象,
            作為一個(gè)不確定引用它只是把自己的literal給打印了出來(lái),因此我猜測(cè)null是預(yù)先存儲(chǔ)在內(nèi)存中的一個(gè)引用,
            它是有值的,可能根據(jù)不同的jvm有不同的實(shí)現(xiàn),但是jvm中會(huì)一致地將這個(gè)值打印為null。


            另外按照我的猜測(cè),null應(yīng)該是棧里邊的一個(gè)引用,null type是可以轉(zhuǎn)換為所有其他type的引用,
            所以我也猜測(cè)null type應(yīng)該是所有其他引用類型的子類型。 
            靜態(tài)方法(也許需要是public的)應(yīng)該是由類名來(lái)調(diào)用,但是也可以使用 類名(null).靜態(tài)方法名的方式調(diào)用。

            posted on 2012-04-11 13:51 Snape 閱讀(263) 評(píng)論(0)  編輯 收藏 引用 所屬分類: Java

            導(dǎo)航

            <2025年6月>
            25262728293031
            1234567
            891011121314
            15161718192021
            22232425262728
            293012345

            統(tǒng)計(jì)

            常用鏈接

            留言簿

            隨筆分類

            隨筆檔案

            文章分類

            文章檔案

            my

            搜索

            最新評(píng)論

            閱讀排行榜

            評(píng)論排行榜

            久久国产成人亚洲精品影院| 久久综合给合综合久久| 久久精品亚洲日本波多野结衣| 久久精品水蜜桃av综合天堂| 久久美女网站免费| 国产精品久久久久a影院| 久久久久高潮毛片免费全部播放| 青青青国产成人久久111网站| 久久久国产精华液| 久久久久亚洲AV成人网人人网站 | 热99re久久国超精品首页| 久久精品国产99国产精品| 97精品依人久久久大香线蕉97| 久久伊人精品青青草原高清| 亚洲午夜福利精品久久| 国产精品99久久免费观看| 无码任你躁久久久久久| 人妻无码中文久久久久专区| 久久精品国产第一区二区| 国内精品久久久久影院日本| 亚洲精品美女久久久久99小说| 国产精品久久亚洲不卡动漫| 久久亚洲精品无码aⅴ大香| 狠狠人妻久久久久久综合| 久久精品国产亚洲AV高清热| 久久无码高潮喷水| 一本综合久久国产二区| 久久久久国产一区二区三区| 一本一道久久精品综合| 国内精品久久久久影院一蜜桃| 亚洲AV无码一区东京热久久| 久久99九九国产免费看小说| 久久99精品久久久久久不卡| 日本久久久久久中文字幕| 99国产欧美久久久精品蜜芽| 欧美一区二区三区久久综合| 亚洲va久久久噜噜噜久久天堂| 一本久道久久综合狠狠爱| 久久久SS麻豆欧美国产日韩| 成人久久免费网站| 色欲综合久久中文字幕网|