麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發設計 > 正文

Reference 不為人知的一面

2019-11-18 13:26:06
字體:
來源:轉載
供稿:網友

  java 不支持 pointer,只提供 reference,初學者經常因此頗為困惑,非凡是修過數據
  結構的信息系學生,他們心中第一個想到的是:「沒 pointer,這怎么成,那不就做不
  出 linked list 和 tree 的數據結構?」殊不知 reference 就是一種智能型的 point
  er,它具有 pointer 的好處,而且不用像 pointer 一樣要程序員自行 reference (*)
  以及 dereference (&),更不會像 pointer 一樣會誤闖內存禁區造成 crash。因為好
  處多多,所以 reference 已經是現代化程序語言的重要必備功能了。什么!你說 xx 高
  級語言沒支持 reference,那你可以把它埋葬在二十世紀的歷史灰燼中。
  Java 對于資料的處理方式是:只要是基本型態(包括 boolean, byte, short, int, l
  ong, float, double, char)一律使用 pass by value,其它型態一律 pass by refer
  ence。但是我發現這在未來有可能變動,因為 Java language 將 byvalue 訂為 reser
  ved Word(非 keyword)。當 Java 將 byvalue 變成 keyword 之時,非基本型態的值
  就可以 pass by value 了,但我相信,此時 Java 也必須開始支持 copy constrUCtor
  作為配套措施,究竟使用 deep copy 或 shallow copy(甚至 deep 和 shallow 兼而
  有之的 copy)還是要讓 PRogrammer 決定。
  前面提到:只要是基本型態(包括 boolean、byte、short、int、long、float、doubl
  e、char)一律使用 pass by value,其它型態一律 pass by reference。到底什么是
  pass by value?什么又是 pass by reference 呢?打個比方,pass by value 就是資
  料的「分身」傳遞過去,pass by reference 就是資料的「本尊」傳遞過去。(注:自
  從 發生那件新聞,有了「本尊」和「分身」的名詞之后,我發現要向學生解釋 refere
  nce 的觀念也就輕易多了)。因為對象一律是 pass by reference,所以一個對象經常
  同時被多個 variable 所指到。
  Java 提供自動內存治理的機制,也就是俗稱的 garbage collection(垃圾收集)。當
  一個對象不再被任何 variable 所指到,就代表此對象從此不可能再被利用,Java 虛擬
  機器內一個負責收集垃圾的 thread 就會在適當的時機出來將此塊內存回收。
  記得在 Java 之父 James Gosling 應邀到臺灣時(1997年12月),我曾經問他:Java
  的這種自動內存治理方式造成某些程序(例如 debugger)的困擾,Java 有沒有打算支
  持 weak reference。 James Gosling回答:未來的版本將會支持 weak reference,果
  然在后來的 JDK 1.2 就提供此支持了。JDK 1.2 除了 weak reference(也就是 java.
  lang.ref.WeakReference)之外,還多了一個強化的 weak reference(也就是 java.l
  ang.ref.SoftReference)以及一個弱化的 weak reference(也就是 java.lang.ref.P
  hantomReference),這個設計考慮得相當仔細。
  這些 reference 依照「強度」排列如下:
  Direct Reference > Soft Reference > Weak Reference > Phantom Reference
  其中,direct reference 就是一般的 reference。只要被任何 direct reference 所
  reference 到的對象就不會被 garbage collector 清除。其它的三種 reference(包括
  soft reference,weak reference,phantom reference)則不然,他們不會影響 gar
  bage collection。
  假如你對這些非凡的 reference 感愛好,不妨去看看 java.lang.ref 的 Javadoc,順
  便寫幾個程序試試看。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 毛片免费观看视频 | 毛片118极品美女写真 | 91福利社在线 | 久久不射电影网 | 国产1区2| av中文一区 | 宅男噜噜噜66国产免费观看 | 精品久久久久久综合日本 | 国产精品一区在线看 | 日韩黄色免费电影 | 性生活视频一级 | 国内精品久久久久久2021浪潮 | 久久久久久久.comav | www.精品久久| 91九色免费视频 | 羞羞的动漫在线观看 | 长泽雅美av| 中文字幕一二区 | 九九热在线视频观看 | 国产精品一区二av18款 | 免费一及片| 国产99久久久久久免费看 | 精品国产一区二区三区四 | 免费欧美| 成人免费福利网站 | 亚洲一区在线免费视频 | 久久人添人人爽人人爽人人片av | 精品亚洲一区二区三区 | 91成| 国产精品一区免费在线观看 | 久久九九热re6这里有精品 | 91www成人久久 | 99欧美精品 | 久久精品日韩一区 | 国产亚洲精品yxsp | 亚洲第一页综合 | 国产成人午夜高潮毛片 | 黄色a级片视频 | 香蕉久久久精品 | 91真视频 | 羞羞视频2023 |