學(xué)習(xí)啦>學(xué)習(xí)方法>通用學(xué)習(xí)方法>學(xué)習(xí)經(jīng)驗(yàn)>

如何系統(tǒng)有效的學(xué)習(xí)java多線程

時(shí)間: 欣怡1112 分享

  Java的培訓(xùn)遍地開(kāi)花,許多零基礎(chǔ)的學(xué)員準(zhǔn)備學(xué)習(xí)Java,但是對(duì)Java語(yǔ)言的認(rèn)識(shí)又不全面。為了幫助學(xué)員們更好的學(xué)習(xí)Java,以下是學(xué)習(xí)啦小編分享給大家的學(xué)習(xí)java多線程的建議,希望可以幫到你!

  學(xué)習(xí)java多線程的建議

  1興趣是學(xué)習(xí)的最好老師

  其實(shí)最大的困難是在于克服自己。只要你有恒心,學(xué)好Java并不難。就算你沒(méi)有基礎(chǔ),沒(méi)有經(jīng)驗(yàn),沒(méi)有任何概念??墒羌词故前l(fā)明Java的人,發(fā)明計(jì)算機(jī)的人在起初也是一張白紙。

  他們也是不斷琢磨,不斷學(xué)習(xí)和實(shí)踐才出結(jié)果的。所有的Java高手都是從什么也不會(huì)學(xué)到什么都會(huì)的。興趣很重要,只要你有興趣,就會(huì)發(fā)現(xiàn)學(xué)習(xí)Java和打籃球一樣簡(jiǎn)單。

  2樹(shù)立學(xué)習(xí)的信心

  很多初高中生認(rèn)為自己學(xué)不會(huì)編程,學(xué)不會(huì)Java。其實(shí)Java學(xué)習(xí)不同于一般的知識(shí)性的學(xué)習(xí),它更側(cè)重于技能。學(xué)IT技術(shù)一定要多練、多寫(xiě),能吃苦才行。畢竟第一次接觸要比學(xué)計(jì)算機(jī)專(zhuān)業(yè)的人肯定理解的慢一些,但是反復(fù)的多看幾遍,多寫(xiě)幾次,也就好了,所謂的熟能生巧嘛!

  3掌握好的方法

  掌握好的學(xué)習(xí)方法,就是事半功倍的效果。很多同學(xué)在寫(xiě)代碼的時(shí)候,都是照葫畫(huà)瓢,沒(méi)有自己半點(diǎn)的理解,往往是把從書(shū)上背下來(lái)的再全堆上去。這樣寫(xiě)著寫(xiě)著就沒(méi)有了思路,這是缺少編程思想的原因。所以說(shuō),理解最重要。一旦建立起編程思想,有了自己的想法,寫(xiě)東西自然就會(huì)容易多了!

  4堅(jiān)持到底

  Java剛開(kāi)始的時(shí)候相對(duì)還是簡(jiǎn)單一些,大家都還有學(xué)習(xí)的積極性。越到后面越難,很多人開(kāi)始打退堂鼓,甚至產(chǎn)生想要放棄的念頭。這和爬山是一個(gè)道理,你都快到山頂了,肯定是走不動(dòng)了,但是如果再堅(jiān)持一下下,就會(huì)看到勝利的日出。

  二 或許大家說(shuō)這一些都太老套,根本不夠具體,我想說(shuō)每個(gè)人的環(huán)境不同方法也就不同,我說(shuō)一下我的學(xué)習(xí)方法

  1明確面向?qū)ο蟮姆懂?/p>

  我們必須明確一個(gè)大方向,也就是說(shuō)現(xiàn)在面向?qū)ο蟮木幊谭懂牎1M管人工智能曾經(jīng)有所浪潮(看看Borland為什么有Turbo Prolog),但未來(lái)5-10年工業(yè)界廣泛承認(rèn)并接受的將是面向?qū)ο笫降木幊?。java至少5到10年是不會(huì)淘汰的。

  工業(yè)界目前最流行的面向?qū)ο缶幊陶Z(yǔ)言就是C++和Java。所以基本上鎖定這兩個(gè)方向就可以了。而且完全可以同時(shí)掌握。

  2掌握J(rèn)ava的精華特性

  掌握J(rèn)ava的精華特性的同時(shí),一定要知道為什么。比如,Interface和multi-thread。用interface是更好的多繼承的模型,而多線程則是設(shè)計(jì)到語(yǔ)言一級(jí)的重要特性。要完全理解interface是為什么,用多線程又有幾種常用的編程模型。

  3開(kāi)始進(jìn)行設(shè)計(jì)

  理解了語(yǔ)言的特性是為什么了之后,就可以試著上升到設(shè)計(jì)這個(gè)層次,畢竟學(xué)習(xí)語(yǔ)言是要用的。目前比較好的開(kāi)發(fā)模式是采用自定向下的面向?qū)ο蟮脑O(shè)計(jì),加上MVC的模式(你可以看一下我介紹的關(guān)于MVC的內(nèi)容)。首先要找出最頂層的對(duì)象(這往往是最難的),然后一層一層往下遞歸,記住每次應(yīng)符合7+/-2的原則,因?yàn)槲覀內(nèi)说亩逃洃浘褪沁@樣。一般有圖形用戶界面的應(yīng)從界面開(kāi)始設(shè)計(jì)。

  4學(xué)習(xí)設(shè)計(jì)模式

  有了基本設(shè)計(jì)模型后,可以學(xué)一些設(shè)計(jì)模式(Design Pattern)。這是目前證明很有效的。比如體系結(jié)構(gòu)模式(Layering分層,Pipe/Filter管道或過(guò)濾器),設(shè)計(jì)模式(有很多,比如對(duì)象池Object Pool、緩沖池Cache等),編程模式(比如Copy-on-Write)。

  懂了這些模式之后,就會(huì)對(duì)系統(tǒng)的整體結(jié)構(gòu)有很好的把握,而學(xué)術(shù)上也有傾向一個(gè)系統(tǒng)完全可以由各種模式組合而成。前面提到的MT實(shí)際上就有好幾種模式,掌握后就不用自己花很多時(shí)間去試了。另外一個(gè)很重要的領(lǐng)域就是并行和分布式計(jì)算領(lǐng)域,大概有20種左右。

  5進(jìn)行編程實(shí)踐

  接下來(lái)就不能紙上談兵了,最好的方法其實(shí)是實(shí)踐。一般教科書(shū)上的例子并不能算是實(shí)踐,只能算是讓你掌握語(yǔ)言特性用的。而提倡做實(shí)際的Project也不是太好,因?yàn)槟氵€沒(méi)有熟練的能力去綜合各種技術(shù),這樣只能是你自己越來(lái)越迷糊。

  我認(rèn)為比較好的方法是找一些比較經(jīng)典的例子,每個(gè)例子比較集中一種編程思想而設(shè)計(jì)的,比如在我的實(shí)踐當(dāng)中,我曾經(jīng)學(xué)習(xí)過(guò)一個(gè)很經(jīng)典的例子就是用Java實(shí)現(xiàn)的HotDraw(源自SmallTalk),你可以用rolemodel或hotdraw在搜索引擎上找一下,我記不大清楚了。好象 是個(gè)網(wǎng)站,上面有原代碼和一些基本設(shè)計(jì)的文檔。

  另一個(gè)來(lái)源可以到 是個(gè)不錯(cuò)的文檔基地。從HotDraw上我學(xué)到了什么是Framework,以及如何用rolemodel的方式來(lái)構(gòu)造,這樣我就可以應(yīng)用到其他的地方。順便說(shuō)一句,這個(gè)例子你絕對(duì)不會(huì)覺(jué)得小,只會(huì)覺(jué)得大,并且他還是真正的商用的Framework。

  6學(xué)習(xí)修改經(jīng)典例子

  結(jié)合前面學(xué)到的設(shè)計(jì)模式你就可以很好的理解這些經(jīng)典的例子。并且自己可以用他來(lái)實(shí)現(xiàn)一些簡(jiǎn)單的系統(tǒng)。如果可以對(duì)他進(jìn)行進(jìn)一步的修改,找出你覺(jué)得可以提高性能的地方,加上自己的設(shè)計(jì),那就更上一個(gè)層次了,也就會(huì)真正地感到有所收獲。

  好象以上談的跟Java沒(méi)什么關(guān)系,其實(shí)我們?cè)缇蛻?yīng)該從單純的學(xué)習(xí)語(yǔ)言到真正的學(xué)習(xí)好編程的領(lǐng)域。學(xué)習(xí)技術(shù)是沒(méi)有止境的,你學(xué)習(xí)第一種語(yǔ)言可能要半年時(shí)間,以后每種語(yǔ)言都不應(yīng)該超過(guò)兩個(gè)月,否則你會(huì)覺(jué)得學(xué)習(xí)語(yǔ)言是包袱,是痛苦。

  Java的技術(shù)點(diǎn)和知識(shí)點(diǎn)歸納

  1. JVM相關(guān)(包括了各個(gè)版本的特性)

  對(duì)于剛剛接觸Java的人來(lái)說(shuō),JVM相關(guān)的知識(shí)不一定需要理解很深,對(duì)此里面的概念有一些簡(jiǎn)單的了解即可。不過(guò)對(duì)于一個(gè)有著3年以上Java經(jīng)驗(yàn)的資深開(kāi)發(fā)者來(lái)說(shuō),不會(huì)JVM幾乎是不可接受的。

  JVM作為java運(yùn)行的基礎(chǔ),很難相信對(duì)于JVM一點(diǎn)都不了解的人可以把java語(yǔ)言吃得很透。我在面試有超過(guò)3年Java經(jīng)驗(yàn)的開(kāi)發(fā)者的時(shí)候, JVM幾乎就是一個(gè)必問(wèn)的問(wèn)題了。當(dāng)然JVM不是唯一決定技術(shù)能力好壞的面試問(wèn)題,但是可以佐證java開(kāi)發(fā)能力的高低。

  在JVM這個(gè)大類(lèi)中,我認(rèn)為需要掌握的知識(shí)有:

  JVM內(nèi)存模型和結(jié)構(gòu)

  GC原理,性能調(diào)優(yōu)

  調(diào)優(yōu):Thread Dump, 分析內(nèi)存結(jié)構(gòu)

  class 二進(jìn)制字節(jié)碼結(jié)構(gòu), class loader 體系 , class加載過(guò)程 , 實(shí)例創(chuàng)建過(guò)程

  方法執(zhí)行過(guò)程:Java各個(gè)大版本更新提供的新特性(需要簡(jiǎn)單了解)

  2. Java的運(yùn)行(基礎(chǔ)必備)

  這條可能出看很簡(jiǎn)單,java程序的運(yùn)行誰(shuí)不會(huì)呢?不過(guò)很多時(shí)候, 我們只是單純通過(guò)IDE去執(zhí)行java程序,底層IDE又是如何執(zhí)行java程序呢?很多人并不了解。

  這 個(gè)知識(shí)點(diǎn)是最最基本的java開(kāi)發(fā)者需要掌握的,初學(xué)java,第一個(gè)肯定是教你如何在命令行中執(zhí)行java程序,但是很多人一旦把java學(xué)完 了,IDE用上了,就把這個(gè)都忘了。為什么強(qiáng)調(diào)要知道這個(gè)呢,知道了java最純粹的啟動(dòng)方式之后,你才能在啟動(dòng)出問(wèn)題的時(shí)候,去分析當(dāng)時(shí)啟動(dòng)的目錄多 少,執(zhí)行命名如何,參數(shù)如何,是否有缺失等。 這樣有利于你真正開(kāi)發(fā)中去解決那些奇奇怪怪的可能和環(huán)境相關(guān)的問(wèn)題。

  在這里需要掌握的知識(shí)有:

  javac 編譯java文件為 class 文件

  java 命令的使用, 帶package的java類(lèi)如何在命令行中啟動(dòng)

  java程序涉及到的各個(gè)路徑(classpath, java。library。path, java運(yùn)行的主目錄等)

  3. 數(shù)據(jù)類(lèi)型

  這條沒(méi)有什么好多說(shuō)的,無(wú)非就是Java中的基本類(lèi)型和對(duì)象類(lèi)型的掌握??梢栽倭私庖恍㎎DK如何自動(dòng)轉(zhuǎn)換方面的知識(shí),包括裝箱拆箱等,還要注意避免裝箱之后的類(lèi)型相等的判斷

  主要知識(shí)點(diǎn):

  基本類(lèi)型: int, long, float, double, boolean , 。。。

  對(duì)應(yīng)的對(duì)象類(lèi)型: Integer 等類(lèi)型到基本類(lèi)型的轉(zhuǎn)換, 裝箱和拆箱

  Object類(lèi)型: equals, hashcode

  String 類(lèi)型的特點(diǎn)

  4. 對(duì)象和實(shí)例,對(duì)象的創(chuàng)建

  在這方面,開(kāi)發(fā)者需要了解class和instance的概念以及之間的差別, 這是java面向?qū)ο筇匦缘囊粋€(gè)基礎(chǔ)。主要知識(shí)點(diǎn)有:

  Class和 Instance 的概念;

  Instance 創(chuàng)建的過(guò)程:1. 無(wú)繼承:分配內(nèi)存空間, 初始化變量, 調(diào)用構(gòu)造函數(shù);2.有繼承:處理靜態(tài)動(dòng)作, 分配內(nèi)存空間, 變量定義為初始值 , 從基類(lèi)->子類(lèi), 處理定義處的初始化, 執(zhí)行構(gòu)造方法;

  需要注意的點(diǎn):靜態(tài)屬性等從基類(lèi)->子類(lèi)進(jìn)行初始化;默認(rèn)無(wú)參構(gòu)造方法相關(guān)的特性。

  5. 訪問(wèn)控制

  這也是java封裝特性的一個(gè)基礎(chǔ),需要掌握的有:

  public protected default private 對(duì)于class, method, field 的修飾作用

  6. 流程控制

  Java 流程控制的基礎(chǔ), 雖然有些語(yǔ)法不一定很常用,但是都需要了解,并且在合適的地方使用它們。

  需要掌握的有:if, switch, loop, for, while 等流程控制的語(yǔ)法

  7. 面向?qū)ο缶幊痰母拍?/p>

  這 是一個(gè)java的核心概念,對(duì)于任何java開(kāi)發(fā)者都需要熟練掌握。Java中很多特性或者說(shuō)知識(shí)點(diǎn)都是和java面向?qū)ο缶幊谈拍钕嚓P(guān)的。在我的理解, 一個(gè)好的開(kāi)發(fā)者不僅僅需要了解這些特性(知識(shí)點(diǎn))本身,也更需要知道這些對(duì)象在java的面向?qū)ο缶幊谈拍钪惺侨绾误w現(xiàn)出來(lái)的,這樣更有利于開(kāi)發(fā)者掌握 java這門(mén)開(kāi)發(fā)語(yǔ)言,以及其他面向?qū)ο缶幊痰恼Z(yǔ)言。在這里只是簡(jiǎn)單羅列了一下,主要的知識(shí)點(diǎn)包括有:

  面向?qū)ο笕筇匦裕悍庋b,繼承,多態(tài); 各自的定義概念,有哪些特性體現(xiàn)出來(lái),各自的使用場(chǎng)景

  靜態(tài)多分派,動(dòng)態(tài)單分派的概念

  重載的概念和使用

  繼承:接口多實(shí)現(xiàn),基類(lèi)單繼承

  抽象,抽象類(lèi),接口

  多態(tài):方法覆蓋的概念和使用

  接口回調(diào)

  Java語(yǔ)言的8個(gè)特性

  1、簡(jiǎn) 單

  Java設(shè)計(jì)目的是讓專(zhuān)業(yè)程序員覺(jué)得既易學(xué)又好用。假設(shè)你有編程經(jīng)歷,你將不覺(jué)得Java難掌握。如果你已經(jīng)理解面向?qū)ο缶幊痰幕靖拍?,學(xué)習(xí)Java將更容易。如果你是一個(gè)經(jīng)驗(yàn)豐富的C++程序員,那就最好了,學(xué)習(xí)Java簡(jiǎn)直不費(fèi)吹灰之力。因?yàn)镴ava承C/C++語(yǔ)法和許多C++面向?qū)ο蟮奶匦裕蠖鄶?shù)程序員在學(xué)習(xí)Java時(shí)都不會(huì)覺(jué)得太難。另外,C++中許多容易混淆的概念,或者被Java棄之不用了,或者以一種更清楚、更易理解的方式實(shí)現(xiàn)。

  除了和C/C++類(lèi)似以外,Java的另外一個(gè)屬性也使它更容易學(xué)習(xí):設(shè)計(jì)人員努力使Java中不出現(xiàn)顯得讓人吃驚的特性。在Java中,很少明確地告訴你如何才能完成一項(xiàng)特定的任務(wù)。

  2、面向?qū)ο?/p>

  盡管受到其前輩的影響,但Java沒(méi)被設(shè)計(jì)成兼容其他語(yǔ)言源代碼的程序。這允許Java開(kāi)發(fā)組自由地從零開(kāi)始。這樣做的一個(gè)結(jié)果是,Java語(yǔ)言可以更直接、更易用、更實(shí)際的接近對(duì)象。通過(guò)對(duì)近幾十年面向?qū)ο筌浖?yōu)點(diǎn)的借鑒,Java設(shè)法在純進(jìn)化論者的“任何事物都是一個(gè)對(duì)象”和實(shí)用主義者的“不討論對(duì)象不對(duì)象”的論點(diǎn)之間找到了平衡。Java的對(duì)象模型既簡(jiǎn)單又容易擴(kuò)展,對(duì)于簡(jiǎn)單數(shù)據(jù)類(lèi)型,例如整數(shù),它保持了高性能,但不是對(duì)象。

  3、健 壯

  萬(wàn)維網(wǎng)上多平臺(tái)的環(huán)境使得它對(duì)程序有特別的要求,因?yàn)槌绦虮仨氃谠S多系統(tǒng)上可靠地執(zhí)行。這樣,在設(shè)計(jì)Java時(shí),創(chuàng)建健壯的程序被放到了高度優(yōu)先考慮的地位。為了獲得可靠性,Java在一些關(guān)鍵的地方限制你,強(qiáng)迫你在程序開(kāi)發(fā)過(guò)程中及早發(fā)現(xiàn)錯(cuò)誤。同時(shí),Java使你不必?fù)?dān)心引起編程錯(cuò)誤的許多最常見(jiàn)的問(wèn)題。因?yàn)镴ava是一種嚴(yán)格的類(lèi)型語(yǔ)言,它不但在編譯時(shí)檢查代碼,而且在運(yùn)行時(shí)也檢查代碼。事實(shí)上,在運(yùn)行時(shí)經(jīng)常碰到的難以重現(xiàn)的、難以跟蹤的許多錯(cuò)誤在Java中幾乎是不可能產(chǎn)生的。要知道,使程序在不同的運(yùn)行環(huán)境中以可預(yù)見(jiàn)的方式運(yùn)行是Java的關(guān)鍵特性。

  為更好理解Java是如何具有健壯性的,讓我們考慮使程序失敗的兩個(gè)主要原因:內(nèi)存管理錯(cuò)誤和誤操作引起的異常情況(也就是運(yùn)行時(shí)錯(cuò)誤)。在傳統(tǒng)的編程環(huán)境下,內(nèi)存管理是一項(xiàng)困難、乏味的任務(wù)。例如,在C/C++中,程序員必須手工地分配并且釋放所有的動(dòng)態(tài)內(nèi)存。這有時(shí)會(huì)導(dǎo)致問(wèn)題,因?yàn)槌绦騿T可能忘記釋放原來(lái)分配的內(nèi)存,或者釋放了其他部分程序正在使用的內(nèi)存。Java通過(guò)替你管理內(nèi)存分配和釋放,可以從根本上消除這些問(wèn)題(事實(shí)上,釋放內(nèi)存是完全自動(dòng)的,因?yàn)镴ava為閑置的對(duì)象提供內(nèi)存垃圾自動(dòng)收集)。在傳統(tǒng)的環(huán)境下,異常情況可能經(jīng)常由“被零除”或“文件未找到”這樣的情況引起,而我們又必須用既繁多又難以理解的一大堆指令來(lái)對(duì)它們進(jìn)行管理。Java通過(guò)提供面向?qū)ο蟮漠惓L幚頇C(jī)制來(lái)解決這個(gè)問(wèn)題。一個(gè)寫(xiě)得很好的Java程序,所有的運(yùn)行時(shí)錯(cuò)誤都可以并且應(yīng)該被你的程序自己進(jìn)行管理。

  4、多線程

  設(shè)計(jì)Java的目標(biāo)之一是為了滿足人們對(duì)創(chuàng)建交互式網(wǎng)上程序的需要。為此,Java支持多線程編程,因而你用Java編寫(xiě)的應(yīng)用程序可以同時(shí)執(zhí)行多個(gè)任務(wù)。Java運(yùn)行時(shí)系統(tǒng)在多線程同步方面具有成熟的解決方案,這使你能夠創(chuàng)建出運(yùn)行平穩(wěn)的交互式系統(tǒng)。Java的多線程機(jī)制非常好用,因而你只需關(guān)注程序細(xì)節(jié)的實(shí)現(xiàn),不用擔(dān)心后臺(tái)的多任務(wù)系統(tǒng)。

  5、結(jié)構(gòu)中立

  Java設(shè)計(jì)者考慮的一個(gè)主要問(wèn)題是程序代碼的持久性和可移植性。程序員面臨的一個(gè)主要問(wèn)題是,不能保證今天編寫(xiě)的程序明天能否在同一臺(tái)機(jī)器上順利運(yùn)行。操作系統(tǒng)升級(jí)、處理器升級(jí)以及核心系統(tǒng)資源的變化,都可能導(dǎo)致程序無(wú)法繼續(xù)運(yùn)行。Java設(shè)計(jì)者對(duì)這個(gè)問(wèn)題做過(guò)多種嘗試,Java虛擬機(jī)(JVM)就是試圖解決這個(gè)問(wèn)題的。他們的目標(biāo)是“只要寫(xiě)一次程序,在任何地方、任何時(shí)間該程序永遠(yuǎn)都能運(yùn)行”。在很大程度上,Java實(shí)現(xiàn)了這個(gè)目標(biāo)。

  6、解釋性和高性能

  前面已提到,通過(guò)把程序編譯為Java字節(jié)碼這樣一個(gè)中間過(guò)程,Java可以產(chǎn)生跨平臺(tái)運(yùn)行的程序。字節(jié)碼可以在提供Java虛擬機(jī)(JVM)的任何一種系統(tǒng)上被解釋執(zhí)行。早先的許多嘗試解決跨平臺(tái)的方案對(duì)性能要求都很高。其他解釋執(zhí)行的語(yǔ)言系統(tǒng),如BASIC,Tcl,PERL都有無(wú)法克服的性能缺陷。然而,Java卻可以在非常低檔的CPU上順利運(yùn)行。前面已解釋過(guò),Java確實(shí)是一種解釋性語(yǔ)言,Java的字節(jié)碼經(jīng)過(guò)仔細(xì)設(shè)計(jì),因而很容易便能使用JIT編譯技術(shù)將字節(jié)碼直接轉(zhuǎn)換成高性能的本機(jī)代碼。Java運(yùn)行時(shí)系統(tǒng)在提供這個(gè)特性的同時(shí)仍具有平臺(tái)獨(dú)立性,因而“高效且跨平臺(tái)”對(duì)Java來(lái)說(shuō)不再矛盾。

  7、分布式

  Java為Internet的分布式環(huán)境而設(shè)計(jì),因?yàn)樗幚鞹CP/IP協(xié)議。事實(shí)上,通過(guò)URL地址存取資源與直接存取一個(gè)文件的差別是不太大的。Java原來(lái)的版本(Oak)包括了內(nèi)置的地址空格消息傳遞(intra-address-space)特性。這允許位于兩臺(tái)不同的計(jì)算機(jī)上的對(duì)象可以遠(yuǎn)程地執(zhí)行過(guò)程。Java最近發(fā)布了叫做遠(yuǎn)程方法調(diào)用(RemoteMethodInvocation,RMI)的軟件包,這個(gè)特性使客戶機(jī)/服務(wù)器編程達(dá)到了無(wú)與倫比的抽象級(jí)。

  8、動(dòng) 態(tài)

  Java程序帶有多種的運(yùn)行時(shí)類(lèi)型信息,用于在運(yùn)行時(shí)校驗(yàn)和解決對(duì)象訪問(wèn)問(wèn)題。這使得在一種安全、有效的方式下動(dòng)態(tài)地連接代碼成為可能,對(duì)小應(yīng)用程序環(huán)境的健壯性也十分重要,因?yàn)樵谶\(yùn)行時(shí)系統(tǒng)中,字節(jié)碼內(nèi)的小段程序可以動(dòng)態(tài)地被更新。

猜你喜歡:

1.JAVA并發(fā)多線程的面試問(wèn)題及答案解析

2.java實(shí)習(xí)報(bào)告范文3篇

3.JAVA并發(fā)多線程的面試問(wèn)題及答案

4.如何系統(tǒng)有效的學(xué)習(xí)java api

5.如何系統(tǒng)有效的學(xué)習(xí)java me

3744135