日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java中的测不准原理

發布時間:2023/12/14 java 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java中的测不准原理 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

轉摘自: http://www.cncode.com/article/article_11061_1.html

測不準原理
?????想做一個物理實驗,看看某物質的導電情形,于是接上電壓,并串聯上一個安培計來觀察電流,但是你知道嗎? 安培計本身也帶有電阻,造成你的實驗準確度受到影響。諸如此類的問題在科學界很常見,所以有了「測不準原理」之說。不只是物理,測不準的現象在計算機上也有可能發生。比方說,你想寫一個觀察程序,觀察 CPU 在執行某程序之下的使用率, 但是你的觀察程序本身也會占用一部份的 CPU 效能,造成測出來的數據不精確。

   再想象下面的情況:如果你想寫一個 Java 程序,觀察某對象什么時候會被垃圾收集的執行緒清除,所以你必須要用 一個 reference 記住此對象,以便隨時觀察,但是卻因此造成此對象的 reference 數目一直無法為零, 使得對象無法被清除。...... 又是「測不準」。

   java.lang.ref.WeakReference

   不過,現在有了 Weak Reference 之后,這就可以迎刃而解了。如果你希望能隨時取得某對象的信息,但又不想影響此 對象的垃圾收集,那么你應該用 Weak Reference 來記住此對象,而不是用一般的 reference。請看下面的例子:

   ...

   WeakReference wr = new WeakReference(obj);

   ...

   if (wr.get()==null) {

   System.out.println("obj 已經被清除了 ");

   } else {

   System.out.println("obj
   尚未被清除,其信息是 "+obj.toString());

   }

   ...

   在此例中,透過 get() 可以取得此 Reference 的所指到的對象,如果傳出值為 null 的話,代表此對象已經被清除。

   這類的技巧,在設計 Optimizer 或 Debugger 這類的程序時常會用到,因為這類程序需要取得某對象的信息,但是不可以 影響此對象的垃圾收集。

   java.lang.ref.SoftReference

   Soft Reference 雖然和 Weak Reference 很類似,但是用途卻不同。SoftReference 是用來設計 object-cache 之用的。 被 Soft Reference 指到的對象,即使沒有任何 Direct Reference,也不會被清除。一直要到 JVM 內存不足時且 沒有 Direct Reference 時才會清除,如此一來 SoftReference 不但可以把對象 cache 起來,也不會造成內存不足的錯誤 (OutOfMemoryError)。我覺得 Soft Reference 也適合拿來實作 pooling 的技巧。

   java.lang.ref.PhantomReference

   Phantom Reference 主要是用來取代對象的 finalize()。程序員利用 finalize() 來進行釋放資源的同時,有可能不小心 讓此對象再度擁有 Direct Reference。但是使用 Phantom Reference 則不會有此情形發生。和 Weak Reference 以 及 SoftReference 最大的不同是:Phantom Reference 一訂要搭配著 ReferenceQueue 使用,因為 Phantom Reference 的 get() 傳 出值一定是 null(以避免此對象不小心再度擁有 Direct Reference)。通常我們會設計一個 class 繼承 PhantomReference,然 后 override 其 clear() 來定義釋放資源等收尾的動作。當然,我寧可小心一點地使用 finalize(),也不愿意自找麻煩地使用 Phantom Reference。(中國程序員)

總結

以上是生活随笔為你收集整理的Java中的测不准原理的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。