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

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

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

    xylz,imxylz

    關注后端架構、中間件、分布式和并發編程

       :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      111 隨筆 :: 10 文章 :: 2680 評論 :: 0 Trackbacks

    我在CentOS release 5.3 (Final)遇到一種情況:

    一個類的所有public static final字段中,按照定義的從上往下順序,到一個字段為止,此字段的上面的所有字段都能訪問,此字段下面(包括子字段)都不能訪問。

    具體是這樣的:resin環境下一個jsp訪問一個類的某個字段,在web請求此jsp的時候被告知編譯jsp失敗,原因是:cannot find symbol。并指明了此類的哪一個字段。具體分析后發現此字段的上面所有字段都可以訪問,此字段的下面字段(包括自己)都不能訪問。但是詭異的是,在jsp中使用Class.getField()或者getFields()遍歷是可以拿到此字段的,并且此字段是完整的,可用的。

    也就是說JVM實例化了一個類,完成了所有字段的初始化,但是在將所有字段設置為對外可見時失敗了,導致一部分字段對外是不可見的,但是此類卻成功初始化,并對外可用了。這里所說的對外可見不是說字段設置為非public,而是類外根本就看不到,因為如果是非public的話會得到一個訪問修飾符不可見的錯誤,但是現在得到是不存在此符號。這只是我的猜想,并不一定正確。

    我的JVM版本如下:

    java version "1.6.0_10"
    Java(TM) SE Runtime Environment (build 1.6.0_10-b33)
    Java HotSpot(TM) 64-Bit Server VM (build 11.0-b15, mixed mode)

    其中resin比較老,是3.0.21 pro版本。特別說明的是,這種情況是偶爾才出現,重啟resin就消失了,所有字段可以正常訪問。我一共遇到了兩次,目前仍然不知道是JVM的bug還是resin的bug。

     

    第二個詭異的事情是,聽同事(兩個以上人看過現象)描述他寫了一個單例,如下:

    public class Singleton {

        private static final Singleton instance = new Singleton();

        private Singleton() {
        }

        public static Singleton getInstance() {
            return instance;
        }
    }

    然后去調用getInstance(),結果居然得到一個null。特別說明的是 沒有ClassNotFoundException異常,沒有java.lang.ExceptionInInitializerError異常,也沒有java.lang.NoClassDefFoundError異常,沒有任何異常,是一個真真正正的null。

    當然了,比較詭異的是重啟JVM就沒有此現象了。此現象我沒有重現過,也沒有看到過,只是道途聽說,不好過多評論。

     

    以上兩個問題有誰遇到過么?

    難道是RP問題?靈異事件?JVM BUG?



    ©2009-2014 IMXYLZ |求賢若渴
    posted on 2010-08-12 00:54 imxylz 閱讀(3126) 評論(14)  編輯  收藏 所屬分類: J2EE

    評論

    # re: 這是JVM的Bug么?誰遇到下面的情況? 2010-08-12 07:41 Robin's Java World
    按你說的,確實夠靈異的。  回復  更多評論
      

    # re: 這是JVM的Bug么?誰遇到下面的情況? 2010-08-12 08:31 蒲田
      public static Singleton getInstance() {
        if (instance == null)
          instance = new Singleton();
        return instance;
      }

    這是我在老一輩手上學到的教訓,說這是良好習慣  回復  更多評論
      

    # re: 這是JVM的Bug么?誰遇到下面的情況? 2010-08-12 08:53 liping
    這算哪門子良好習慣  回復  更多評論
      

    # re: 這是JVM的Bug么?誰遇到下面的情況? 2010-08-12 09:38 xylz
    @蒲田
    一看就是新手  回復  更多評論
      

    # re: 這是JVM的Bug么?誰遇到下面的情況? 2010-08-12 09:53 xylz
    @xylz
    參考《單例模式完全解析》
    http://www.tkk7.com/xylz/archive/2009/12/18/306622.html  回復  更多評論
      

    # re: 這是JVM的Bug么?誰遇到下面的情況? 2010-08-12 10:31 bingo
    同意。static 字段會在構造器之前執行。   回復  更多評論
      

    # re: 這是JVM的Bug么?誰遇到下面的情況? 2010-08-12 10:32 bingo
    @liping
    確實很好,用到時候在加載。除非你要求更快訪問且內存夠大  回復  更多評論
      

    # re: 這是JVM的Bug么?誰遇到下面的情況? 2010-08-12 14:43 蒲田
    抱歉是我沒看清楚 這問題  回復  更多評論
      

    # re: 這是JVM的Bug么?誰遇到下面的情況? 2010-08-12 14:57 蒲田
    我原以為是Debug 所以提出"如此見解",自己也曾遇過這問題,就理論來說是不需要多我那個檢查,但是當時詢問長輩的,卻被責備:"就塞進去一個檢查",所以就不曾思考這問題了  回復  更多評論
      

    # re: 這是JVM的Bug么?誰遇到下面的情況? 2010-08-12 15:10 shaiehv
    曙海嵌入式學院提供以下課程的培訓--中國最大的FPGA,DSP和3G手機通信培訓機構:
    FPGA培訓,DSP培訓,MTK培訓,Android培訓,Symbian培訓,iPhone培訓,單片機培訓,Candence PCB培訓,Vxworks培訓等。
    網址: http://www.51qianru.cn
    上海總部電話:021-51875830 深圳:0755-61280252 北京:010-51292078 南京:025-68662821  回復  更多評論
      

    # re: 這是JVM的Bug么?誰遇到下面的情況? 2010-08-15 19:38 ouyang
    第2個問題,是否存在多線程并發訪問的情況?
    如果存在多線程,是有可能取得null,不是jvm的問題。
    一個線程在初始化class后,調用new Singleton(); 時被掛起;這個時候另個線程訪問 getInstance(),但是這個時候instance 是存在的,jvm給這個做了初始化,但是還沒有分配好對象值。所以instance就是null了。  回復  更多評論
      

    # re: 這是JVM的Bug么?誰遇到下面的情況? 2010-08-15 20:50 xylz
    @ouyang
    JAVA規范保證一個類的static字段和static塊運行結束后才能被調用。  回復  更多評論
      

    # re: 這是JVM的Bug么?誰遇到下面的情況? 2010-08-18 21:29 ouyang
    @xylz
    是的,多線程情況下也不應該出現這樣的問題。  回復  更多評論
      

    # re: 這是JVM的Bug么?誰遇到下面的情況? 2010-09-02 10:20 bonamana
    加一個 volatile 就好了吧

    java內存模型的一個“bug“或者什么,指令重排,返回了對象,但是對象尚未初始化。

    多線程出現的  回復  更多評論
      


    ©2009-2014 IMXYLZ
    主站蜘蛛池模板: 最近中文字幕无吗免费高清| 免费福利电影在线观看| 亚洲欧美在线x视频| 亚洲成在人线在线播放无码| 亚洲精品中文字幕无码AV| 亚洲精品无码成人AAA片| 亚洲一区精品伊人久久伊人| 免费看少妇作爱视频| 日韩精品免费电影| 国产午夜鲁丝片AV无码免费| 国产亚洲福利一区二区免费看| 性做久久久久免费观看| 亚洲精品人成无码中文毛片| 亚洲色偷偷综合亚洲AV伊人| 中文字幕亚洲无线码| 内射干少妇亚洲69XXX| 亚洲AV无码乱码在线观看代蜜桃| 在线亚洲高清揄拍自拍一品区| 亚洲国产精品无码久久久秋霞1| 国产精品国产亚洲区艳妇糸列短篇| 草久免费在线观看网站| 久久精品电影免费动漫| 久久久久久国产精品免费免费| 免费少妇a级毛片| 亚洲国产日产无码精品| 日韩成人毛片高清视频免费看| 人妻丰满熟妇无码区免费 | 亚洲AV无码一区二区二三区入口 | 337p日本欧洲亚洲大胆精品555588| 久久亚洲熟女cc98cm| 日韩大片在线永久免费观看网站 | 久久不见久久见免费视频7 | 又粗又大又硬又爽的免费视频 | 亚洲国产精品一区二区久久hs| 亚洲av成本人无码网站| 国偷自产一区二区免费视频| 亚洲不卡无码av中文字幕| 国产91在线|亚洲| 亚欧色视频在线观看免费| 亚洲精品自在在线观看| 香蕉免费一级视频在线观看|