• <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>

            woaidongmao

            文章均收錄自他人博客,但不喜標題前加-[轉貼],因其丑陋,見諒!~
            隨筆 - 1469, 文章 - 0, 評論 - 661, 引用 - 0
            數據加載中……

            java全局變量

            “java中全局變量應該放哪兒? ”引發的爭論

            1、單獨寫一個final的類,在里面定義final   static的全局變量,在其它程序里包含進來就可以了。

            2、類中的任何static   public的成員變量都是全局共享的。

            3JAVA中不應該有所謂全局變量的概念,全局變量嚴重影響了封裝和模塊化,所以如果你的程序中需要所謂的全局變量,那一定是你對程序的設計出了問題。

            4、那JAVA提供FINAL   STATIC   干嗎用啊,存在即合理,很多情況是需要用到全局變量的。他能減少參數的傳遞,能避免重復聲明。

            5FINAL   STATIC應該理解為常量,而不是全局變量,它的目的不是為了讓你每個類都可以訪問,而是獨立于具體對象,抽象到類層次的東東。

            6class   Global   {         public   static   final   String   APPNAME=   "xyz";   //   global   constant         public   static   String   currentUser   =   "abc";     //   global   variable         ...     }         class   WhatEver   {         ...         System.out.println(Global.APPNAME);         Global.currentUser   =   "Williams";     }

            7JAVA中不應該出現全局變量的概念。以上爭論的焦點是:public   static   final   類型   變量   是否屬于所謂的全局變量不得而知。它只不過實現了全局的意圖。我們要用到該變量時,只需要把該變量所在的類引用進來就可以了。這不正是我們所需要的嗎?不過還是要強調一定要真正理解JAVA當初出現的初衷就是為了安全性和跨平臺性。     去掉了類似CC++中的全局變量的概念,就是基于此的。

            8、有了全局變量安全性就差了。

            9、不用全局變量固然不無道理,但是世事無絕對,看運用,有的時候垃圾也能變成王道! 就象goto一樣,他本身沒什么錯,錯在運用者,用的過多過濫當然不對,但是為了避免使用GOTO卻用1000行來饒開,難道看1000行代碼就一定看的很清晰嗎?java的全局變亮也是一樣,不能用的太濫,什么東西都往全局上靠圖省事自然會出問題,但是過度恐懼不敢用也不可取,該用的場合還是要用的.特別是獨體類型,全虛擬機只有一份,數據庫連接池對象一般就是獨體對象,至于原因,我想不用我多說了吧!

            10、如果一個棧內存段就能搞定的事情,為何要用多個堆內存段來實現呢?

            11、對于goto一樣,他本身沒什么錯,錯在運用者,用的過多過濫當然不對,但是為了避免使用GOTO卻用1000行來饒開,難道看1000行代碼就一定看的很清晰嗎?”確實全局變量在某些環境下可能還有其實際的意義。但是在JAVA中,確實沒有所謂的全局變量的概念,通過設置一個abstract   class   or   interface,并將許多final   or   final   static   field置于其中,并在使用時調用ClassName.xxx   or   InterfaceName.xxx來模擬全局變量的使用(可以肯定的是,在許多的著作中大師們都已經反復強調了將許多常數放入一個abstract   class   or   interface,并使之成為常數類或常數接口的做法是對此功能的誤用,并不鼓勵如此使用,有興趣可以參閱《effective   java——機械工業出版社出版   Joshua   Bloch   著),

              但首先,final   or   final   static確實不是全局變量的概念,在JAVA中,一切都是對象,在對象中聲明的無論是field還是method亦或是property都將歸屬于某一種抽象或具體類型,否則也不會在調用中使用ClassName.xxx   or   InterfaceName.xxx這樣的形式來加以說明這是這個CLASSXXX,那是那個INTERFACEXXX。事實上final代表的是一種常量形式(Constant),而static則代表一種靜態觀念,常量的概念是為了區別于變量而存在的不變的變量(有些別扭,突然發現自己詞語貧乏,HOHO),而靜態則是希望區別于某一具體Object而獨立存在于某一特定類型的變量(到可以稱之為該類型的全局變量,但個人感覺不很確切)。全局變量的概念顯然過于寬泛,以至于我們說一個程序甚至是一個系統擁有一個唯一的變量變成可能,但final   or   static顯然不是為其而設計的(當然可以模擬)。其次,閣下提到的有關于全虛擬機只有一份,數據庫連接池對象...”是設計模式中所謂單例模式的實際應用,該模式確實非常像所謂的全局變量的概念,但設計這樣單個實例確實是因為在系統的整個生命周期中只需要一份該實例存在的緣故,更多的是突出概念而非實際應用,而全局變量則更多就是為了實際應用而生,這樣就會導致許多不成熟的,不加思考的應用加于其上而導致黏糊的像意大利面條一樣的代碼。所以個人認為,依在下實在低微的學識實在不敢胡亂評說關于全局變量是否有實際意義這樣巨大的課題,這樣的課題還是留給那些專家去討論吧。至于如何實際應用全局變量,我看,還是有則去之,無則加冕吧,實在要用偶也么的辦法(不過自從使用C++/JAVA開始,全局變量的使用確實降到了一個極低的程度,也許是因為在下的代碼寫的還是太少的緣故吧,呵呵...)。

            12static   變量可以使用,不要認為程序中出現了static成員或方法就是程序寫的不好,用不用靜態成員與程序寫的好壞沒有直接的因果關系,不要鉆牛角尖。

            13interface   Global     {     public   static   final       }

             

            posted on 2009-07-24 14:41 肥仔 閱讀(2337) 評論(0)  編輯 收藏 引用 所屬分類: Web-后臺

            亚洲精品乱码久久久久久按摩 | 久久午夜电影网| 久久精品无码一区二区无码| 久久久精品日本一区二区三区| 麻豆亚洲AV永久无码精品久久| 久久九九精品99国产精品| 99精品伊人久久久大香线蕉| 亚洲av伊人久久综合密臀性色| 午夜肉伦伦影院久久精品免费看国产一区二区三区 | 99久久国产综合精品女同图片| 久久精品一区二区三区AV| 久久99热这里只频精品6| 2020国产成人久久精品| 四虎久久影院| 热re99久久精品国产99热| 无码国内精品久久综合88| 精品久久久久久无码中文字幕| 蜜臀av性久久久久蜜臀aⅴ麻豆| 久久精品无码一区二区三区免费 | 天天爽天天爽天天片a久久网| 久久SE精品一区二区| 婷婷五月深深久久精品| 久久无码中文字幕东京热| 久久亚洲日韩看片无码| 久久综合五月丁香久久激情| 一本大道久久香蕉成人网| 怡红院日本一道日本久久 | 色综合久久久久| 久久97精品久久久久久久不卡| 久久久久人妻精品一区二区三区| 中文字幕乱码人妻无码久久| 久久亚洲精精品中文字幕| 波多野结衣中文字幕久久| 国产精品免费久久久久电影网| 久久精品国产99久久丝袜| 久久人人爽人人爽人人爽| 久久99精品久久久久久动态图 | 久久精品国产影库免费看| 久久精品国产WWW456C0M| 国产精品99久久免费观看| 亚洲欧美精品一区久久中文字幕 |