国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

Reference 不為人知的一面

瀏覽:140日期:2024-07-20 10:10:47
內容: Java 不支持 pointer,只提供 reference,初學者常常因此頗為困惑,特別是修過數據結構的信息系學生,他們心中第一個想到的是:「沒 pointer,這怎么成,那不就做不出 linked list 和 tree 的數據結構?」殊不知 reference 就是一種智能型的 pointer,它具有 pointer 的好處,而且不用像 pointer 一樣要程序員自行 reference (*) 以及 dereference (&),更不會像 pointer 一樣會誤闖內存禁區造成 crash。因為好處多多,所以 reference 已經是現代化程序語言的重要必備功能了。什么!你說 xx 高級語言沒支持 reference,那你可以把它埋葬在二十世紀的歷史灰燼中。Java 對于資料的處理方式是:只要是基本型態(包括 boolean, byte, short, int, long, float, double, char)一律使用 pass by value,其它型態一律 pass by reference。但是我發現這在未來有可能變動,因為 Java language 將 byvalue 訂為 reserved 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、double、char)一律使用 pass by value,其它型態一律 pass by reference。到底什么是pass by value?什么又是 pass by reference 呢?打個比方,pass by value 就是資料的「分身」傳遞過去,pass by reference 就是資料的「本尊」傳遞過去。(注:自從 發生那件新聞,有了「本尊」和「分身」的名詞之后,我發現要向學生解釋 reference 的觀念也就容易多了)。因為對象一律是 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.lang.ref.SoftReference)以及一個弱化的 weak reference(也就是 java.lang.ref.PhantomReference),這個設計考慮得相當仔細。這些 reference 依照「強度」排列如下:Direct Reference> Soft Reference> Weak Reference> Phantom Reference其中,direct reference 就是一般的 reference。只要被任何 direct reference 所reference 到的對象就不會被 garbage collector 清除。其它的三種 reference(包括 soft reference,weak reference,phantom reference)則不然,他們不會影響 garbage collection。如果你對這些特殊的 reference 感興趣,不妨去看看 java.lang.ref 的 Javadoc,順便寫幾個程序試試看。zz Java, java, J2SE, j2se, J2EE, j2ee, J2ME, j2me, ejb, ejb3, JBOSS, jboss, spring, hibernate, jdo, struts, webwork, ajax, AJAX, mysql, MySQL, Oracle, Weblogic, Websphere, scjp, scjd
相關文章:
主站蜘蛛池模板: 中文字幕一区二区在线播放 | 亚洲精品国产第一区第二区国 | 欧美日韩综合网在线观看 | 国产精品久久国产三级国不卡顿 | 欧美多人三级级视频播放 | 国产亚洲精品自在线观看 | 100000免费啪啪18免进 | 亚久久伊人精品青青草原2020 | 国产农村乱子伦精品视频 | a毛片在线播放 | 久草在线资源视频 | 毛片视频网站在线观看 | 日韩性黄色一级 | 久久www免费人成_看片高清 | 久久香蕉国产线看观看精品yw | 欧美一级毛片100部 欧美一级毛片aaaaa | 99精品久久精品一区二区 | 国产高清免费在线 | 欧美高清日本三级人妇 | 亚洲一区二区三区欧美 | 欧美日韩国产人成在线观看 | 手机在线观看一级午夜片 | 真正免费一级毛片在线播放 | 国产极品喷水视频jk制服 | 美女一级毛片视频 | 乱子伦一级在线现看 | 最新国产精品亚洲二区 | 日本不卡不码高清免费观看 | 亚洲精品一区二区三区四区手机版 | 性欧美久久 | 黄色福利站 | 国产主播福利精品一区二区 | 久久香蕉国产线看观看精品yw | 亚洲成人免费网址 | 午夜大片免费男女爽爽影院久久 | aaa欧美| 中文字幕亚洲不卡在线亚瑟 | 国内精品久久久久久久影视麻豆 | 久久国产精品-国产精品 | 欧美精品一区二区三区视频 | 亚洲国产精品日韩在线观看 |