隨筆 - 11  文章 - 33  trackbacks - 0
          <2025年5月>
          27282930123
          45678910
          11121314151617
          18192021222324
          25262728293031
          1234567

          常用鏈接

          留言簿(1)

          隨筆分類

          隨筆檔案

          文章檔案

          搜索

          •  

          最新隨筆

          最新評論

          閱讀排行榜

          評論排行榜

          我的評論

          @asdf
          獨占鎖既可以是悲觀的也可以是樂觀的呀,用CAS實現的獨占鎖不就是樂觀的?
          synchronized使用的內置鎖和ReentrantLock這種顯式鎖在java6以后性能沒多大差異,在更新的版本中內置鎖只會比顯式鎖性能更好。這兩種鎖都是獨占鎖,java5以前內置鎖性能低的原因是它沒做任何優化,直接使用系統的互斥體來獲取鎖。顯式鎖除了CAS的時候利用的是本地代碼以外,其它的部分都是Java代碼實現的,在后續版本的Java中,顯式鎖不太可能會比內置鎖好,只會更差。使用顯式鎖的唯一理由是要利用它更多的功能。
          “獨占鎖是一種悲觀鎖”,這是錯誤的說法。
          博主關于hanppens-before規則的第5條有錯誤。
          樓主,你好。我自己在linux下試驗的時候發現用%JAVA_HOME%不行,必須改成java home的絕對路徑才行,不知道是什么原因。
          這個Axman過于自大了。子類的對象為什么就不能和父類的對象equals?lsp原則忘記了嗎?
          teasp@163.com
          謝謝樓主
          樓上說得很有道理,最關鍵的問題是我們不知道哪些特性才是一個類的標志。因為現實世界太復雜了,簡直不可模仿
          沒看過相關討論的可以看看這個先:

          長方形有二個屬性長和寬。并有一個設置長的方法和設置寬的方法,還有一個求面積的方法.
          像下面
          private int length;
          private int width;
          public void setLength(int lenght) {
          this.length = lenght;
          }
          public void setWidth(int width) {
          this.width= width;
          }
          public int getArea() {
          return this.length * this.width;
          }
          如果說正方形是長方形的子類。為了保證正方形長和寬相等,那對應于正方形的二設置長寬的個方法就得改成
          public void setLength(int lenght) {
          this.length = lenght;
          this.width= lenght;
          }
          public void setWidth(int width) {
          this.length = width;
          this.width= width;
          }
          那我們想想用戶使用時候的情景。 我們都知道長方形的面積等于長與寬的積。那當我們用長方形的時候我們會這樣用
          Rectangle rectangle = new Rectangle();
          rectangle.setLength(5);
          rectangle.setWidth(4);
          我們想知道面積是多少我們就可以
          rectangle.getArea();
          得到的是20,當然結果是非常正確的。
          但想想如果我們把一個正方形的實例給用戶用的時候會怎么樣
          Rectangle rectangle = new Square(); //注意,這里體顯代換原則。用戶根本不知道真正的實例是正方形,用戶只知道長方形的事情。
          rectangle.setLength(5);
          rectangle.setWidth(4);
          我們想知道面積是多少我們就可以
          rectangle.getArea();
          得到的結果卻是 16 ,這違背了長方形的面積是長與寬之積的原則。用戶就不會明白為什么我設置了長是5寬是4得到的答案卻是16 ?? 與前提不符
          所以正方形不能代替長方形出現在這個地方。
          也就是說正方形不應當看作是長方形的子類。
          re: Java中的++操作 teasp 2007-09-20 21:40  
          @Jack L

          是的。我猜錯了,呵呵
          re: JAVA操作windows注冊表 teasp 2007-09-20 21:39  
          good.
          @黑蝙蝠

          呵呵,我不知道你有沒有看過關于正方形不是長方形的討論,網上有的,另外《Java與模式》里面第79頁左右就是講這個問題的。如果你看過相關的內容,應該能明白我要表達的意思了。
          @GandofYan
          兄弟啊,Square只有一個構造方法,你說的這句有語法錯誤哦。
          quite make sense
          re: Java中的++操作 teasp 2007-09-20 18:03  
          暈,沒想到這么多人評論了。。。
          re: Java中的++操作 teasp 2007-09-20 18:02  
          二樓的實驗也非常有意義。沒想到c和java在這一點上還有區別,呵呵,學到了。不過有一點不太同意二樓說的,我覺得在c里面應該是 i=i++;和i=(i++);的區別,前者不會加1,后者會,而java中這兩者是一樣的。我說的僅僅是猜測,并沒有實驗過,說錯了見諒
          re: 微軟真惡心 teasp 2007-09-20 17:43  
          呵呵,樓上誤會了哦,這不是政治吧,我是覺得微軟那么做不恰當啊
          re: 查看手機對JAVA的支持信息 teasp 2007-09-20 16:56  
          感覺你懂的好多啊,我現在還在入門中。。。
          re: 男人25歲前的忠告 teasp 2007-09-20 13:14  
          很好
          re: 微軟真惡心 teasp 2007-09-20 11:32  
          china是有別的意思,可是russia沒有別的意思啊
          re: 軟件開發#前途 teasp 2007-09-19 12:07  
          有一點我的想法不一樣,我覺得年紀越大積累的知識越多,學習能力會更強,有很多東西需要積累足夠多的知識才行。
          re: java里的clone teasp 2007-09-19 11:56  
          非常感謝樓上的回復,雖然你說的我知道。應該是我沒表述清楚,第一段里的“沒法繼承”應該是“沒有繼承”。我的意思是由于其他類都是繼承Object,所以應該繼承了Object的clone()方法,只是如果這個類沒有實現cloneable的話,在調用clone()時會拋異常。而實際情況是,如果沒有實現cloneable并重寫clone()方法,壓根就沒clone()方法可以調用,這很奇怪。
          re: java里的clone teasp 2007-09-18 12:07  
          又看了一下,ArrayList是淺clone
          主站蜘蛛池模板: 武夷山市| 永泰县| 栖霞市| 崇信县| 高密市| 武宣县| 虞城县| 颍上县| 焦作市| 巴林右旗| 新田县| 扬中市| 阿尔山市| 姚安县| 慈利县| 城步| 五河县| 扶风县| 柳河县| 昌吉市| 彭山县| 隆尧县| 龙口市| 株洲市| 梁平县| 温宿县| 平定县| 江山市| 阳信县| 垫江县| 阆中市| 沐川县| 苍溪县| 廉江市| 娄底市| 慈溪市| 寿阳县| 大渡口区| 苍溪县| 乌审旗| 习水县|