qileilove

          blog已經轉移至github,大家請訪問 http://qaseven.github.io/

          實例說明Java中的null

           讓我們先來看下面的語句:
            String x = null;
            1. 這個語句到底做了些什么?
            讓我們回顧一下什么是變量,什么是變量值。一個常見的比喻是 變量相當于一個盒子。如同可以使用盒子來儲存物品一樣,您可以使用一個變量來存儲一個值。當聲明一個變量時,我們需要設置其類型。
            在Java中變量分為兩大類型: 原始值(primitive)與引用值(reference).
            聲明為原始類型的變量,存儲的是實際的值;聲明為引用類型的變量,存儲的是實際對象的地址(指針,引用).
            在上面的語句中, 初始化語句定義了一個變量 "x". x中存放的是String引用,此處為 null.
            下圖對此概念提供了更形象的說明:
            
            如果 x = "abc",則引用示意圖如下:
            
            2. 在內存中null具體是什么?
            在Java中 null 值是什么,在內存中null是什么?
            首先需要明確,null不是一個合法的object實例,所以并沒有為其分配內存.
            null 僅僅用于表明該引用目前沒有指向任何對象。
            我們看看 JVM規范 的描述:
            Java虛擬機規范并不強制要求使用一個具體的值編碼null。
            我認為和其它類C語言一樣,null是對引用變量的值全部置0。
            譯者注: Java對象的屬性域默認初始化其實很簡單,把分配的內存所有位全部置0,所以 數字是0, boolean是false, 浮點是 0.0f, 引用是 null, 因為引用是內存地址,所以可以推測出 null 實際上就是一堆0. 用鼠標手想一想也就明白, 地址 0 肯定是不可以存放任何對象的。

          posted on 2014-08-27 10:37 順其自然EVO 閱讀(181) 評論(0)  編輯  收藏 所屬分類: 測試學習專欄

          <2014年8月>
          272829303112
          3456789
          10111213141516
          17181920212223
          24252627282930
          31123456

          導航

          統計

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 塔河县| 三河市| 平遥县| 塔城市| 北辰区| 翁源县| 祁东县| 怀宁县| 新宁县| 北票市| 宁津县| 彭水| 蕉岭县| 保德县| 漳州市| 渭南市| 九龙县| 乡城县| 雷波县| 静宁县| 沁源县| 沧源| 突泉县| 枣庄市| 剑河县| 黑山县| 华阴市| 麟游县| 都江堰市| 元阳县| 雷州市| 淄博市| 镇巴县| 离岛区| 武功县| 凤山县| 香格里拉县| 奉贤区| 台东市| 成武县| 岱山县|