<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    BloveSaga

    在希臘帕爾納斯山南坡上,有一個馳名世界的戴爾波伊神托所,在它的入口處的巨石上赫然銹刻著這樣幾個大字: 認識你自己!

      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      34 隨筆 :: 12 文章 :: 122 評論 :: 0 Trackbacks

    ? 轉型用于將一種類型轉換到另一種類型.看看下面的code運行后你猜會打印什么?
    ?public class Multicast
    {
    ?public static void main(String[] args)
    ?{
    ??System.out.println((int)(char)(byte)-1);
    ?}
    }
    ?轉,轉,轉,我給轉暈了,從int數值-1開始,然后從int轉換為byte,之后轉為char,最后轉型回int.第一個轉型將數值從32為窄化到8位,第二個轉型從8位拓寬為16位,最后從16位拓寬到32位.這個數值最終回到起點了嗎?運行一看不就知道了嗎?
    Print:
    F:\Java Develop>javac Multicast.java

    F:\Java Develop>java Multicast
    65535
    啊,這么會是65535?
    oh,my god!有條規則: 如果最初的數值類型是有符號的,那么就執行符號擴展;如果他是char,那么不管它將要被轉換成什么類型,都執行另擴展.
    ??
    用這條規則來44看.因為byte是有符號的,所以在將byte數值-1轉換成char時.會發生符號擴展.作為結果的char數值16位就都被置位了,因此它等于2^16-1(2的16次方減1),就是65535.從char到int的轉型也是一個擴展,
    用規則來說它將執行另擴展,而不是符號擴展.作為int的結果數值就是65535和打印的一樣.
    ?? 從這個例子我們得到一個教訓:
    如果通過觀察不能確定程序將要做什么,那么它做的就很有可能不是你想要的.

    posted on 2006-06-04 16:13 藍色Saga 閱讀(132) 評論(0)  編輯  收藏 所屬分類: 希哈爪哇

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 91在线视频免费观看| 人人爽人人爽人人片av免费| 亚欧免费一级毛片| 亚洲真人无码永久在线| 一级特黄录像视频免费| 亚洲视频一区二区| eeuss影院免费直达入口| 国产精品亚洲精品日韩已方| 黄色一级毛片免费| 亚洲一区二区三区在线视频| 一个人看的免费观看日本视频www| 亚洲一区二区三区在线播放| 最近免费中文字幕MV在线视频3| 国产成A人亚洲精V品无码性色| 久9久9精品免费观看| 亚洲精品成人图区| 成年人性生活免费视频| 国产精品亚洲专区无码唯爱网| 伊在人亚洲香蕉精品区麻豆| 无码精品人妻一区二区三区免费看| 亚洲AV无码码潮喷在线观看| 99在线免费观看视频| 亚洲sss综合天堂久久久| 免费日本黄色网址| 中文字幕在线免费播放| 亚洲一区二区三区电影| 我想看一级毛片免费的| 成人福利在线观看免费视频| 亚洲短视频男人的影院| 女人18一级毛片免费观看| 一个人看的www在线免费视频| 久久久久久亚洲av成人无码国产| 亚洲天堂免费在线| 免费无遮挡无码视频在线观看| 亚洲AV永久无码区成人网站| 日韩精品成人无码专区免费 | 国产精品免费大片一区二区| 亚洲av色影在线| 日本大片在线看黄a∨免费| 美女视频黄的免费视频网页| 亚洲人成电影网站色|