我的java天地

          記錄

          一、有沒有寫過自定義classloader
          二、本地去更新遠程服務器上容器代碼的方法
          三、兩個對象的hashcode一樣說明就是同一個對象嗎
          四、
          java中關鍵字volatile的作用

          一般說來,volatile用在如下的幾個地方:

          1、中斷服務程序中修改的供其它程序檢測的變量需要加volatile;

          2、多任務環(huán)境下各任務間共享的標志應該加volatile;

          3、存儲器映射的硬件寄存器通常也要加volatile說明,因為每次對它的讀寫都可能由不同意義;

          另外,以上這幾種情況經(jīng)常還要同時考慮數(shù)據(jù)的完整性(相互關聯(lián)的幾個標志讀了一半被打斷了重寫),在1中可以通過關中斷來實現(xiàn),2中可以禁止任務調(diào)度,3中則只能依靠硬件的良好設計了。

          其實Volatile是由于編譯器優(yōu)化所造成的一個Bug而引入的關鍵字。
          int a = 10;
          int b = a;
          int c = a;
          理論上來講每次使用a的時候都應該從a的地址來讀取變量值,但是這存在一個效率問題,就是每次使用a都要去內(nèi)存中取變量值,然后再通過系統(tǒng)總線傳到CPU 處理,這樣開銷會很大。所以那些編譯器優(yōu)化者故作聰明,把a讀進CPU的cache里,像上面的代碼,假如a在賦值期間沒有被改變,就直接從CPU的 cache里取a的副本來進行賦值。但是bug也顯而易見,當a在賦給b之后,可能a已經(jīng)被另一個線程改變而重新寫回了內(nèi)存,但這個線程并不知道,依舊按 照原來的計劃從CPU的cache里讀a的副本進來賦值給c,結(jié)果不幸發(fā)生了。
          于是編譯器的開發(fā)者為了補救這一bug,提供了一個Volatile讓開發(fā)人員為他們的過失埋單,或者說提供給開發(fā)人員了一個選擇效率的權(quán)利。當變量加上了Volatile時,編譯器就老老實實的每次都從內(nèi)存中讀取這個變量值,否則就還按照優(yōu)化的方案從cache里讀

          五、spring在項目中的應用,版 本
          六、maven的好處
          七、硬引用和軟引用區(qū)別   強引用和弱引用區(qū)別

          1.強引用
              本章前文介紹的引用實際上都是強引用,這是使用最普遍的引用。如果一個對象具有強引用,那就類似于必不可少的生活用品,垃圾回收器絕不會回收它。當內(nèi)存空 間不足,Java虛擬機寧愿拋出OutOfMemoryError錯誤,使程序異常終止,也不會靠隨意回收具有強引用的對象來解決內(nèi)存不足問題。


          2.軟引用(SoftReference)

              如果一個對象只具有軟引用,那就類似于可有可物的生活用品。如果內(nèi)存空間足夠,垃圾回收器就不會回收它,如果內(nèi)存空間不足了,就會回收這些對象的內(nèi)存。只要垃圾回收器沒有回收它,該對象就可以被程序使用。軟引用可用來實現(xiàn)內(nèi)存敏感的高速緩存。
          軟引用可以和一個引用隊列(ReferenceQueue)聯(lián)合使用,如果軟引用所引用的對象被垃圾回收,Java虛擬機就會把這個軟引用加入到與之關聯(lián)的引用隊列中。

          3.弱引用(WeakReference)
              如果一個對象只具有弱引用,那就類似于可有可物的生活用品。弱引用與軟引用的區(qū)別在于:只具有弱引用的對象擁有更短暫的生命周期。在垃圾回收器線程掃描它 所管轄的內(nèi)存區(qū)域的過程中,一旦發(fā)現(xiàn)了只具有弱引用的對象,不管當前內(nèi)存空間足夠與否,都會回收它的內(nèi)存。不過,由于垃圾回收器是一個優(yōu)先級很低的線程, 因此不一定會很快發(fā)現(xiàn)那些只具有弱引用的對象。 
          弱引用可以和一個引用隊列(ReferenceQueue)聯(lián)合使用,如果弱引用所引用的對象被垃圾回收,Java虛擬機就會把這個弱引用加入到與之關聯(lián)的引用隊列中。


          4.虛引用(PhantomReference)
              "虛引用"顧名思義,就是形同虛設,與其他幾種引用都不同,虛引用并不會決定對象的生命周期。如果一個對象僅持有虛引用,那么它就和沒有任何引用一樣,在任何時候都可能被垃圾回收。
          虛引用主要用來跟蹤對象被垃圾回收的活動。虛引用與軟引用和弱引用的一個區(qū)別在于:虛引用必須和引用隊列(ReferenceQueue)聯(lián)合使用。當垃 圾回收器準備回收一個對象時,如果發(fā)現(xiàn)它還有虛引用,就會在回收對象的內(nèi)存之前,把這個虛引用加入到與之關聯(lián)的引用隊列中。程序可以通過判斷引用隊列中是 否已經(jīng)加入了虛引用,來了解

              被引用的對象是否將要被垃圾回收。程序如果發(fā)現(xiàn)某個虛引用已經(jīng)被加入到引用隊列,那么就可以在所引用的對象的內(nèi)存被回收之前采取必要的行動。

          八、行業(yè)網(wǎng)關主要的業(yè)務是什么
          九、客戶經(jīng)理發(fā)展的主要產(chǎn)品有哪些
          十、webservice服務端具體開發(fā)
          String webserviceurl = "http://wt.lmobile.cn:6003/submitdata/MmsWebInterface.asmx";   
                    
          MmsWebInterfaceLocator mwifl = new MmsWebInterfaceLocator();
          MmsWebInterfaceSoap mwifs = mwifl.getMmsWebInterfaceSoap(new java.net.URL(webserviceurl));

          http://apps.hi.baidu.com/share/detail/23852724

          十一、java虛擬機中的內(nèi)存模型及主要算法。堆棧區(qū)別
          十二、.net和java中傳輸基本類型時大端及小端避免辦法
          十三、sessioin和cookie區(qū)別
          十四、hash實現(xiàn)對key和value的排序
          十五、如何在代碼中中斷一個線程任務
          十六、動態(tài)代理和cglig區(qū)別
          十七、java中是值傳遞還是引用傳遞
          十八、java中集合類底層數(shù)據(jù)結(jié)構(gòu)
          十九、threadlocal解釋
          二十、狀態(tài)模式、責任鏈模式、適配器模式、觀察者模式、工廠方法、抽象工廠,各屬于創(chuàng)建型、行為型還是什么型
          二十一、面象對象設計原則
          二十二、uml各圖,特別是時序圖
          二十四、敏捷快發(fā)理解
          二十五、寫一個編譯器最快算法(a+(b*c))*(d+e)正確,而))a+c則出錯
          二十六、linix中軟鏈接和硬鏈接區(qū)別,> >> 的區(qū)別,找出一個文件中第四行和第五行的命令

          1. 軟連接(符號鏈接) ln -s   source  target  

          2. 硬鏈接 ln source target   

          知道了inode的作用就不難理解軟硬鏈接的區(qū)別了。

          1. 軟連接相當于快捷方式,如果打開并修改軟連接,相應的文件也會隨之改變。但是如果刪除軟連接,源文件并不會受到影響。
          2. 硬鏈接有點像引用和指針的結(jié)合,當打開和修改它時,相應的文件隨之改變,但是所有這個文件的硬鏈接的內(nèi)容也隨之改變,這是因為所有的硬鏈接都擁有唯一的一個 inode 號,他們指向的是同一文件。
          3. 軟連接可以跨文件系統(tǒng)創(chuàng)建,也就是可以在某個分區(qū)中創(chuàng)建到另外一個分區(qū)的軟連接
          4. 硬鏈接則只能在本文件系統(tǒng)中使用(想想為什么?),其實原理很簡單,因為 inode 是這個文件在當前分區(qū)中的索引值,是相對于這個分區(qū)的,當然不能跨越文件系統(tǒng)了。
          5. 最后一個區(qū)別是軟連接可以連接任何文件或者文件夾,而硬鏈接則只能在文件之間創(chuàng)建
            > 輸出重定向,內(nèi)容會全部覆蓋       >>是追加 
             sed -n '5,10p' filename 這樣你就可以只查看文件的第5行到第10行
          二十七、java基礎方面書籍
          二十八、加強英文
          二十九、jdk5和jdk6的新特性
          netstat -ano | findstr "1433"

          posted on 2012-03-31 23:20 tobyxiong 閱讀(529) 評論(0)  編輯  收藏 所屬分類: java

          <2012年3月>
          26272829123
          45678910
          11121314151617
          18192021222324
          25262728293031
          1234567

          導航

          統(tǒng)計

          常用鏈接

          留言簿(3)

          隨筆分類(144)

          隨筆檔案(157)

          相冊

          最新隨筆

          搜索

          積分與排名

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 治县。| 贵定县| 读书| 高平市| 屏山县| 治多县| 额济纳旗| 尖扎县| 佛山市| 湄潭县| 招远市| 定襄县| 江川县| 胶州市| 洛南县| 黄山市| 贵南县| 伊春市| 合川市| 苏尼特右旗| 马边| 顺昌县| 巫溪县| 平凉市| 临洮县| 巴彦淖尔市| 东阿县| 镇安县| 扎囊县| 灵台县| 宜兰市| 苏州市| 彭泽县| 商城县| 桐乡市| 伊春市| 镇巴县| 上高县| 通州区| 云安县| 克山县|