
Java就是用來做專案的!Java的主要應用領域就是企業級的專案開發!要想從事企業級的專案開發,你必須掌握如下要點:
1、掌握專案開發的基本步驟
2、具備極強的面向物件的分析與設計技巧
3、掌握用例驅動、以架構為核心的主流開發方法
沒有人愿意自己一輩子就滿足于掌握了一些代碼實作的技巧,別人告訴你要實作什么,你就用代碼堆砌來實作別人的要求!你必須學會從整個專案的角度去思考!你必須學會假如你是專案經理,你該如何思考!你必須學會假如你是架構師,你該如何思考!你必須掌握針對某個特定問題領域的分析方法!
關于基礎tb知識:你可以看看這些名詞或知識點,看是否能說出個一二三四來。
JavaSE
----基本語法、資料型別、運算子等:int、long、Integer、Long、if、else、for、while
----面向物件:class(類)、Object(物件)、instance(實體)、state(狀態)、behavior(行為)、field、method、new、可見性(訪問控制)、attribute、property、package、import、static variable、class variable、instance variable、heap、method area、stack、GC(垃圾回收)、override、overload、物件轉型(casting)、多型、this、super
----例外處理:理解編譯期錯誤和運行期錯誤的區別、Exception、RuntimeException、checked exception、unchecked exception、try、catch、finally、throw new XXXException、throws XXXException、例外處理的基本原則
----陣列與集合:陣列的定義和使用方法、Collection、List、Set、Map、ArrayList、HashSet、HashMap、Iterator、equals、hashCode、Comparable、Comparator
----常用類:String、intern、常量池、StringBuffer、java.util.Date、SimpleDateFormat、Regex(正則運算式)
----反射機制:Class、Method、Field、invoke、newInstance、BeanUtils(apache-commons)、PropertyUtils(apache-commons)
----輸入輸出流:InputStream、OutputStream、Reader、Writer、Adapter設計模式與原始流類、Decorator設計模式與包裝流類、物件序列化和反序列化
----多執行緒:Thread、Runnable、sleep、wait、notify、synchronized、lock
Servlet和JSP
----HttpServlet、doGet、doPost、HttpServletRequest、HttpServletResponse、request.getParameter、request.setAttribute、request.getAttribute、request.getSession、ServletContext、Filter、web.xml、tomcat、forward與redirect、http協議的無狀態性、cookie、JSP Scope Object、、
HTML與JavaScript
----你需要能夠理解常見的網頁標簽、理解在網頁中引入JavaScript的方法、以及JavaScript的基本語法與使用方法
以上,就是你進一步學習Java所必備的基本知識。特別是一些個專業術語和名詞,看到這些名詞,如果你像看到親爹一樣親切,那么說明你對Java的基礎知識就很熟悉了。
接下來是SSH:
對于初學者來說,這三大框架被賦予了太多神秘的色彩,似乎它們是重中之重的知識!但是對于擁有多年Java開發經驗的專業技術人員來說,對于那些Java牛人來說,卻對這三大框架不太感冒!難道它們不重要嗎?
現在很多企業都在用這三大框架,所以很多企業也把掌握這三大框架作為招聘的必備條件。不可否認的是,也有很多大型企業沒有用這三大框架,這些企業經過多年發展,自身已經有一定的技識訓累,也形成了自己獨特的技術框架體系。這三大框架既可以說很重要,也可以說不重要。
說重要的原因在于:這三大框架對JavaEE開發中所存在的普遍的問題,提供了優美的解決方案,它們蘊含了這個行業中最NB的開發人員的努力和想法,所以,學習這三大框架,你就可以窺探到這些處于技術巔峰的牛人們究竟對一個問題是怎么想的,通過一種什么樣的設計思路去解決問題的。所以,對于你來說,你沒有太多專案開發的經驗,經驗是什么?經驗就是你知道可能會遇到哪些問題,針對哪個問題可以有哪些解決方法,在某個情景下,哪種解決方法是較好的,哪種方法不太好等等!如果你沒做過什么專案,你根本就不會去意識到你可能會遇到哪些問題,而這些問題往往又是非常關鍵的!解決得不好,會影響到你的程式的穩定性、可擴展性等等!三大框架就給初學者提供了了解你以后可能會遇到哪些問題,以及針對這些問題的解決方案!
當你了解了這三大框架為什么是重要的,那么你也就能理解,為什么這三大框架也可以說是不重要的。如果你曾經開發過很多專案,你碰到了各種各樣的問題,憑著你的技術功底,逐個擊破了這些問題,在這些人眼里,三大框架(是不是還有N個框架?呵呵)都是浮云!
你屬于哪一種人呢?如果你沒有太多專案開發經驗,那么三大框架對于你來說就是非常重要的!而且,由此你也知道了該怎么去學這三大框架。對于三大框架的學習而言,著力點在于給你展示問題,并觸發你自己主動的思考,我們鼓勵你提出自己的想法,也許你的想法很白癡,但那畢竟是你自己的想法,如果你不知道牛人的想法,那你怎么知道自己的想法是很白癡的呢?在這種思想的碰撞程序中,你就會逐漸提高自己!所以,三大框架學完之后,你不應該只是看到一大堆組態檔,你不應該只是看到了一些Action,一些Service,一些映射檔案,你不應該只知道session.save/update/delete,你不應該只是知道struts2中有一堆interceptor,你不應該只是看到一堆jar包……
如果你只是知道拷貝一堆jar包,定義一系列組態檔之后,SSH三大框架就能夠運行起來了,也可以給你干活了,那么,很悲哀的是,你仍然沒有掌握三大框架的精粹!請你回答以下問題:
Struts2:
為什么每次請求都要創建一個Action物件?
ModelDriven攔截器的配置中refreshModelBeforeResult解決了什么問題?
為什么在web.xml中配置的StrutsPrepareAndExecuteFilter要過濾所有的請求?
請你給我談談ValueStack?
Struts2是如何實作MVC設計模式的?
Spring:
你為什么要用Spring?
請你聊一聊IOC/DI?
什么是宣告式的事務管理?為什么要使用宣告式的事務管理?Spring如何實作宣告式的事務管理?
把spring和hibernate集成,定義事務管理特性的時候,為何要將除了添加、洗掉、更新操作之外的方法,即主要執行查詢任務的方法定義為read-only?
Hibernate:
請你談談你對OR映射的理解?
很多人說Hibernate不適合大專案,性能有問題,你是如何理解的?
Hibernate為什么一定要定義一個資料庫標識?
為什么Hibernate建議你的物體類實作hashCode和equals方法?
談談你對Hibernate物體類中的資料庫標識與資料庫主鍵之間關系的認識?
談談你對Hibernate關聯映射與資料庫外鍵之間關系的認識?
呼叫session.save方法,hibernate一定會發出insert陳述句嗎?談談你的理解
呼叫session.update方法,hibernate一定會發出update陳述句嗎?談談你的理解
請你聊一下以下名詞、概念或用法:lazy、lazy=”extra”、inverse、fetch、fetch=”join”、fetch=”subselect”、batch-size
配置了lazy=”true”一定會實作懶加載嗎?
請你談談Hibernate中的“N+1”問題
請你談談Hibernate有哪些最佳實踐?
以上并非SSH中全部重點的問題,但它們能考察你能否靈活運用SSH框架!如果你能深刻理解這些問題,再配以合適的實戰專案訓練,你也會逐漸成為牛人!
最后是專案開發能力:
不管你是學Java還是別的技術,你的根本目的在于給客戶創造價值!否則,你下大力氣學習的東西,隨著技術的進步和更新,很快就會過時!所以,技術的核心在于用技術創造有價值的成果!也就是說,客戶需要什么,你就要用技術把客戶需要的東西給他造出來!一個公司之所以要用各種福利條件極力挽留你,是因為你能夠給公司帶來極高的利益!那么,你有什么可以給公司利用的呢?公司最看重你的哪方面的能力呢?
做專案需要的能力很多,其中最核心最基礎的就是建模能力(現在最主流的就是面向物件建模!)。什么是建模能力呢?
我給大家一個面試題:
一個保險公司的保險卡管理模塊:銷售人員領取保險卡資訊(保險卡數量、卡號、領取日期),然后直接銷售給客戶,銷售完畢后,將保險卡資訊錄入保險公司系統內部(銷售人員資訊、購買人資訊、購買的保險卡數量、卡號等),客戶登錄保險公司網站激活保險卡,需要填寫(保險卡卡號、激活密碼、被保險人資訊、受益人資訊)
要求就是:如果這個模塊交給你來做,你要怎么做?你要解決哪些問題?你可否畫個圖,給我描述一下你的想法是什么嗎?
這只是一個面試題而已,因為只有簡單幾句話,所以我把它放到這里,讓大家感受一下所謂建模要解決什么問題。而業務領域的問題實在是太多了!也許一個幾十上百頁的需求檔案才能把某個業務領域的問題描述清楚,而你的職責就是要把它們實作出來!
某個公司要開發一個考勤管理系統,要求與現有的人力資源系統對接,你是主要的技術負責人,那么,你要做哪些作業呢?
某ERP專案要實作一個排班管理模塊,交給你去完成,你如何去完成呢?
不要抱怨專案經理給你的資訊太少(只有幾句話),不要抱怨客戶沒有描述清楚他們的需求……你的價值就在于理順所有的問題 tb ,用各種手段獲得你想要的資訊,按照一定的思路匯總,并在特定的時間里逐個解決它!
你應該意識到學Java不是一個坦克大戰、一個網路飛車、一個CMS、一個DRP、一個OA那么簡單,你不要沉迷于那些技術細節(雖然也是有必要的,但不要轉牛角尖),不要滿足于實作了CRUD式的專案需求(雖然這是基礎中的基礎),在你的前方,永遠有一個目標在那里,需要你去努力追趕!
今后你將面對更加繁雜的需求,你學習專案的唯一目的,就是:學習如何將需求轉化為實作,如何對需求進行分析,如何建立概念模型,如何理順各種概念之間的關系,如何進行設計,如何選擇合適的技術來實作你的設計方案,如何對你的實作進行測驗,如何解決你所遇到的形形色色的問題(性能、需求變更等)。當你真正到公司里面從事了幾年開發之后,你就會同意我的說法!
利用Java找作業,需要的就是專案經驗,專案經驗就是理解專案開發的基本程序,理解專案的分析方法,理解專案的設計思路,理解專案的實作技巧,理解專案的測驗方法,理解專案中各種問題的解決方案!!!
所以,你該清楚你的目標了!
uj5u.com熱心網友回復:
為什么這么好的帖子沒人回復呢uj5u.com熱心網友回復:
支持,友情幫頂~~~uj5u.com熱心網友回復:
前排~~~~uj5u.com熱心網友回復:
收藏~~感謝uj5u.com熱心網友回復:
插眼
uj5u.com熱心網友回復:
頂 說的非常好!! 應該收藏uj5u.com熱心網友回復:
老鐵,可以結帖了……uj5u.com熱心網友回復:
簡直了,面試寶典uj5u.com熱心網友回復:


uj5u.com熱心網友回復:

感謝
uj5u.com熱心網友回復:
感謝感謝 新手。uj5u.com熱心網友回復:
uj5u.com熱心網友回復:
很難想象這是一個T1、結貼率只有16%的人發表的uj5u.com熱心網友回復:
寫的很好,讓我找到了學習的方向uj5u.com熱心網友回復:
我覺得寫得很好uj5u.com熱心網友回復:
6666666uj5u.com熱心網友回復:
我覺得寫得很好
uj5u.com熱心網友回復:
寫的很好啊!贊一個uj5u.com熱心網友回復:
先頂為敬意。uj5u.com熱心網友回復:
寫得好。
uj5u.com熱心網友回復:
好
uj5u.com熱心網友回復:
都是干貨,有時間再來細讀
uj5u.com熱心網友回復:
醍醐灌頂啊uj5u.com熱心網友回復:
真是6的不行,雖然我是做asp.net Mvc的,但公司目前準備轉java,感覺要學的東西太多,不知道你們是怎么靜下心來學習的uj5u.com熱心網友回復:
能寫出這篇文章,也是厲害uj5u.com熱心網友回復:
樓主的分享真好uj5u.com熱心網友回復:
好
uj5u.com熱心網友回復:
支持一下,一直只知道埋頭寫代碼,現在也需要學習異界專案經理方向的事情了。uj5u.com熱心網友回復:
慚愧,一個問題都回答不了uj5u.com熱心網友回復:
除了基礎能回答一部分,其他的我都不行,我也是干了5年了,總覺得查什么!!好帖啊~醍醐灌頂啊!!!
uj5u.com熱心網友回復:
還有后來人。uj5u.com熱心網友回復:
uj5u.com熱心網友回復:
干貨,慢慢啃。。。。uj5u.com熱心網友回復:
uj5u.com熱心網友回復:
找到一些建議答案~~uj5u.com熱心網友回復:
http://blog.csdn.net/peng658890/article/details/7028788
uj5u.com熱心網友回復:
看看而已,需要來看看uj5u.com熱心網友回復:
收益了
uj5u.com熱心網友回復:
最近找作業,感覺好浮躁!uj5u.com熱心網友回復:
最近找作業,感覺好浮躁!uj5u.com熱心網友回復:
非常感謝 樓主所給出的問題 幫助很大uj5u.com熱心網友回復:
uj5u.com熱心網友回復:
uj5u.com熱心網友回復:
看來我就是那種三大框架會用
,但又不理解的菜雞。。。。。。。。
uj5u.com熱心網友回復:
說是這么說,可是還是會覺得有一些迷茫.uj5u.com熱心網友回復:
寫的很好,業內有句話這么說,如果到30歲你還在做一個程式員,那你就是一個失敗的程式員,一個程式員的目標就是不寫代碼,雖然每個人的理解都不一樣,但我覺得這個想法是沒有錯的,小細節需要注重,大方向更需要把握uj5u.com熱心網友回復:
看的人心驚膽戰的。。。。。uj5u.com熱心網友回復:
感覺到了大佬范兒,多謝指點uj5u.com熱心網友回復:
好文章,頂一個uj5u.com熱心網友回復:
uj5u.com熱心網友回復:
牛逼,小白還一直掌握不到學習方法,和思維.這文章給了很大的啟發,感謝樓主
uj5u.com熱心網友回復:
新人,很有啟發,頂uj5u.com熱心網友回復:
差不多
uj5u.com熱心網友回復:
不錯,分析的很透徹,對于即將從事相關作業的我大有裨益,點個贊!uj5u.com熱心網友回復:
絕對值得點贊!uj5u.com熱心網友回復:
扎心; 額,老鐵uj5u.com熱心網友回復:
寫得很好,最為小白的我,表示很贊
uj5u.com熱心網友回復:
學習了!!!!uj5u.com熱心網友回復:
感覺在技術的道路上,自己越走越偏,一段時間一心的作者專案設計和業務流程,一段時間又在小功能中間尋找突破,感覺大半年了自己還是沒有什么進步,濃濃的挫敗感啊!!!!uj5u.com熱心網友回復:
uj5u.com熱心網友回復:
挺好的
uj5u.com熱心網友回復:
沒有實作不了的技術,只有想不通的業務。
uj5u.com熱心網友回復:
真的寫的非常不錯 可以先碼一下 等到逐個擊破的時候就是飛升之時uj5u.com熱心網友回復:
感謝干貨,請接受我的敬意uj5u.com熱心網友回復:
哇偶,受教了,感謝。uj5u.com熱心網友回復:
好文章,寫的很深刻uj5u.com熱心網友回復:
很好的帖子。。感謝分享uj5u.com熱心網友回復:
好東西收藏下uj5u.com熱心網友回復:
我這個小白學習到了uj5u.com熱心網友回復:
總結的非常好,謝謝分享
uj5u.com熱心網友回復:
樓主的分享很好,是寶貴的財富,感謝分享!uj5u.com熱心網友回復:

uj5u.com熱心網友回復:
加油,共勉之uj5u.com熱心網友回復:
MARK學習了uj5u.com熱心網友回復:
好帖子,留言支持一下uj5u.com熱心網友回復:
public static void main(String[] args) {
String a="\\u0031\\u0030\\u0030\\u591a\\u4e2a\\u004a\\u0061\\u0076\\u0061\\u0057\\u0065\\u0062\\u9879\\u76ee\\u6e90\\u7801\\u002b\\u89c6\\u9891\\u0020\\u53ea\\u8981\\u0031\\u0030\\u5143\\u0020\\u6beb\\u65e0\\u4fdd\\u7559\\u7ed9\\u4f60\\u0020\\u0020\\u0053\\u0070\\u0072\\u0069\\u006e\\u0067\\u0020\\u0068\\u0069\\u0062\\u0065\\u0072\\u006e\\u0061\\u0074\\u0065\\u0020\\u006d\\u0079\\u0062\\u0061\\u0074\\u0069\\u0073\\u6846\\u67b6\\u0020\\u000d\\u000a\\u5e73\\u5747\\u4e00\\u4e2a\\u4e00\\u6bdb\\u94b1\\u4e0d\\u5230\\u000d\\u000a\\u5fae\\u4fe1\\uff1a\\u006a\\u0061\\u0076\\u0061\\u006a\\u0064\\u0062\\u0063\\u000d\\u000a\\u5b98\\u7f51\\uff1a\\u0077\\u0077\\u0077\\u002e\\u006a\\u0061\\u0076\\u0061\\u0030\\u0039\\u0030\\u0039\\u002e\\u0063\\u006f\\u006d\\uff08\\u5b98\\u7f51\\u53ef\\u4ee5\\u0032\\u0034\\u5c0f\\u65f6\\u81ea\\u52a8\\u53d1\\u8d27\\u0020\\u652f\\u4ed8\\u5b9d\\u63a5\\u53e3\\uff09";
System.out.println(decode(a));
}
public static String decode(String unicodeStr) {
if (unicodeStr == null) {
return null;
}
StringBuffer retBuf = new StringBuffer();
int maxLoop = unicodeStr.length();
for (int i = 0; i < maxLoop; i++) {
if (unicodeStr.charAt(i) == '\\') {
if ((i < maxLoop - 5)
&& ((unicodeStr.charAt(i + 1) == 'u') || (unicodeStr
.charAt(i + 1) == 'U')))
try {
retBuf.append((char) Integer.parseInt(
unicodeStr.substring(i + 2, i + 6), 16));
i += 5;
} catch (NumberFormatException localNumberFormatException) {
retBuf.append(unicodeStr.charAt(i));
}
else
retBuf.append(unicodeStr.charAt(i));
} else {
retBuf.append(unicodeStr.charAt(i));
}
}
return retBuf.toString();
}
uj5u.com熱心網友回復:
感謝樓主,已收藏,看了下來感覺挺有幫助的
uj5u.com熱心網友回復:
寫的很現實,頂
uj5u.com熱心網友回復:
uj5u.com熱心網友回復:
uj5u.com熱心網友回復:
回帖學習一下uj5u.com熱心網友回復:
寫得好,把現實轉化為專案流程,這確實是很重要的uj5u.com熱心網友回復:
頂一個!!慢慢學習了uj5u.com熱心網友回復:
支持
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/211261.html
標籤:Java相關
上一篇:Idea modules 之間依賴不上, 涉及到maven動態版本號導致的問題, 有大神知道怎么處理嗎?
下一篇:求助,使用jacob出現的問題
