2011年7月18日

          jdk升級(jí) -version 查看還是老版本

          解決:刪除system32下的3個(gè)java*.exe文件

          posted @ 2017-09-01 11:45 朝陽zzz 閱讀(265) | 評(píng)論 (0)編輯 收藏

          struts2

          一、DIM 
          例子:actionName!methodName.action
          動(dòng)態(tài)方法調(diào)用(Dynamix Method Invocation,DMI)是在action的名字中使用感嘆號(hào)來表示要調(diào)用的方法名

          DMI可能會(huì)帶來安全隱患
          和普通方法的區(qū)別:
          如果同一個(gè)action的不同方法使用的是相同的配置(同樣的攔截器引用,同樣的result映射),可以使用DMI,相反用普通方法

          posted @ 2014-07-04 14:58 朝陽zzz 閱讀(121) | 評(píng)論 (0)編輯 收藏

          integer和int比較的一些淺析

          Integer是int的封裝對(duì)象,兩個(gè)對(duì)象==比較的是棧的值
          Integer a = new Integer(1);
          Integer b = new Integer(1);
          a與b存的是Integer的堆中的地址,而不是值
          a、b指向堆中的地址顯然不同所以 a==b 為false

          int c = 1; int為值類型引用類型Integer與值類型int比較顯然比較的是值
          因?yàn)閕nt在堆中是不開辟內(nèi)存的,他在棧中的值則為他本身的值
          所以a==c比較的是他們各自的value, a==c為true

          Integer e=1; 這個(gè)比較特殊,直接賦值 它有獨(dú)立的內(nèi)存,每次賦值時(shí)將檢查內(nèi)存中是否有值跟他匹配的,若有則把此內(nèi)存地址付給e,若沒有,開辟新的內(nèi)存

          你可以嘗試下面的例子:
          Integer t = 1;
          Integer t1 = 1;
          t==t1 為true,如上所說,此時(shí)t與t1指向的是同一塊內(nèi)存

          new 一定是開辟新的內(nèi)存,直接賦值則不一定開辟新的內(nèi)存
          因?yàn)閍的引用指向堆,而e指向?qū)iT存放他的內(nèi)存,所以他們的內(nèi)存地址不一樣
          所以a==e為false

          c==e等同于 a==c,一個(gè)引用類型一個(gè)值類型

          posted @ 2013-12-09 10:47 朝陽zzz 閱讀(200) | 評(píng)論 (0)編輯 收藏

          Java軟件架構(gòu)師值得一試的“武功秘籍”

          作為Java程序員來說,最痛苦的事情莫過于可以選擇的范圍太廣,可以讀的書太多,往往容易無所適從。我想就我自己讀過的技術(shù)書籍中挑選出來一些,按照學(xué)習(xí)的先后順序,推薦給大家,特別是那些想不斷提高自己技術(shù)水平的Java程序員們。

            一、Java編程入門類

            對(duì)于沒有Java編程經(jīng)驗(yàn)的程序員要入門,隨便讀什么入門書籍都一樣,這個(gè)階段需要你快速的掌握J(rèn)ava基礎(chǔ)語法和基本用法,宗旨就是“囫圇吞棗不求甚解”,先對(duì)Java熟悉起來再說。用很短的時(shí)間快速過一遍Java語法,連懵帶猜多寫寫代碼,要“知其然”。

            1、《Java編程思想》

            在有了一定的Java編程經(jīng)驗(yàn)之后,你需要“知其所以然”了。這個(gè)時(shí)候《Java編程思想》是一本讓你知其所以然的好書,它對(duì)于基本的面向?qū)ο笾R(shí)有比較清楚的交待,對(duì)Java基本語法,基本類庫有比較清楚的講解,可以幫你打一個(gè)良好的Java編程基礎(chǔ)。這本書的缺點(diǎn)是實(shí)在太厚,也比較羅嗦,不適合現(xiàn)代人快節(jié)奏學(xué)習(xí),因此看這本書要懂得取舍,不是每章每節(jié)都值得一看的,挑重點(diǎn)的深入看就可以了。

            2、《Agile Java》中文版

            這本書是出版社送給我的,我一拿到就束之高閣,放在書柜一頁都沒有翻過,但是前兩天整理書柜的時(shí)候,拿出來一翻,竟然發(fā)現(xiàn)這絕對(duì)是一本好書!這本書一大特點(diǎn)是以單元測試和TDD來貫穿全書的,在教你Java各種重要的基礎(chǔ)知識(shí)的過程中,潛移默化的影響你的編程思維走向敏捷,走向TDD。另外這本書成書很新,以JDK5.0的語法為基礎(chǔ)講解,要學(xué)習(xí)JDK5.0的新語法也不錯(cuò)。還有這本書對(duì)于內(nèi)容取舍也非常得當(dāng),Java語言畢竟類庫龐大,可以講的內(nèi)容太多,這本書選擇的內(nèi)容以及內(nèi)容的多寡都很得當(dāng),可以讓你以最少的時(shí)間掌握J(rèn)ava最重要的知識(shí),順便培養(yǎng)出來優(yōu)秀的編程思路,真是一本不可多得的好書。

            雖然作者自己把這本書定位在入門級(jí)別,但我不確定這本書用來入門是不是稍微深了點(diǎn),我自己也準(zhǔn)備有空的時(shí)候翻翻這本書,學(xué)習(xí)學(xué)習(xí)。

            二、Java編程進(jìn)階類

            打下一個(gè)良好的Java基礎(chǔ),還需要更多的實(shí)踐經(jīng)驗(yàn)積累,我想沒有什么捷徑。有兩本書值得你在編程生涯的這個(gè)階段閱讀,培養(yǎng)良好的編程習(xí)慣,提高你的代碼質(zhì)量。

            1、《重構(gòu) 改善既有代碼的設(shè)計(jì)》

            這本書名氣很大,不用多介紹,可以在閑暇的時(shí)候多翻翻,多和自己的實(shí)踐相互印證。這本書對(duì)你產(chǎn)生影響是潛移默化的。

            2、《測試驅(qū)動(dòng)開發(fā) by Example》

            本書最大特點(diǎn)是很薄,看起來沒有什么負(fù)擔(dān)。你可以找一個(gè)周末的下午,一邊看,一邊照做,一個(gè)下午就把書看完,這本書的所有例子跑完了。這本書的作用是通過實(shí)戰(zhàn)讓你培養(yǎng)TDD的思路。

            三、Java架構(gòu)師之路

            到這個(gè)階段,你應(yīng)該已經(jīng)非常嫻熟的運(yùn)用Java編程,而且有了一個(gè)良好的編程思路和習(xí)慣了,但是你可能還缺乏對(duì)應(yīng)用軟件整體架構(gòu)的把握,現(xiàn)在就是你邁向架構(gòu)師的第一步。

            1、《Expert One-on-One J2EE Design and Development》

            這本書是Rod Johnson的成名著作,非常經(jīng)典,從這本書中的代碼誕生了springframework。但是好像這本書沒有中譯本。

            2、《Expert One-on-One J2EE Development without EJB》

            這本書由gigix組織翻譯,多位業(yè)界專家參與,雖然署名譯者是JavaEye,其實(shí)JavaEye出力不多,實(shí)在是忝居譯者之名。

            以上兩本書都是Rod Johnson的經(jīng)典名著,Java架構(gòu)師的必讀書籍。在我所推薦的這些書籍當(dāng)中,是我看過的最仔細(xì),最認(rèn)真的書,我當(dāng)時(shí)讀這本書幾乎是廢寢忘食的一氣讀完的,有小時(shí)候挑燈夜讀金庸武俠小說的勁頭,書中所講內(nèi)容和自己的經(jīng)驗(yàn)知識(shí)一一印證,又被無比精辟的總結(jié)出來,讀完這本書以后,我有種被打通經(jīng)脈,功力爆增的感覺。

            但是后來我看過一些其他人的評(píng)價(jià),似乎閱讀體驗(yàn)并沒有我那么high,也許是因?yàn)槊總€(gè)人的知識(shí)積累和經(jīng)驗(yàn)不同導(dǎo)致的。我那個(gè)時(shí)候剛好是經(jīng)驗(yàn)知識(shí)積累已經(jīng)足夠豐富,但是還沒有系統(tǒng)的整理成型,讓這本書一梳理,立刻形成完整的知識(shí)體系了。

            3、《企業(yè)應(yīng)用架構(gòu)模式》

            Martin的又一本名著,但這本書我只是泛泛的看了一遍,并沒有仔細(xì)看。這本書似乎更適合做框架的人去看,例如如果你打算自己寫一個(gè)ORM的話,這本書是一定要看的。但是做應(yīng)用的人,不看貌似也無所謂,但是如果有空,我還是推薦認(rèn)真看看,會(huì)讓你知道框架為什么要這樣設(shè)計(jì),這樣你的層次可以晉升到框架設(shè)計(jì)者的角度去思考問題。Martin的書我向來都是推崇,但是從來都沒有像Rod Johnson的書那樣非常認(rèn)真去看。

            4、《敏捷軟件開發(fā)原則、模式與實(shí)踐》

            Uncle Bob的名著,敏捷的經(jīng)典名著,這本書比較特別,與其說是講軟件開發(fā)過程的書,不如說講軟件架構(gòu)的書,本書用了很大篇幅講各種面向?qū)ο筌浖_發(fā)的各種模式,個(gè)人以為看了這本書,就不必看GoF的《設(shè)計(jì)模式》了。

            四、軟件開發(fā)過程

            了解軟件開發(fā)過程不單純是提高程序員個(gè)人的良好編程習(xí)慣,也是增強(qiáng)團(tuán)隊(duì)協(xié)作的基礎(chǔ)。

            1、《UML精粹》

            UML其實(shí)和軟件開發(fā)過程沒有什么必然聯(lián)系,卻是軟件團(tuán)隊(duì)協(xié)作溝通,撰寫軟件文檔需要的工具。但是UML真正實(shí)用的圖不多,看看這本書已經(jīng)足夠了,完全沒有必要去啃《UML用戶指南》之類的東西。要提醒大家的是,這本書的中譯本翻譯的非常之爛,建議有條件的看英文原版。

            2、《解析極限編程 擁抱變化》XP

            這是Kent Beck名著的第二版,中英文對(duì)照。沒什么好說的,必讀書籍。

            3、《統(tǒng)一軟件開發(fā)過程》UP

            其實(shí)UP和敏捷并不一定沖突,UP也非常強(qiáng)調(diào)迭代,測試,但是UP強(qiáng)調(diào)的文檔和過程驅(qū)動(dòng)卻是敏捷所不取的。不管怎么說,UP值得你去讀,畢竟在中國真正接受敏捷的企業(yè)很少,你還是需要用UP來武裝一下自己的,哪怕是披著UP的XP。

            4、《敏捷建模》AM

            Scott Ambler的名著,這本書非常的progmatic,告訴你怎么既敏捷又UP,把敏捷和UP統(tǒng)一起來了,又提出了很多progmatic的建議和做法。你可以把《解析極限編程擁抱變化》、《統(tǒng)一軟件開發(fā)過程》和《敏捷建模》這三本書放在一起讀,看XP和UP的不同點(diǎn),再看AM是怎么統(tǒng)一XP和UP的,把這三種理論融為一爐,形成自己的理論體系,那么你也可以去寫書了。

            五、軟件項(xiàng)目管理

            如果你突然被領(lǐng)導(dǎo)提拔為項(xiàng)目經(jīng)理,而你完全沒有項(xiàng)目管理經(jīng)驗(yàn),你肯定會(huì)心里沒底;如果你覺得自己管理項(xiàng)目不善,很想改善你的項(xiàng)目管理能力,那么去考PMP肯定是遠(yuǎn)水不解近渴的。

            1、《快速軟件開發(fā)》

            這也是一本名著。可以這樣說,有本書在手,你就有了一個(gè)項(xiàng)目管理的高級(jí)參謀給你出謀劃策,再也不必?fù)?dān)心自己不能勝任的問題了。這本書不是講管理的理論的,在實(shí)際的項(xiàng)目管理中,講這些理論是不解決問題的,這本書有點(diǎn)類似于“軟件項(xiàng)目點(diǎn)子大全”之類的東西,列舉了種種軟件項(xiàng)目當(dāng)中面臨的各種問題,以及應(yīng)該如何解決問題的點(diǎn)子,你只需要稍加變通,找方抓藥就行了。

            六、總結(jié)

            在這份推薦閱讀書籍的名單中,我沒有列舉流行的軟件框架類學(xué)習(xí)書籍,例如Struts,Hibernate,Spring之類,也沒有列舉AJAX方面的書籍。是因?yàn)檫@類書籍容易過時(shí),而上述的大半書籍的生命周期都足夠長,值得你去購買和收藏。


          原文出處:http://www.webspherechina.net/club/thread-17683-1-1.html

          posted @ 2011-10-25 11:42 朝陽zzz 閱讀(251) | 評(píng)論 (0)編輯 收藏

          關(guān)于myeclipse8.5工作區(qū)變?yōu)槟J(rèn)的處理辦法(經(jīng)測試可行)

          今天早上突然myeclipse8.5打開的時(shí)候默認(rèn)到了c盤工作區(qū),怎么都不能像以前那樣選擇,然后在網(wǎng)上找了一些方法,修改配置文件什么的,都不行,最后終于找到一個(gè)方法,貼出來和大家分享下:
          1.在myeclipse下創(chuàng)建一個(gè)快捷方式到桌面
          2.在桌面上的快捷方式右鍵屬性,在地址那欄后面添加一個(gè)-clean,例如:
          "D:/Program Files/MyEclipse8.0/myeclipse.exe" -clean
          3.打開快捷方式,ok!回到以前選擇工作區(qū)的樣子了!

          posted @ 2011-07-25 16:42 朝陽zzz 閱讀(452) | 評(píng)論 (1)編輯 收藏

          java內(nèi)存管理的8個(gè)小技巧

          1.         盡量使用直接量

          這個(gè)大家應(yīng)該清楚,所以只做簡訴:
          String str = "hello";
          上面這種方式會(huì)創(chuàng)建一個(gè)“hello”字符串,而且JVM的字符緩存池還會(huì)緩存這個(gè)字符串;
          String str = new String("hello");
          此時(shí)程序除創(chuàng)建字符串外,str所引用的String對(duì)象底層還包含一個(gè)char[]數(shù)組,這個(gè)char[]數(shù)組依次存放了h,e,l,l,o

          2.         使用StringBuilder和StringBuffer進(jìn)行字符串連接

          這個(gè)我就不多講了,用String做連接時(shí)會(huì)生成大量臨時(shí)字符串

          3.         盡早釋放無用對(duì)象的引用

          大部分時(shí),方法局部引用變量所引用的對(duì)象 會(huì)隨著方法結(jié)束而變成垃圾,因此,大部分時(shí)候程序無需將局部,引用變量顯式設(shè)為null

                   例如:

                   Public void test(){

                             Object obj = new Object();

                             ……

                             Obj=null;

          }

          上面這個(gè)就沒必要了,隨著方法test()的執(zhí)行完成,程序中obj引用變量的作用域就結(jié)束了。但是如果是改成下面:

          Public void test(){

                             Object obj = new Object();

                             ……

                             Obj=null;

                             //執(zhí)行耗時(shí),耗內(nèi)存操作;或調(diào)用耗時(shí),耗內(nèi)存的方法

                             ……

          }

          這時(shí)候就有必要將obj賦值為null,可以盡早的釋放對(duì)Object對(duì)象的引用。

          4.         盡量少用靜態(tài)變量

          當(dāng)某個(gè)對(duì)象被static變量所引用,那么GC通常是不會(huì)回收這個(gè)對(duì)象所占的內(nèi)存。如下:

          Class Person{

                   static Object obj = new Object();

          }

          對(duì)于上面的對(duì)象而言,obj變量的生命周期與Person類同步,在其不被卸載的情況下,其對(duì)應(yīng)的Class對(duì)象會(huì)常駐內(nèi)存,知道程序結(jié)束。

          5.         避免在經(jīng)常調(diào)用的方法、循環(huán)中創(chuàng)建java對(duì)象

          6.         緩存經(jīng)常使用的對(duì)象

          這里首先說一個(gè)實(shí)現(xiàn)緩存時(shí)常有的兩種方式:

          使用HashMap進(jìn)行緩存

          直接使用某些開源的緩存項(xiàng)目

          如果是第一種,程序員需要手動(dòng)控制HashMap容器里key-value對(duì)不至于太多,從而導(dǎo)致其占用過大的內(nèi)存,致使系統(tǒng)性能下降。

          而第二種多使用一些緩存算法,提高系統(tǒng)運(yùn)行效率,例如OSCache,Ehcache等,它們大都實(shí)現(xiàn)了FIFO\MRU等常見的緩存算法。

          7.         盡量不要使用finalize方法

          實(shí)際上,將資源清理放在finalize方法中完成是非常不好的選擇,由于GC的工作量很大,尤其是回收Young代內(nèi)存時(shí),大都會(huì)引起應(yīng)用程序暫停,所以再選擇使用finalize方法進(jìn)行資源清理,會(huì)導(dǎo)致GC負(fù)擔(dān)更大,程序運(yùn)行效率更差。

          8.         考慮使用SoftReference

          當(dāng)程序需要?jiǎng)?chuàng)建長度很大的數(shù)組時(shí),可以考慮使用SoftReference來包裝數(shù)組元素

          SoftReference是個(gè)很好的選擇,當(dāng)內(nèi)存足夠時(shí),它的功能等同于普通引用,當(dāng)內(nèi)存不足時(shí),它會(huì)犧牲自己,釋放軟引用所引用的對(duì)象。例如創(chuàng)建一個(gè)長度為100000Person數(shù)組。

          注意:在使用軟引用來引用對(duì)象時(shí)不要忘記軟引用的不確定性,程序通過軟引用所獲取的對(duì)象有可能為null(內(nèi)存緊張時(shí))。所以當(dāng)應(yīng)用程序取出SoftReference所引用的java對(duì)象之后,應(yīng)該顯式判斷該對(duì)象死后為null,為null時(shí),應(yīng)該重建對(duì)象。

          總結(jié):這只是在學(xué)習(xí)過程中的一些筆記,希望大家多溝通,共同進(jìn)步

          posted @ 2011-07-19 12:27 朝陽zzz 閱讀(364) | 評(píng)論 (0)編輯 收藏

          java垃圾回收學(xué)習(xí)總結(jié)

               摘要:     當(dāng)一個(gè)開發(fā)者真正了解JVM在java內(nèi)存回收實(shí)現(xiàn)之后,其開發(fā)出來的程序?qū)⒖梢愿痈咝В梢愿浞值乩糜邢薜膬?nèi)存,更快地釋放那些無用java對(duì)象所占用的內(nèi)存,并避免java程序的內(nèi)存泄露。1.Java垃圾回收器概述    程序員需要通過關(guān)鍵字new創(chuàng)建java對(duì)象,即可視為java對(duì)象申請(qǐng)內(nèi)存空間,JVM會(huì)再堆內(nèi)存中為每個(gè)對(duì)象分配空間,當(dāng)一個(gè)java...  閱讀全文

          posted @ 2011-07-18 14:18 朝陽zzz 閱讀(798) | 評(píng)論 (0)編輯 收藏

          <2011年7月>
          262728293012
          3456789
          10111213141516
          17181920212223
          24252627282930
          31123456

          導(dǎo)航

          統(tǒng)計(jì)

          常用鏈接

          留言簿

          隨筆分類

          隨筆檔案

          文章分類

          搜索

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 安达市| 固安县| 孟津县| 龙门县| 林西县| 白城市| 手游| 南通市| 健康| 尤溪县| 西吉县| 内丘县| 焦作市| 潼南县| 德钦县| 新闻| 玉门市| 泽州县| 阿鲁科尔沁旗| 冕宁县| 昭平县| 新乡县| 旬阳县| 盐边县| 黄骅市| 大埔县| 杭锦后旗| 黑龙江省| 青海省| 色达县| 泰和县| 融水| 吴江市| 江津市| 措勤县| 宁国市| 从江县| 轮台县| 奎屯市| 乌鲁木齐县| 明光市|