<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)  編輯  收藏 所屬分類: 希哈爪哇

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


    網站導航:
     
    主站蜘蛛池模板: 最新亚洲人成无码网站| 四虎必出精品亚洲高清| 一个人免费观看www视频| 美女被免费视频网站a国产| 99亚偷拍自图区亚洲| 免费无码A片一区二三区| 337p欧洲亚洲大胆艺术| 亚洲精品免费在线| 亚洲精品乱码久久久久久下载| 亚洲精品免费在线观看| 亚洲国产香蕉碰碰人人| 久久久久高潮毛片免费全部播放 | 3d动漫精品啪啪一区二区免费| 久久精品国产亚洲| 91精品全国免费观看含羞草| 亚洲国产精品久久人人爱| 波多野结衣免费在线观看| 亚洲中文字幕无码亚洲成A人片| 黄a大片av永久免费| 免费无码国产V片在线观看| 亚洲色婷婷六月亚洲婷婷6月| 中文字幕无线码免费人妻| 亚洲色四在线视频观看| 91免费播放人人爽人人快乐| 亚洲日韩精品国产3区| 亚洲成a人片在线观看老师| 中文字幕成人免费高清在线| 亚洲韩国—中文字幕| 美女视频黄a视频全免费| 婷婷亚洲综合五月天小说在线| 久久亚洲AV无码西西人体| 久草免费福利资源站| 亚洲一区二区三区在线观看网站| 免费在线观看中文字幕| 国产日韩精品无码区免费专区国产| 亚洲AV永久青草无码精品| 成人毛片视频免费网站观看| h视频免费高清在线观看| 亚洲无砖砖区免费| 亚洲午夜无码片在线观看影院猛| 无码囯产精品一区二区免费|