java學習小結
現在越來越多的人學習編程,參加高強度的培訓,希望畢業後高薪就業,但是學習並非是短期內就可以速成的,不可能一口氣吃成一個大胖子,3、4個月就能吧全部的技能學完,這需要一個尋尋漸進的過程,那麼在學習的過程中大家有沒有總結出什麼:
1.學習中需要養成良好的編程習慣:比如編寫括弧時要成對,字母大小寫要區分,單詞拼寫要准確等等。
2.在學習的過程中,不要僅是停留在的表層,不要照抄書上的例子運行出結果就可以,要注意,即便對一個簡單的例子也要有耐心去琢磨、調試、改動,講知識點了解滲透。
3.在學習的過程中一定要自己動手實際操作、試著寫代碼,而不是抱一本書看看就行。覺得自己了解了就是會了,很多東西和體會必須自己動手才能真正屬於自己。
4.在北大青鳥的學習過程中,肯定會遇到各式各樣的問題不容易解決,可以多去專業的IT論壇了解相關的知識,不能全部都靠書本里的內容。昆明電腦培訓http://www.kmbdqn.cn/建議要會從各方面搜索有用的信息加以運用,促進學習的深入和知識水平的提高。
B. JAVA程序員面試總結,高手整整理加強版
第一階段:三年
我認為三年對於程序員來說是第一個門檻,這個階段將會淘汰掉一批不適合寫代碼的人。這一階段,我們走出校園,邁入社會,成為一名程序員,正式從書本 上的內容邁向真正的企業級開發。我們知道如何團隊協作、如何使用項目管理工具、項目版本如何控制、我們寫的代碼如何測試如何在線上運行等等,積累了一定的 開發經驗,也對代碼有了一定深入的認識,是一個比較純粹的Coder的階段。
第二階段:五年
五年又是區分程序員的第二個門檻。有些人在三年裡,除了完成工作,在空餘時間基本不會研究別的東西,這些人永遠就是個Coder,年紀大一些勢必被 更年輕的人給頂替;有些人在三年裡,除了寫代碼之外,還熱衷於研究各種技術實現細節、看了N多好書、寫一些博客、在Github上分享技術,這些人在五年 後必然具備在技術上獨當一面的能力並且清楚自己未來的發展方向,從一個Coder逐步走向系統分析師或是架構師,成為項目組中不可或缺的人物。
第三階段:十年
十年又是另一個門檻了,轉行或是繼續做一名程序員就在這個節點上。如果在前幾年就抱定不轉行的思路並且為之努力的話,那麼在十年的這個節點上,有些 人必然成長為一名對行業有著深入認識、對技術有著深入認識、能從零開始對一個產品進行分析的程序員,這樣的人在公司基本擔任的都是CTO、技術專家、首席 架構師等最關鍵的職位,這對於自己絕對是一件榮耀的事,當然老闆在經濟上也絕不會虧待你。
第一部分總結一下,我認為,隨著你工作年限的增長、對生活對生命認識的深入,應當不斷思考三個問題:
1、我到底適不適合當一名程序員?
2、我到底應不應該一輩子以程序員為職業?
3、我對編程到底持有的是一種什麼樣的態度,是夠用就好呢還是不斷研究?
最終,明確自己的職業規劃,對自己的規劃負責並為之努力。
關於項目經驗
在網上經常看到一些別的朋友有提出項目經驗的問題,依照我面試的感覺來說,面試主要看幾點:項目經驗+基本技術+個人潛力(也就是值不值得培養)。
關於項目經驗,我認為並發編程網的創始人方騰飛老師講的一段話非常好:介紹產品時面試官會考察應聘者的溝通能力和思考能力,我們大部分情況都是做產品的一個功能或一個模塊,但是即使是這樣,自 己有沒有把整個系統架構或產品搞清楚,並能介紹清楚,為什麼做這個系統?這個系統的價值是什麼?這個系統有哪些功能?優缺點有哪些?如果讓你重新設計這個 系統你會如何設計?
我覺得這就已經足以概括了。也許你僅僅工作一年,也許你做的是項目中微不足道的模塊,當然這些一定是你的劣勢且無法改變,但是如何彌補這個劣勢?
從方老師的話中我總結幾點:
1、明確你的項目到底是做什麼的,有哪些功能。
2、明確你的項目的整體架構,在面試的時候能夠清楚地畫給面試官看並且清楚地指出從哪裡調用到哪裡、使用什麼方式調用。
3、明確你的模塊在整個項目中所處的位置及作用。
4、明確你的模塊用到了哪些技術,更好一些的可以再了解一下整個項目用到了哪些技術。
在你無法改變自己的工作年限、自己的不那麼有說服力的項目經驗的情況下(這一定是扣分項),可以通過這種方式來一定程度上地彌補並且增進面試官對你的好感度。
關於專業技能
寫完項目接著寫寫一名3年工作經驗的Java程序員應該具備的技能,這可能是Java程序員們比較關心的內容。我這里要說明一下,以下列舉的內容不是都要會的東西—-但是如果你掌握得越多,最終能得到的評價、拿到的薪水勢必也越高。
1、基本語法
這包括static、final、transient等關鍵字的作用,foreach循環的原理等等。今天面試我問你static關鍵字有哪些作 用,如果你答出static修飾變數、修飾方法我會認為你合格,答出靜態塊,我會認為你不錯,答出靜態內部類我會認為你很好,答出靜態導包我會對你很滿 意,因為能看出你非常熱衷研究技術。
最深入的一次,我記得面試官直接問到了我Volatile關 鍵字的底層實現原理(順便插一句,面試和被面試本身就是相對的,面試官能問這個問題同時也讓面試者感覺到面試官也是一個喜愛研究技術的人,增加了面試者對 公司的好感,我最終選擇的就是問了這個問題的公司),不要覺得這太吹毛求疵了—-越簡單的問題越能看出一個人的水平,別人對你技術的考量絕大多數都是以深度優先、廣度次之為標準的,切記。
2、集合
非常重要,也是必問的內容。基本上就是List、Map、Set,問的是各種實現類的底層實現原理,實現類的優缺點。
集合要掌握的是ArrayList、LinkedList、Hashtable、HashMap、ConcurrentHashMap、 HashSet的實現原理,能流利作答,當然能掌握CopyOnWrite容器和Queue是再好不過的了。另外多說一 句,ConcurrentHashMap的問題在面試中問得特別多,大概是因為這個類可以衍生出非常多的問題,關於ConcurrentHashMap, 我給網友朋友們提供三點回答或者是研究方向:
(1)ConcurrentHashMap的鎖分段技術。
(2)ConcurrentHashMap的讀是否要加鎖,為什麼。
(3)ConcurrentHashMap的迭代器是強一致性的迭代器還是弱一致性的迭代器。
3、設計模式
本來以為蠻重要的一塊內容,結果只在阿里巴巴B2B事業部面試的時候被問了一次,當時問的是裝飾器模式。
當然咱們不能這么功利,為了面試而學習,設計模式在工作中還是非常重要、非常有用的,23種設計模式中重點研究常用的十來種就可以了,面試中關於設計模式的問答主要是三個方向:
(1)你的項目中用到了哪些設計模式,如何使用。
(2)知道常用設計模式的優缺點。
(3)能畫出常用設計模式的UML圖。
4、多線程
這也是必問的一塊了。因為三年工作經驗,所以基本上不會再問你怎麼實現多線程了,會問得深入一些比如說Thread和Runnable的區別和聯 系、多次start一個線程會怎麼樣、線程有哪些狀態。當然這只是最基本的,出乎意料地,幾次面試幾乎都被同時問到了一個問題,問法不盡相同。
總結起來是 這么一個意思:
假如有Thread1、Thread2、ThreaD3、Thread4四條線程分別統計C、D、E、F四個盤的大小,所有線程都統計完畢交給Thread5線程去做匯總,應當如何實現?
聰明的網友們對這個問題是否有答案呢?不難,java.util.concurrent下就有現成的類可以使用。
另外,線程池也是比較常問的一塊,常用的線程池有幾種?這幾種線程池之間有什麼區別和聯系?線程池的實現原理是怎麼樣的?實際一些的,會給你一些具體的場景,讓你回答這種場景該使用什麼樣的線程池比較合適。
最後,雖然這次面試問得不多,但是多線程同步、鎖這塊也是重點。synchronized和ReentrantLock的區別、 synchronized鎖普通方法和鎖靜態方法、死鎖的原理及排查方法等等。
5、JDK源碼
要想拿高工資,JDK源碼不可不讀。上面的內容可能還和具體場景聯系起來,JDK源碼就是實打實地看你平時是不是愛鑽研了。我面試過程中被問了不 少JDK源碼的問題,其中最刁鑽的一個問了我,String的hashCode()方法是怎麼實現的,幸好我平時String源代碼看得多,答了個大 概。
JDK源碼其實沒什麼好總結的,純粹看個人,總結一下比較重要的源碼:
(1)List、Map、Set實現類的源代碼
(2)ReentrantLock、AQS的源代碼
(3)AtomicInteger的實現原理,主要能說清楚CAS機制並且AtomicInteger是如何利用CAS機制實現的
(4)線程池的實現原理
(5)Object類中的方法以及每個方法的作用
這些其實要求蠻高的,我去年一整年基本把JDK中重要類的源代碼研究了個遍,真的花費時間、花費精力,當然回頭看,是值得的—-不僅僅是為了應付面試。
6、框架
老生常談,面試必問的東西。一般來說會問你一下你們項目中使用的框架,然後給你一些場景問你用框架怎麼做,比如我想要在Spring初始化bean 的時候做一些事情該怎麼做、想要在bean銷毀的時候做一些事情該怎麼做、MyBatis中$和#的區別等等,這些都比較實際了,平時積累得好、有多學習 框架的使用細節自然都不成問題。
如果上面你的問題答得好,面試官往往會深入地問一些框架的實現原理。問得最多的就是Spring AOP的實現原理,當然這個很簡單啦,兩句話就搞定的的事兒,即使你不會准備一下就好了。我遇到的最變態的是讓我畫一下Spring的Bean工廠實 現的UML圖,當然面對這樣一個有深度的問題,我是絕對答不出來的/(ㄒoㄒ)/~~
7、資料庫
資料庫十有八九也都會問到。一些基本的像union和union all的區別、left join、幾種索引及其區別就不談了,比較重要的就是資料庫性能的優化,如果對於資料庫的性能優化一竅不通,那麼有時間,還是建議你在面試前花一兩天專門 把sql基礎和SQL優化的內容准備一下。
不過資料庫倒是不用擔心,一家公司往往有很多部門,如果你對資料庫不熟悉而基本技術又非常好,九成都是會要你的,估計會先把你放到對資料庫使用不是要求非常高的部門鍛煉一下。
8、數據結構和演算法分析
數據結構和演算法分析,對於一名程序員來說,會比不會好而且在工作中絕對能派上用場。數組、鏈表是基礎,棧和隊列深入一些但也不難,樹挺重要的,比較 重要的樹AVL樹、紅黑樹,可以不了解它們的具體實現,但是要知道什麼是二叉查找樹、什麼是平衡樹,AVL樹和紅黑樹的區別。記得某次面試,某個面試官和 我聊到了資料庫的索引,他問我:你知道索引使用的是哪種數據結構實現嗎?
我答到用的Hash表吧,答錯。他又問,你知道為什麼要使用樹嗎?我答到因為Hash表可能會出現比較多的沖突,在千萬甚至是上億級別的數據面 前,會大大增加查找的時間復雜度。而樹比較穩定,基本保證最多二三十次就能找到想要的數據,對方說不完全對,最後我們還是交流了一下這個問題,我也明白了 為什麼要使用樹,這里不說,網友朋友們覺得索引為什麼要使用樹來實現呢?
至於演算法分析,不會、不想研究就算了,記得某次面試對方問我,Collections.sort方法使用的是哪種排序方法,額,吐血三升。當然為了 顯示我的博學,對演算法分析也有一定的研究(⊙﹏⊙)b,我還是硬著頭皮說了一句可能是冒泡排序吧。當然答案肯定不是,有興趣的網友朋友們可以去看一下 Collections.sort方法的源代碼,用的是一種叫做TimSort的排序法,也就是增強型的歸並排序法。
9、Java虛擬機
出乎我的意料,Java虛擬機應該是很重要的一塊內容,結果在這幾家公司中被問到的概率幾乎為0。要知道,我去年可是花了大量的時間去研究Java虛擬機的,光周志明老師的《深入理解Java虛擬機:JVM高級特性與最佳實踐》,我就讀了不下五遍。
言歸正傳,雖然Java虛擬機沒問到,但我覺得還是有必要研究的,我就簡單地列一個提綱吧,談談Java虛擬機中比較重要的內容:
(1)Java虛擬機的內存布局
(2)GC演算法及幾種垃圾收集器
(3)類載入機制,也就是雙親委派模型
(4)Java內存模型
(5)happens-before規則
(6)volatile關鍵字使用規則
也許面試無用,但在走向大牛的路上,不可不會。
10、Web方面的一些問題
Java主要面向Web端,因此Web的一些問題也是必問的。
我碰到過問得最多的兩個問題是:
談談分布式Session的幾種實現方式。
常用的四種能答出來自然是讓面試官非常滿意的。
另外一個常問的問題是:講一下Session和Cookie的區別和聯系以及Session的實現原理。這兩個問題之外,web.xml裡面的內容是重點,Filter、Servlet、Listener,不說對它們的實現原理一清二楚吧,至少能對它們的使用知根知底。另外,一些細節的方面比如get/post的區別、forward/重定向的區別、HTTPS的實現原理也都可能會被考察到。
最後,如果有興趣有時間,建議學習、研究一下SOA和RPC,面向服務體系,大型分布式架構必備,救命良方、包治百病、屢試不爽。
C. Java學習心得
Java前景是很不錯的,像Java這樣的專業還是一線城市比較好,師資力量跟得上、就業的薪資也是可觀的,
0基礎學習Java是沒有問題的,關鍵是找到靠譜的Java培訓機構,你可以深度了解機構的口碑情況,問問周圍知道這家機構的人,除了口碑再了解機構的以下幾方面:
1. 師資力量雄厚
要想有1+1>2的實際效果,很關鍵的一點是師資隊伍,你接下來無論是找個工作還是工作中出任哪些的人物角色,都越來越愛你本身的技術專業java技術性,也許的技術專業java技術性則絕大多數來自你的技術專業java教師,一個好的java培訓機構必須具備雄厚的師資力量。
2. 就業保障完善
實現1+1>2效果的關鍵在於能夠為你提供良好的發展平台,即能夠為你提供良好的就業保障,讓學員能夠學到實在實在的知識,並向java學員提供一對一的就業指導,確保學員找到自己的心理工作。
3. 學費性價比高
一個好的Java培訓機構肯定能給你帶來1+1>2的效果,如果你在一個由專業的Java教師領導並由Java培訓機構自己提供的平台上工作,你將獲得比以往更多的投資。
希望你早日學有所成。
D. java實驗報告總結
源代碼:
public class Exe1_1 {
public static void main (String args[]){
byte a1=127;
int a2=12345;
long a3=123456789L;
float a4=1.23e-5f;
double a5=1.4567e3;
char a6=65;
boolean a7=true;
System.out.println("a1="+a1+"\na2="+a2+"\na3="+a3+"\na4="+a4+"\na5="+a5+"\na6="+a6+"\na7="+a7);
}
}運行結果:
2.編寫Java小應用程序,輸出兩行字元串:「Java很有趣。」和「努力學習Java編程。」,輸出的起點坐標是(20,20),行距是50像素。源程序代碼:
import java.awt.Graphics;
import java.applet.Applet;
public class Exe1_2 extends Applet{
public void paint(Graphics g){
g.drawString("Java很有趣。",20,20);
g.drawString("努力學習Java編程。",20,70);
}
}運行情況:
3.使用算術運算符得到一個4位十進制數的各位數字並輸出,然後輸出該數的逆序數和各位數字平方後相加的和。
源程序代碼:
public class Exe1_3 {
public static void main (String args[]){
int n=3756,a,b,c,d,n1;
a=n/1000;
b=(n-1000*a)/100;
d=n%10;
c=(n%100-d)/10;
System.out.println("3756的逆序數為:"+d+" "+c+" "+b+" "+a);
System.out.print("各位數字平方後相加的和為:");
System.out.print(a*a+b*b+c*c+d*d);
}
}
運行結果:
三、實驗總結(是否完成實驗、實驗過程中的問題以及解決方法分析等)
本次是我第一次使用JAVA來進行編程,感覺很是不一樣,在前兩節課中我們學習了有關Java的一些簡單知識。然後這次的實驗是對最初的一種練習。
在第一題中,我們重要是認識java的運行環境,並且了解各種變數的數據類型。只要通過簡單的語句就可以通過運行。其中出現了一些單詞的拼寫錯誤,這些是可以修改正確的。第二題我們練習的十一個小的applet應用程序,需要設置一個網頁來顯示,這是一個很不一樣的地方,最後成功測試,裡面需要注意的是顯示位置的問題。第三題我們做的是一個有演算法要求的解決問題,在測試中出現了一點小問題,程序的演算法出了錯。還有一個問題是有關於顯示問題,最後的數據輸出需要用到兩行分別顯示字元和數據,這樣才不會出錯。
E. java 開發
常見的十四種Java開發工具的特點
1、JDK(JavaDevelopmentKit)Java開發工具集
從初學者角度來看,採用JDK開發Java程序能夠很快理解程序中各部分代碼之間的關系,有利於理解Java面向對象的設計思想。JDK的另一個顯著特點是隨著Java(J2EE、J2SE以及J2ME)版本的升級而升級。但它的缺點也是非常明顯的就是從事大規模企業級Java應用開發非常困難,不能進行復雜的Java軟體開發,也不利於團體協同開發。
2、JavaWorkshop
3、NetBeans與SunJavaStudio5
NetBeans是開放源碼的Java集成開發環境(IDE),適用於各種客戶機和Web應用。
SunJavaStudio是Sun公司最新發布的商用全功能JavaIDE,支持Solaris、Linux和Windows平台,適於創建和部署2層JavaWeb應用和n層J2EE應用的企業開發人員使用。NetBeans是業界第一款支持創新型Java開發的開放源碼IDE。開發人員可以利用業界強大的開發工具來構建桌面、Web或移動應用。同時,通過NetBeans和開放的API的模塊化結構,第三方能夠非常輕松地擴展或集成NetBeans平台。NetBeans3.5.1主要針對一般Java軟體的開發者,而JavaOneStudio5則主要針對企業做網路服務等應用的開發者。Sun不久還將推出ProjectRave,其目標是幫助企業的開發者進行軟體開發。NetBeans3.5.1版本與其他開發工具相比,最大區別在於不僅能夠開發各種台式機上的應用,而且可以用來開發網路服務方面的應用,可以開發基於J2ME的移動設備上的應用等。在NetBeans3.5.1基礎上,Sun開發出了JavaOneStudio5,為用戶提供了一個更加先進的企業編程環境。在新的JavaOneStudio5里有一個應用框架,開發者可以利用這些模塊快速開發自己在網路服務方面的各種應用程序。
4、Borland的JBuilder
Jbuilder進入了Java集成開發環境的王國,它滿足很多方面的應用,尤其是對於伺服器方以及EJB開發者們來說。下面簡單介紹一下Jbuilder的特點:
1)Jbuilder支持最新的Java技術,包括Applets、JSP/Servlets、JavaBean以及EJB(EnterpriseJavaBeans)的應用。
2)用戶可以自動地生成基於後端資料庫表的EJBJava類,Jbuilder同時還簡化了EJB的自動部署功能.此外它還支持CORBA,相應的向導程序有助於用戶全面地管理IDL(分布應用程序所必需的介面定義語言InterfaceDefinitionLanguage)和控制遠程對象。
3)Jbuilder支持各種應用伺服器。Jbuilder與InpriseApplicationServer緊密集成,同時支持WebLogicServer,支持EJB1.1和EJB2.0,可以快速開發J2EE的電子商務應用。
4)Jbuilder能用Servlet和JSP開發和調試動態Web應用。
5)利用Jbuilder可創建(沒有專有代碼和標記)純Java2應用。由於Jbuilder是用純Java語言編寫的,其代碼不含任何專屬代碼和標記,它支持最新的Java標准。
6)Jbuilder擁有專業化的圖形調試介面,支持遠程調試和多線程調試,調試器支持各種JDK版本,包括J2ME/J2SE/J2EE。JBuilder環境開發程序方便,它是純的Java開發環境,適合企業的J2EE開發;缺點是往往一開始人們難於把握整個程序各部分之間的關系,對機器的硬體要求較高,比較吃內存,這時運行速度顯得較慢。
5、Oracle的JDeveloper
Oracle9iJDeveloper(定為9.0版,最新為10g)為構建具有J2EE功能,XML和Webservices的復雜的,多層的Java應用程序提供了一個完全集成的開發環境。它為運用Oracle9i資料庫和應用伺服器的開發人員提供特殊的功能和增強性能,除此以外,它也有資格成為用於多種用途Java開發的一個強大的工具。
Oracle9iJDeveloper的主要特點如下:
①具有UML(UnifiedModelingLanguage,一體化建模語言)建模功能。可以將業務對象及e-business應用模型化。
②配備有高速Java調試器(Debuger)、內置Profiling工具、提高代碼質量的工具「CodeCoach」等。
③支持SOAP(SimpleObjectAccessProtocol)「簡單對象訪問協議」、UDDI(UniversalDescription,DiscoveryandIntegration)「統一描述、發現和集成協議」
、WSDL()「WEB服務描述語言」等Web服務標准。JDeveloper不僅僅是很好的Java編程工具,而且是OracleWeb服務的延伸,支持ApacheSOAP,以及9iAS,可擴充的環境和XML和WSDL語言緊密相關。Oracle9iJdeveloper完全利用Java編寫,能夠與以前的Oracle伺服器軟體以及其他廠商支持J2EE的應用伺服器產品相兼容,而且在設計時著重針對Oracle9i,能夠無縫化跨平台之間的應用開發,提供了業界第一個完整的、集成了J2EE和XML的開發環境,允許開發者快速開發可以通過Web、無線設備及語音界面訪問的Web服務和交易應用,以往只能通過將傳統Java編程技巧與最新模塊化方式結合到一個單一集成的開發環境中之後才能完成J2EE應用開發生命周期管理的事實,從根本上得到改變。缺點就是對於初學者來說,較復雜,也比較難。
6、IBM的VisualAgeforJava
VisualAgeforJava是一個非常成熟的開發工具,它的特性以於IT開發者和業余的Java編程人員來說都是非常用有用的。它提供對可視化編程的廣泛支持,支持利用CICS連接遺傳大型機應用,支持EJB的開發應用,支持與Websphere的集成開發,方便的bean創建和良好的快速應用開發(RAD)支持和無文件式的文件處理。
IBM為建設Web站點所推出的及其包含的Visual
AgeforJavaProfessionalEdition軟體已全面轉向以Java為中心,這樣,Java開發人員對WebSphere全套工具的感覺或許會好了許多。Studio所提供的工具有:Web站點管理、快速開發JDBC頁向導程序、HTML編輯器和HTML語法檢查等。這確實是個不錯的HTML站點頁面編輯環境。Studio和VisualAge集成度很高,菜單中提供了在兩種軟體包之間快速移動代碼的選項。這就讓使用Studio的Web頁面設計人員和使用VisualAge的Java程序員
可以相互交換文件、協同工作。VisualAgeforJava支持團隊開發,內置的代碼庫可以自動地根據用戶做出改動而修改程序代碼,這樣就可以很方便地將目前代碼和早期版本做出比較。與VisualAge緊密結合的WebsphereStudio本身並不提供源代碼和版本管理的支持,它只是包含了一個內置文件鎖定系統,當編輯項目的時候可以防止其他人對這些文件的錯誤修改,軟體還支持諸如MicrosoftVisualSourceSafe這樣的第三方源代碼控制系統。VisualAgeforJava完全面向對象的程序設計思想使得開發程序非常快速、高效。你可以不編寫任何代碼就可以設計出一個典型的應用程序框架。VisualAgeforJava作為IBM電子商務解決方案其中產品之一,可以無縫地與其他IBM產品,如WebSphere、DB2融合,迅速完成從設計、開發到部署應用的整個過程。VisualAgeforJava獨特的管理文件方式使其集成外部工具非常困難,你無法讓VisualAgeforJava與其他工具一起聯合開發應用。
7、BEA的WebLogicWorkshop
BEAWebLogicWorkshop是一個統一、簡化、可擴展的開發環境,使所有的開發人員都能在BEAWebLogicEnterprisePlatform之上構建基於標準的企業級應用,從而提高了開發部門的生產力水平,加快了價值的實現。WebLogicWorkshop除了提供便捷的Web服務之外,它能夠用於創建更多種類的應用。作為整個BEAWebLogicPlatform的開發環境。不管是創建門戶應用、編寫工作流、還是創建Web應用,Workshop8.1都可以幫助開發人員更快更好地完成。WebLogicWorkshop的主要特點如下:
①使J2EE開發切實可行,提高開發效率
BEAWebLogicWorkshop使開發人員遠離J2EE內在的復雜性,集中精力專注業務邏輯,無須操心單調乏味的基礎結構代碼。這種創新意味著,已被企業驗證的J2EE的強大功能,最終被大多數不熟悉Java和J2EE的應用開發人員所掌握,從而使IT部門的工作效率提高一個數量級。可視化設計器以及直觀的概念,如事件、屬性和控制項等,實現了基於事件的開發。Workshop簡化的程序設計模型,使開發人員不必掌握復雜的J2EEAPI和面向對象的程序設計原理。所有開發人員,包括J2EE專家和具有可視化和過程化語言技能的應用開發人員在內,都可以共同工作在BEAWebLogicEnterprisePlatform之上。Workshop的可視化開發環境,創建帶有代碼注釋的標准Java文件,用來說明由運行時框架實施的企業級需求。J2EE和其他高級開發人員,藉助功能強大的代碼編輯功能,可以訪問Java源代碼,從而彌補了可視化設計器的不足。
②構建企業級應用
通過在可伸縮、安全可靠的企業級架構上實施各種應用,BEAWebLogicWorkshop大大降低了開發風險。而且,所有應用的創建都使用標準的J2EE組件,既保護了您的技術投資,又保持了最大的靈活性。BEAWebLogicWorkshop運行框架,是統一整個架構的匯聚層,使單一、簡化的程序設計模型擴展到所有的BEAWebLogicEnterprisePlatform應用類型。通過解釋設計時創建的注釋代碼,運行時框架可以實現必要的J2EE組件,並且提取出與J2EE應用開發有關的所有底層細節。
③降低IT復雜性BEAWebLogicWorkshop提供各種Java控制項,使得與IT資源的連接更輕而易舉。另外,在構建任何BEAWebLogicPlatform的應用中,Java控制項不僅可擴展而且完全相同。這種強大、有效的方法能夠:降低IT技術的復雜性,優化信息的可用性,推動包含"最佳業務方案"的可重用服務的開發,使開發人員能以更低的成本、更短的時間實現更大的產出。
利用BEAWebLogicWorkshop,任何開發人員都能以最大的生產效率,構建各種Web服務、Web應用、門戶和集成項目。BEAWebLogicWorkshop是BEA的產品戰略核心,它幫助客戶接觸和利用面向服務架構(SOA)的強大功能。BEAWeblogicWorkshop8.1極大簡化了當前實際企業集成環境中企業級應用和服務的構建,並成為全面支持關鍵企業級應用(如非同步、真正松耦合和粗粒度消息傳送等)的自然選擇。它的缺點就是過於復雜,對於初學者來說,理解起來較為困難。
8、WebGain的VisualCafeforJavaVisualCafe是只能在Symantec公司的Java虛擬機、Netscape公司的Java虛擬機和Microsoft虛擬機上工作的調試器。這對於開發者來講是一個重要的特性,因為用戶開發的Java代碼中的許多軟體bug就可能中會在某種特定的虛擬機上起作用。在修改後進行編譯基繼續進行調試時,VisualCafe會自動將文件存檔,使用VisualCafe創建的原生應用具有許多特點。除了明顯的速度提高之外,Symantec使類庫的二進制方式比正常的JDK小VisualCafe為所指定的關系自動生成或更新必要的Java代碼。利用VisualCafe,用戶可以從一個標准對象資料庫中集合完整的Java應用程序和Applet,而不必再編寫源代碼。VisualCafe還提供了一個擴充的源代碼開發工具集。VisualCafe綜合了Java軟體的可視化源程序開發工具,它允許開發人員在可視化視圖和源視圖之間進行有效地轉換。在可視化視圖中進行的修改立即反映在源代碼中。對源代碼的改變自動更新可視化視圖。VisualCafe具有許多源文件方面的特性,如全局檢索和替換。絕大多數Java開發工具的文獻的問題在於簡單地挨個介紹開發工具的每部分組件,但用戶在開應用時還需要一個面向任務的手冊,利用這個手冊你可以不必知道工具每一部分的特定功能就可以開始創建自己的應用。VisualCafe提供了非常全面的用戶指南,它對最開始的安裝到創建第一個Java應用和Applet都提供了全面的幫助,VisualCafe將自動生成所指明關系的必要Java代碼。VisualCafe可以在Windows95和WindowsNT平台下運行,Symantec公司為Java開發工作提供一個在Macintosh操作系統下可以運行的RAD工具。VisualCafe編譯器速度很快,在國際化支持方面比較突出;缺點就是對於初學者來說,較復雜,也比較難。
9、Macromedia的JRUN
Macromedia公司的JRun是一個具有最廣闊適用性的Java引擎,用於開發及實施由JavaServlets和JavaServerPages編寫的伺服器端Java應用。JRun是第一個完全支持JSP1.0規格書的商業化產品,全球有超過80,000名開發人員使用JRun在他們已有的Web伺服器上添加伺服器端Java的功能。其中Web伺服器包括了MicrosoftIIS,NetscapeEnterpriseServer,Apache等。JRun是開發實施伺服器端Java的先進引擎。如果我們希望在我們的Web應用中添加伺服器端Java功能,那麼JRun將成為我們的正確選擇。JRun目前有3個版本,它是第一個支持JavaServerPages(JSP)規格書1.0的商業化產品。JSP是一種強大的伺服器端技術,它是用於創建復雜Web應用的一整套快速應用開發系統。JRun可以使我們開始開發並測試Java應用。它最多接受5個並發的連接並且包括全部JavaServletAPI,支持JavaServerPages(JSP),支持所有主要的Webservers和計算機平台。JRunPro能夠在生產環境下承受大訪問量的負載,幫助我們實施應用、服務或Web站點(包括內聯網)。JRunPro支持無限量並發式連接運行多個Java虛擬機,包括多個並發的Java虛擬機(JVM)。提供一個遠程管理applet以及一個遠程可再分布式的管理applet。JRunProUnlimited包括了所有JRunPro的功能,除次以外,還可以運行無限量的,並發的JVM。JRun依靠其內置的JRunWebServer可以單獨運行。使用伺服器端Java,用戶可以開發出復雜的商業應用系統。最重要的一點是,由於servlets的平台獨立性,以及更加簡單的開發、更快速的實施、更經濟的維護成本,它是CGI(CommonGatewayInterface)或Perlscripts的極佳的替代產品。缺點就是對於初學者來說,較復雜,也比較難。10、JCreator
JCreator是一個Java程序開發工具,也是一個Java集成開發環境(IDE)。無論你是要開發Java應用程序或者網頁上的Applet元件都難不倒它。在功能上與Sun公司所公布的JDK等文字模式開發工具相較之下來得容易,還允許使用者自訂義操作窗口界面及無限Undo/Redo等功能。JCreator為用戶提供了相當強大的功能,例如項目管理功能,項目模板功能,可個性化設置語法高亮屬性、行數、類瀏覽器、標簽文檔、多功能編繹器,向導功能以及完全可自定義的用戶界面。通過JCreator,我們不用激活主文檔而直接編繹或運行我們的JAVA程序。JCreator能自動找到包含主函數的文件或包含Applet的Html文件,然後它會運行適當的工具。在JCreator中,我們可以通過一個批處理同時編繹多個項目。JCreator的設計接近Windows界面風格,用戶對它的界面比較熟悉。其最大特點是與我們機器中所裝的JDK完美結合,是其它任何一款IDE所不能比擬的。它是一種初學者很容易上手的java開發工具,缺點是只能進行簡單的程序開發,不能進行企業J2EE的開發應用。
11、MicrosoftVJ++
VisualJ++是Microsoft公司推出的可視化的Java語言集成開發環境(IDE),為Java編程人員提供了一個新的開發環境,是一個相當出色的開發工具。無論集成性、編譯速度、調試功能、還是易學易用性,都體現了Microsoft的一慣風格。VisualJ++具有
下面的特點:
1)VisualJ++把Java虛擬機(JVM)作為獨立的操作系統組件放入Windows,使之從瀏覽器中獨立出來。
2)Microsoft的應用基本類庫(AFC,)對SUN公司的JDK作了擴展,使應用基本類庫更加適合在Windows下使用。
3)VisualJ++的調試器支持動態調試,包括單步執行、設置斷點、觀察變數數值等。
4)VisualJ++提供了一些程序向導(Wizards)和生成器(Builders),它們可以方便地幫助用戶快速地生成Java程序,幫助你在自己的工程中創建和修改文件。
5)VisualJ++界面友好,其代碼編輯器具有智能感知、聯機編譯等功能,使程序編寫十分方便。VisualJ++中建立了Java的WFC,這一新的應用程序框架能夠直接訪問Windows應用程序介面(API),使你能夠用Java語言編寫完全意義上的Windows應用程序。
6)VisualJ++中表單設計器的快速應用開發特性使用WFC創建基於表單的應用程序變得輕松、簡單。通過WFC可以方便地使用ActiveX數據對象(ADO,ActiveXDataObjects)來檢索數據和執行簡單數據的綁定。通過在表單設計器中使用ActiveX數據對象,可以快速地在表單中訪問和顯示數據。VisualJ++能結合微軟的一貫的編程風格,很方便進行Java的應用開發,但它的移植性較差,不是純的Java開發環境。
12、Eclipse
Eclipse是一種可擴展的開放源代碼IDE。2001年11月,IBM公司捐出價值4,000萬美元的源代碼組建了Eclipse聯盟,並由該聯盟負責這種工具的後續開發。集成開發環境(IDE)經常將其應用范圍限定在「開發、構建和調試」的周期之中。為了幫助集成開發環境(IDE)克服目前的局限性,業界廠商合作創建了Eclipse平台。Eclipse允許在同一IDE中集成來自不同供應商的工具,並實現了工具之間的互操作性,從而顯著改變了項目工作流程,使開發者可以專注在實際的嵌入式目標上。Eclipse框架的這種靈活性來源於其擴展點。它們是在XML中定義的已知介面,並充當插件的耦合點。擴展點的范圍包括從用在常規表述過濾器中的簡單字元串,到一個Java類的描述。任何Eclipse插件定義的擴展點都能夠被其它插件使用,反之,任何Eclipse插件也可以遵從其它插件定義的擴展點。除了解由擴展點定義的介面外,插件不知道它們通過擴展點提供的服務將如何被使用。利用Eclipse,我們可以將高級設計(也許是採用UML)與低級開發工具(如應用調試器等)結合在一起。如果這些互相補充的獨立工具採用Eclipse擴展點彼此連接,那麼當我們用調試器逐一檢查應用時,UML對話框可以突出顯示我們正在關注的器件。事實上,由於Eclipse並不了解開發語言,所以無論Java語言調試器、C/C++調試器還是匯編調試器都是有效的,並可以在相同的框架內同時瞄準不同的進程或節點。Eclipse的最大特點是它能接受由Java開發者自己編寫的開放源代碼插件,這類似於微軟公司的VisualStudio和Sun微系統公司的NetBeans平台。Eclipse為工具開發商提供了更好的靈活性,使他們能更好地控制自己的軟體技術。Eclipse聯盟已經宣布將在2004年中期發布其3.0版軟體。這是一款非常受歡迎的java開發工具,這國內的用戶越來越多,實際上實用它java開發人員是最多的。缺點就是較復雜,對初學者來說,理解起來比較困難。
13、Ant
AnotherNeatTool(Ant)是一種基於Java的build工具。理論上來說,它有些類似於(Unix)C中的make,但沒有make的缺陷。因為Ant的原作者在多種(硬體)平台上開發軟體時,無法忍受這些工具的限制和不便。類似於make的工具本質上是基於shell(語言)的:他們計算依賴關系,然後執行命令(這些命令與你在命令行敲的命令沒太大區別)。這就意味著你可以很容易地通過使用OS特有的或編寫新的(命令)程序擴展該工具;然而,這也意味著你將自己限制在了特定的OS,或特定的OS類型上,如Unix。Ant就不同了。與基於shell命令的擴展模式不同,Ant用Java的類來擴展。(用戶)不必編寫shell命令,配置文件是基於XML的,通過調用target樹,就可執行各種task。每個task由實現了一個實現了特定Task介面的對象來運行。Ant支持一些可選task,一個可選task一般需要額外的庫才能工作。可選task與Ant的內置task分開,單獨打包。這個可選包可以從你下載Ant的同一個地方下載。ANT本身就是這樣一個流程腳本引擎,用於自動化調用程序完成項目的編譯,打包,測試等。除了基於JAVA是平台無關的外,腳本的格式是基於XML的,比make腳本來說還要好維護一些。Ant是Apache提供給Java開發人員的構建工具,它可以在WindowsOS和UnixOS下運行,它不僅開放源碼並且還是一個非常好用的工具。Ant是ApacheJakarta中一個很好用的Java開發工具,Ant配置文件採用XML文檔編寫,所以Java程序員對其語法相當熟悉,Ant是專用於Java項目平台,能夠用純Java來開發,它能夠運行於Java安裝的平台,即體現了它的跨平台功能。它的缺點顯示執行結果只能是DOS字元界面,不能進行復雜的java程序開發。
14、IntelliJ
IntellijIDEA是一款綜合的Java編程環境,被許多開發人員和行業專家譽為市場上最好的IDE。它提供了一系列最實用的的工具組合:智能編碼輔助和自動控制,支持J2EE,Ant,JUnit和CVS集成,非平行的編碼檢查和創新的GUI設計器。IDEA把Java開發人員從一些耗時的常規工作中解放出來,顯著地提高了開發效率。具有運行更快速,生成更好的代碼;持續的重新設計和日常編碼變得更加簡易,與其它工具的完美集成;很高的性價比等特點。在4.0版本中支持Generics,BEAWebLogic集成,改良的CVS集成以及GUI設計器。
IntelliJIDEA能盡可能地促進程序員的編程速度。它包括了很多輔助的功能,並且與Java結合得相當好。不同的工具窗口圍繞在主編程窗口周圍,當滑鼠點到時即可打開,無用時也可輕松關閉,使用戶得到了最大化的有效屏幕范圍。以技術為導向的IDEA集成了調試器,支持本地和遠程的調試,即使我們需要修改一些設置上的東西使我們的工作順利進展。另外,它還提供了通常的監視,分步調試以及手動設置斷點功能,在這種斷點模式下,我們可以自動地在斷點之外設置現場訪問,甚至可以瀏覽不同的變數的值。IDE支持多重的JVM設置,幾個編譯程序和Ant建造系統,並且,它使得設置多重的自定義的類途徑變得簡單。IntelliJIdea是一個相對較新的JavaIDE。它是Java開發環境中最為有用的一個。高度優化的IntelleJIdea使普通任務變得相當容易,Idea支持很多整合功能,更重要的使它們設計的好容易使用。Idea支持XML中的代碼實現,Idea同時還會校正XML,Idea支持JSP的結構。作用於普通Java代碼的眾多功能同樣適用於JSP(比如整合功能),同時支持JSP調試;支持EJB,盡管它不包括對個別應用伺服器的特殊支持。Idea支持Ant建立工具,不僅是運行目標它還支持編譯與運行程序前後運行目標,另外也支持綁定鍵盤快捷鍵。在編輯一個Ant建立XML文件時,Idea還對組成Ant工程的XML部分提供支持。IntelliJIDEA被稱為是最好的JAVAIDE開發平台,這套軟體就是以其聰明的即時分析和方便的refactoring功能深獲大家所喜愛。缺點是較復雜,對初學者來說,理解起來比較困難。
小結
現在常用的Java項目開發環境有:JBuilder、VisualAgeforJava、ForteforJava,VisualCafe、Eclipse、NetBeansIDE、JCreator+J2SDK、jdk+記事本、EditPlus+J2SDK等等。一般開發J2EE項目時都需要安裝各公司的應用伺服器(中間件)和相應的開發工具,在使用這些開發工具之前,我們最好能熟知這些軟體的優點和缺點,以便根據實際情況選擇應用。編程工具只是工具,為了方便人們工作而開發的,各有特點,因此,選工具主要的依據自己將要從事的領域是什麼,而不是盲目的認為那種工具好,那種工具不好。最後希望大家都能找到自己合適的java開發工具
F. 關於如何學好java!
Java學習前的一些准備
JDK - (Java SE Development Kit)
- 下載地址 : Java SE - Downloads
IDE - (Integrated Development Environmen)
- eclipse下載地址 : https://www.eclipse.org/downloads/ MyEclipse下載地址 : MyEclipse官方中文網 IntelliJ IDEA : IntelliJ IDEA: The Java IDE for Professional Developers by JetBrains
書籍推薦
Java簡介
了解什麼是Java;代碼語法基本格式;輸出表達式。
了解Java大致的編譯以及執行過程
Java語言基礎、循環、數組 ; 了解類和對象
掌握Java的基本數據類型和引用數據類型有哪些;
掌握強制數據類型轉換和自動類型提升規則;
常量如何聲明及賦值;
循環的語法及作用;
數組的聲明及定義;
掌握類的概念以及什麼是對象。
OOP封裝、繼承、多態
面向對象的三大特徵,本節內容非常重要也相對來說較為難以理解,一定要耐下心來好好理解。
java.util.*包下的常用類
util包下的Collection、Comparator、Iterator、List、Map、Set介面都很重要,著重看一下他們的實現類,如:ArrayList、LinkedList、HashSet、HashMap、Hashtable、TreeMap、TreeSet等。
java.lang.*包下的常用類
lang包下的基本數據類型對應的包裝類(Byte、Short、Integer、Long、Double、Float、Character、Boolean);
字元串相關的類String、StringBuffer、StringBuilder。
IO流操作,多線程及Socket
掌握IO讀寫流相關的類,了解位元組流,字元流和字元流緩沖區;
掌握線程的概念,多線程的創建、啟動方式,鎖和同步的概念及運用;
掌握Socket通信的概念,如何聲明客戶端服務端,如何完成雙端數據通信。
泛型、資料庫基礎(Mysql)及JDBC
到了資料庫前,我們可以看看泛型以及反射的一些基礎案例
掌握資料庫的基本概念,Mysql的安裝、啟動與停止
Mysql資料庫客戶端的安裝與使用
JDBC的概念,在Java中使用Mysql驅動包連接Mysql
- Mysql社區版下載 : Download MySQL Community Server 客戶端連接工具 Navicat for Mysql下載 : MySQL Database Administration and Development Tool
HTML基本標簽、表格、表單和框架;
掌握網頁的基本構成;
掌握HTML的基本語法;
表格的作用以及合並行、合並列;
表單標簽的使用,提交方式get/post的區別;
框架布局的使用
CSS樣式表;
掌握CSS的語法及作用,在html中的聲明方式;
掌握CSS布局的函數使用;
掌握CSS外部樣式的引入。
JavaScript;
掌握JS的語法及作用,在HTML中的聲明方式;
掌握JS的運行方式;
掌握JS中的變數聲明、函數聲明、參數傳遞等;
掌握HTML中的標簽事件使用;
掌握JS中的DOM原型
- 上述三節都可以查看w3school : HTML 系列教程
jQuery
了解如何使用jQuery,下載最新版或者老版本的jQuery.js
掌握選擇器、文檔處理、屬性、事件等語法及使用;
能夠靈活使用選擇器查找到想要查找的元素並操作他們的屬性;
動態聲明事件;
動態創建元素。
- jQuery文檔 : jQuery API 中文文檔 | jQuery API 中文在線手冊 | jquery api 下載 | jquery api chm
BootStrap;
掌握BootStrap的設計理念,以及使用方式。這是我們需要接觸的第一個前端框架,使用起來也很簡單;
掌握BootStrap的柵格系統、表單、全局樣式、分頁工具欄、模態框等。
Servlet
掌握Java中的Web項目目錄結構;
掌握Java Web項目的重要中間件Tomcat;
掌握Servlet中的Request和Response;
掌握Servlet的基本運行過程。
掌握Servlet的聲明周期
動態網頁技術
JSP在Java Web中的角色;
JSP的編碼規范,以及JSPServlet;
JSP顯示亂碼的解決辦法等。
JSP數據交互
JSP中如何編寫Java代碼,如何使用Java中的類;
JSP中的參數傳遞。
狀態管理Session和Cookie
掌握Session的作用及作用域;
掌握Cookie的作用及作用域;
掌握Session及Cookie的區別,存儲位置,聲明周期等;
掌握Session及Cookie分別在JSP和Cookie中的使用
JSTL和EL表達式
使用EL表達式輸出page、request、session、application作用域中的值
使用JSTL來做邏輯判斷或循環控制
JNDI資料庫連接池
JNDI的作用以及如何使用JNDI連接資料庫
分頁和文件上傳
掌握在JSP中如何使數據達到分頁的目的;
掌握在JSP表單中如何上傳文件,Servlet如何處理上傳請求(Commons-Fileupload、Commons-IO)。
Ajax
掌握Ajax的基本概念;
掌握jQuery中的Ajax請求;
掌握JSON
Filter、Listener;
掌握Filter和Listener
掌握Session過濾器和編碼過濾器
Mybatis的應用
Mybatis的Mapping與實體映射;
Mybatis中的SQL語句寫法;
Mybatis的緩存。
Spring應用
Spring容器的作用;
Spring的AOP和IOC;
Spring託管Mybatis事務;
SpringMVC的應用
SpringMVC中的控制器註解、請求註解、參數註解、響應註解等;
SpringMVC中的靜態資源處理;
SpringMVC的容器。
Spring+SpringMVC+Mybatis整合
SSM的整合使用;
Spring容器和SpringMVC容器
Redis+Mysql的查詢優化設計
Redis的安裝與連接;
Redis常用命令及各命令使用場景;
Redis存儲機制;
Redis的持久化機制。
任務處理相關
HttpClient模擬請求
Quartz定時任務
常用工具
Excel&World導入導出
簡訊&郵件發送
Maven
Maven的作用
Maven項目的創建
Maven的生命周期
Maven中央倉庫及私服
Log4J2日誌
FastDFS的使用
什麼是分布式文件系統;
分布式文件系統解決的問題是什麼;
FastDFS的使用
SpringBoot 2.0的應用
了解SpringBoot的起源及優勢
了解SpringBoot項目的格式以及創建方式
yaml語法特性
application配置文件及靜態資源處理
Thymeleaf模板引擎
SpringBoot核心之WebMVCConfigurer
Spring自定義錯誤處理
SpringBoot日誌引用及切換
SpringBoot數據源和Mybatis
SpringBoot-redis應用
Struts2應用(了解即可)
通過學習Struts,了解什麼是MVC;
掌握Struts是如何完成界面控制的;
掌握Struts的參數接收及傳遞;
掌握Struts的攔截器;
掌握Struts的OGNL和標簽使用。
Hibernate應用(了解即可)
Hibernate在項目中的作用及優勢;
Hibernate中的hbm與實體類之間的關系;
什麼是HQL,什麼是關系映射(一對一,多對一,多對多);
了解Hibernate的事務、懶載入和緩存。
Redis哨兵模式的搭建
Linux操作系統
Linux中的常用命令;
Linux下的JDK、tomcat安裝;
Linux下的項目部署方式。
Nginx的使用
Nginx的作用;
反向代理和正向代理分別是什麼;
Nginx實現tomcat代理。
Mysql集群方案
Mysql集群的常用方案有哪些;
Mycat中間件的概念
Mycat的使用准則;
了解資料庫的主從復制;
了解資料庫的主備切換;
為什麼需要主從和主備。
Solr入門
什麼是全文檢索;
Solr做搜索的優勢是什麼;
Lucene、ElasticSearch、Solr之間的關系;
Solr的安裝與使用。
JVM
回顧所有所學習到的知識,聯系所有框架中的自定義容器、上下文來理解變數及對象的存儲
理解垃圾回收是怎麼一回事
理解集中回收演算法
完全理解整個堆棧模型
JDK是Java開發所需要的環境,就跟我們想玩某個網游一樣,玩之前一定是需要先安裝相應的程序包的。 那這個JDK就是我們准備登陸Java大陸前需要安裝的一個程序包。
IDE是集成開發環境,一般集成開發環境都會帶有JDK,可以使用自帶的JDK也可以使用我們下載的JDK,不同的IDE配置不同。Java常用的IDE有Eclipse、MyEclipse、IntelliJ IDEA。IDE具備代碼分析、補全、變異、調試等常用功能,可以大大的提高開發人員的編程效率。
《Head First Java(中文版)(第2版)(涵蓋Java5.0)》 塞若, 貝茨【摘要 書評 試讀】圖書www.amazon.cn
階段大致細節
1、入門基礎
通過第一階段的學習掌握Java語法和常用類,資料庫入門技術相關知識。讓自己對於存儲,IO,這些有個大概的了解。這時候,暫時不需要花大量的精力以及篇幅去學習多線程和Socket,當然這里不是說他們不重要,而是對於現階段的你,或許很難非常清晰的明白以及了解他們具體的作用。這里第一節忽略掉了Swing,Swing章節的內容可以不學,因為在實際的工作中基本上沒有用武之地。
使用第一階段的技術完成一個小型的系統,找一個自己做容易理解的系統練練手,比如超市管理系統、成績管理系統等等這類需求簡單卻能講整章內容結合起來使用的項目。當然這個時候可能會有人覺得沒有圖形界面沒法完成系統操作。實際上我們可以通過Console的輸入輸出來做系統界面。
新手在第一階段的學習時,是最難熬的,因為這個時候需要背的東西特別多,且不再像看小說一樣,什麼東西都能看明白。路就變成了前面熟悉,左右陌生。這個時候人的求知慾作祟,往往會把自己帶著偏移了方向,因為我們自己也不知道這樣走對不對。漸而遠之,也就慢慢放棄了。而這樣的放棄,是最不值得的。所以,學習Java一定要按照某一個大綱,一直往下不要往其他地方偏,先走完一遍之後,再回頭慢慢撿。
2、前端基礎
通過第二階段了解前端相關的技術,如果你喜歡前端各種酷炫的效果,那麼就深入學習JS、CSS。不大感興趣的話,就淺嘗輒止,並重點學習Servlet、Filter、Listener。重點學習,重點學習,重點學習。 重要的話說三遍!
學習完第二階段的內容之後,就可以進行B/S版本的系統開發了。這個時候我們可以挑選個稍微復雜點兒的項目來練練手,能找到商業項目練手的那是最好不過的,沒有的話,就寫寫學生管理系統,檔案管理系統,人事管理系統之類的練練手吧。
最後說一下本階段的前端知識,如果將jQuery和Bootstrap學的差不多了的話,再看EasyUI這之類的前端框架也基本上都是照著API用就行了。別害怕看API,看API將是你以為的整個職場生涯必不可少的一個技能。
3、 主流技術應用
通過第三階段了解目前Java領域比較經典的三大框架,了解他們的大概功能,並加以使用。通過使用SSM開發一個簡易CRM之類的項目來加強了解,理清楚框架的大致原理。搞清楚這三個框架之間的作用域以及角色。理解Redis作為內存資料庫與MySQL這類關系型資料庫的區別,並能使用常用的Jar包完成模擬請求,定時任務等相關系統常用功能的開發。並能夠通過Maven創建SSM項目,整合Log4j或其他的日誌包。了解FastDFS的作用,並理解圖片上傳至文件伺服器和上傳到tomcat之間的區別
在第三階段的內容學習完了之後,就應該對整個系統研發有個大概的印象,實際上這個時候,獨立完成一個系統之後,再回過頭來仔細思考下Servlet+JDBC+JSP與SSM實現項目的相同點及區別。這樣會讓你更加的有收獲。並能夠理解非關系型資料庫Redis的性能優勢以及使用場景。
4、模擬實際項目開發
通過第四個階段了解更簡單易用的SpringBoot,微服務應用和存儲集群相關的概念及實現方案。讓自己具備一個設計高可用,可擴展的項目框架視野。這樣對於後面繼續專研SpringCloud / Dubbo、zookeeper這些RPC相關的框架有很大的好處。
第四階段的內容更加偏向於互聯網技術棧,通過這一節的內容能夠脫離出基本的增刪改查,了解出了增刪查改之後,需要了解的集群、系統性能優化、外部緩存伺服器使用、集群負載等概念。這些思維對於後面的提高以及學習會很有好處。
我提到的這些東西都能搜到對應的資料,無非多踩點坑罷了。但是,看文檔or項目永遠進步不了。一定要上手敲,想再多也不如動手。有機會聯系一名優秀學長,有個走在前面的人給你指路肯定比你自己走要快得多。
最後,一定要動手,一定要動手,一定要動手。把代碼敲爛,你才會有收獲,不要被視頻誘導,敲一遍之後誤認為你自己會了,如果第二天你起來時已經忘了昨天學習了什麼的話,那說明你還是沒學會。好好加油吧。
在所有的學習過程中,每一個節點都應該有相應的練習或者項目來進行練手,看再多的博文和視頻都是不行的, 不能讓自己的雙手停下來,只有不停的敲打鍵盤,寫出自己的項目,然後在實際的開發中學會如何使用debug,總結所有遇到的bug及解決思路,這樣才叫做學習技術。所以,希望有興趣的同學,能夠好好努力,不要因為一點點難度就懈怠、放棄。開發這條路途,無論你工作多久,都會遇到各種奇奇怪怪的問題,以及形形色色的bug等著你去解決。
G. 如何快速系統的學習java
Java - 近10年來計算機軟體發展過程中的傳奇,其在眾多開發者心中的地位就如「屠龍刀」、「倚天劍」。
Java是個平台,我只想說說我對學好Java的一點看法,希望對初學者有所幫助。
1. 思考一下
學習Java之前,先別急,靜下心來好好想想:
1)你對學習Java是否有興趣?
2)你是否能靜下心來堅持不懈地學習?
嗯,這是個容易但又絕對不應該忽略的問題,你確信自己對Java感興趣、而且又有吃苦的准備,那你才可能學好Java!如果具備這兩點條件,就請繼續往下看……
2. 准備一下
請不要把你的學習Java之路和其它計算機技術分開看待,技術的聯系往往是千絲萬縷的,你應該掌握一些學習Java所涉及的基礎知識,對於 「CLASSPATH要怎麼設置啊」、「跪求JDK下載地址」等等問題,你不該問,因為Internet上太多答案了,甚至換個角度說,你是不是還不適合直接學習編程?
1)買本Java學慣用書。
JDK 6正式版剛剛推出,市面上你暫時買不到JDK 6的書籍,但我仍推薦你買一本適合入門的、較新JDK版本的Java書籍,那麼,你現在選擇一本講述JDK 5的入門書籍還是有條件的。我可以推薦一些入門書,但是我不打算這么做,因為合我口味的,不一定適合你。但無論如何,《Thing In Java》絕對不應該作為你入門Java的第一本書籍!
記住,網路上學習Java的資源很多,但基本不夠系統,擁有一本Java入門書籍,是你系統學習Java的基礎。
2)准備Java學習環境。
准備你的學習環境,很簡單,安裝JDK 6,然後用類似UltraEdit、EditPlus的文本編輯器配置你的學習環境,Internet上有很多關於如何配置的文章。初學Java,不建議用IDE工具,通過一行行的敲代碼,你會碰到很多問題,只有這樣,你才能學會怎樣解決問題,並加深自己對Java的理解。
准備好後,開始進入激動人心的Java學習里程吧!
3. Java基礎學習之路
學習Java的過程雖然辛苦些,但又是處處有精彩!學習過程中的心態一定要保持專一,網上關於語言間的「PK」到處都是,別被浮躁影響!認准了Java,你就堅持!克服心魔,恆心最終會給你回報的。
Java的體系分為Java SE、Java EE和Java ME(JDK 5.0以前分別叫J2SE、J2EE和J2ME),Java的敲門磚就是Java SE了,也就是你要入門學習的內容,不論你日後是選擇哪個體系領域作為發展方向,你都得從Java SE起步。
學習Java SE,打好Java基礎;如果想學Java EE(對不起,我不了解Java ME,所以我無法涉及Java ME的相關內容),對於AWT、Swing是否要學習呢,我個人是覺得還是要知道其所以然的,特別是其事件處理模式,我強烈建議初學者一定要弄清楚,其他具體的開發就不一定要全面掌握了,畢竟AWT、Swing方面的內容足夠用幾本大部頭的書才能描述詳盡;當然,如果你的工作就是做 AWT、Swing開發,那就另當別論了。
I/O、Thread都是基礎之一。
4. Java EE學習之路
學習了Java SE,還只是完成「萬里長征」的第一步。
接下來選擇學習Java EE或是Java ME(或者你還想不斷深入學習Java SE,只要你喜歡,你可以一直深入下去,就像前面所說的,我不會講到Java ME的學習);估計選擇Java EE方面的學習者會多一些,Java EE所涉及技術非常多,考慮到初學者的接受程度,我會盡量從最常用的角度來介紹。
學習Java EE,在開發環境上不建議再用文本編輯器,我感覺NetBeans 5.5(目前最高正式版本)很適合初學者,我個人也很喜歡NetBeans,如果你喜歡用別的IDE如Eclipse,都沒問題,看自己喜歡吧。
4.1 學習JSP/Servlet
Java EE最高版本目前是5.0版本。
在Java EE中,首先要學習JSP/Servlet(結合Tomcat、MySQL)技術,建議JSP1.2/2.X的知識都要掌握,畢竟現在很多的在用系統都還是基於JSP1.2,學習JSP,還必須掌握一些外延技術,如:你還得掌握HTML基礎知識,最好再掌握些JavaScript(目前正火的AJAX技術之一)、CSS的技術,而了解XML是必不可少的(至少描述性配置信息是通過XML來描述的)。在學習JSP/Servlet過程中,應該結合學習 JDBC、資料庫開發技術,畢竟絕大多數Java Web項目都是和資料庫緊密結合的。
4.2 學習資料庫開發技術
這里我想重點說一下資料庫開發技術,資料庫技術是做業務系統必備技能,Java Web開發人員最低程度都應該掌握SQL語句的使用!資料庫技術大體可分為DBA技術和資料庫開發技術,對於開發而言,應側重資料庫開發技術,而資料庫基本操作,也是要掌握的。常用資料庫有DB2、Oracle、SQL Server、MySQL等,你可以結合實際需要,選擇一種資料庫,並花大力氣掌握其開發技術。
記住,學習資料庫開發技術和學習Java EE,是相對獨立的,你可以在學習JSP/Servlet的同時,學習資料庫開發技術(如SQL語句等),或者先學資料庫開發技術,之後再學習JSP/Servlet。
4.3 學習Java EE其它開發技術
再往後,可以學習一些EJB的知識,目前EJB最新版本是3.0,其和前面的2.X版本相比,有較大不同,考慮到目前EJB 2.X還有很大的應用市場,建議結合學習EJB 2.X/3.0。在學習EJB過程中,應同時掌握一種企業級應用伺服器的使用(如 WebSphere、Weblogic、Sun Applcation Server或JBOSS等,目前Sun Applcation Server 9.X和JBOSS都可支持EJB 3.0)。
之後的學習中,再逐漸擴展到其他Java EE技術。
5. 之後
等你對Java EE有些感悟的時候,你自然就會想不斷擴展你的知識面,這時候你可以學習Spring、Hibernate,以及各種Web框架(如Struts、JSF、Webwork或是Tapestry等)。
隨著技術、經驗的不斷積累,你會逐步關注分析、設計等更高層次的知識,這時候,你可進一步學習相關的UML、模式等知識(積累了一定經驗,你就可以安排自己學習這些知識了)。
6. 小結
永遠記住:自始至終,實踐是學習Java技術歷程中極其重要的一環。脫離了實踐,是學不好技術的!
Java學習、實踐之路依然沒有銀彈,況且一步步走來,要學的東西很多,勤奮是金!
善於利用Internet上眾多的資源,多吸取些別人的經驗。
目前關於Java的爭論很多,如「Java正走下坡路」、「Ruby必將取代Java」等論點甚囂塵上,但正如我前面所言,這是一種浮躁的表現,Java的前景非常好,特別是Java開源以後!就讓他們去吵去吧,掌握了Java,你就掌握了當前最火的技術。
「梅花香自苦寒來」,當你掌握了扎實的Java開發基礎,你就能把手中的這把「屠龍刀」、「倚天劍」舞得風聲水起!那時,你一定會有一種成就感。
以上,你大概了解應當如何學習Java了么?
H. java培訓結束後總結如何寫
I. 學習java的心得
Java前景是很不錯的,像Java這樣的專業還是一線城市比較好,師資力量跟得上、就業的薪資也是可觀的,學習Java可以按照路線圖的順序,
0基礎學習Java是沒有問題的,關鍵是找到靠譜的Java培訓機構,你可以深度了解機構的口碑情況,問問周圍知道這家機構的人,除了口碑再了解機構的以下幾方面:
1. 師資力量雄厚
要想有1+1>2的實際效果,很關鍵的一點是師資隊伍,你接下來無論是找個工作還是工作中出任哪些的人物角色,都越來越愛你本身的技術專業java技術性,也許的技術專業java技術性則絕大多數來自你的技術專業java教師,一個好的java培訓機構必須具備雄厚的師資力量。
2. 就業保障完善
實現1+1>2效果的關鍵在於能夠為你提供良好的發展平台,即能夠為你提供良好的就業保障,讓學員能夠學到實在實在的知識,並向java學員提供一對一的就業指導,確保學員找到自己的心理工作。
3. 學費性價比高
一個好的Java培訓機構肯定能給你帶來1+1>2的效果,如果你在一個由專業的Java教師領導並由Java培訓機構自己提供的平台上工作,你將獲得比以往更多的投資。
希望你早日學有所成。
J. 學習java有什麼好的學習方式
1.注重項目實戰案例的學習。小夥伴想要學好java開發技術,在學習基礎知識的同時,還需要結合相關的項目實戰案例的練習去學習相關的技術知識,由於java語言是面向對象的編程技術語言,所以小夥伴需要理解培養自己的抽象概念,正因為如此也有人把學習java的過程稱作為學習「抽象」的過程。項目實戰練習的作用是一方面鍛煉動手能力,另一方面是通過項目實戰練習鍛煉解決問題的能力。
2.勤於總結。學習java開發語言一定要重視java開發思想的建立,所謂的java開發思想就是解決問題的思路和實施的方法。要想達到學習的編程思路的目的一定要在項目案例練習的過程中不斷的進行總結,然後將總結來的經驗思路來用於程序編寫,通過反復多次的練習與總結會慢慢建立起自己的編程思想,然後隨著編程經驗的不斷增加逐步豐富編程思想。比如java的面向對象編程步驟有三步,分別是類的設計、對象的創建和方法的調用,掌握了這個規律就能夠指導自己的編程,這就是形成編程思想的過程。
3.多交流。學習編程語言一定要多交流,多與有經驗的程序員交流能夠獲得大量的實踐經驗,如果在學習的初期能有人指導一下則會節省大量的時間,所以一定要積極拓展交流渠道,通常來說,實習是個不錯的方式。