1. 程式人生 > >Java程序員最常用的20%技術總結

Java程序員最常用的20%技術總結

分布式搜索 memcached mina rac cse axure 簡單 請求 cap

我聽說編程語言,經常使用的是其中20%的技術。在Java這門語言中,這20%包括哪些內容?想找到一份Java初級程序員的工作,有哪些是必須掌握的,有哪些是可以現學現賣的?一個完整的Javaweb項目,有哪些具體模塊,每個模 塊用到的技術是哪些?

常用api(String,StringBuffer/StringBuilder等)

1.集合類,線程類。

2.Servlet(很少用純粹的servlet寫,但你要懂,因為很多框架都是基於servlet封裝的)。

3.json,xml讀寫

4.數據庫訪問(CRUD,事務,連接池)

5.http請求(HttpClient)

6其他,包括常用框架,設計模式,面向對象

初級程序員會這些就可以寫項目了。後期遇到的問題就會復雜得多,要靠各種經驗和知識的積累。

除了要掌握的20%以外還要掌握些什麽知識才能遊刃有余。下面說說我接觸(使用)過、的東西吧。

1.java以分布式應用豐富的生態聞名,在分布式系統中逃不過CAP的抉擇。早早了解一些分布式一致性協議paxos、raft等。學習zookeeper的原理和使用場景(metadata、分布式鎖、leaderEletion… etc)

2.RPC框架在SOA架構中起著重要的作用,好好探究終是有好處的,在這裏推薦阿裏巴巴的dubbo框架,同時會netty、mina等網絡庫

3.Hadoop系列 Storm Spark 等離線\實時計算框架

4.ElasticSearch\SolrCloud 分布式搜索 ELK 日誌相關的東西對這些比較敏感,當然在更多的場景使用ES也是有很多的

5.消息隊列 kafka\MetaQ RabbitMQ 恩,ZeroMQ(不完全算作MQ)的作者選擇安樂死了,願天堂沒有痛苦

6.然後就是各種基礎知識,編程語言、網絡方面、數據庫、數據結構和算法。不要覺得任何一項都精通了,敢說精通的知乎能有幾個。

說說自己的感受吧,剛工作應該不會讓你獨立開始新項目,應該會讓你跟正在開發中的項目

1.學會使用eclipse,svn等IDE和工具(不用說了吧,主要是看你工作的地方,比如大家用eclipse你想用IntelliJ IDEA也可以,但是剛工作肯定很多不懂,這時候暫時還不要標新立異的好,出了問題好問。當然你是ide大神請無視)

  1. 剛入職還接觸不到核心工作,就讓我先改改頁面什麽的,作為web開發html、css、和javascript不用精通,至少需要了解用法和語法吧,雖然 有前端工程師,但是這個肯定也是要了解的(自己公司小項目組,各個都被逼成全棧了)。javascript其實還是很強大的,但是剛開始不用寫的很深,很 多輪子可以用,比如easyui,會查閱官方文檔,知道用法往網頁裏嵌,然後後臺按格式把數據傳到前臺就好。

  2. 然後開始逐步往後臺寫了,熟悉下設計模式,如果太多太難理解可以先理解工廠模式,寫一個接口再用一個或若幹個實現類實現這個接口,需要用的時候在根據需要 來確定用哪個實現類。(一開始不理解這麽做這麽繁瑣有什麽用,但是自從上次項目的數據庫從oracle換成mysql就知道這麽做其實大有用處)一般項目 開發都會用到設計模式,不了解可能會摸不清楚整個項目的架構,無從下手。

4.不同公司用的框架不一樣,但struts,spring還是用 的比較多的,所以這兩個東西還是比較熟悉的好,不然你可能連整個項目的架構都不清楚,不要說自己寫,連改都很難入手。比如項目的跳轉是怎麽配的,哪個配置 文件代表了什麽。(一開始我把項目本地跑起來以後我連主頁在哪是哪個文件怎麽進去的都不清楚T.T,一直在找index.jsp然後才知道項目用 freemarker做的,是一個ftl文件)

5.web項目要操作數據庫的工作是少不了的了,自己跟的項目沒用hibernate,主要用的是StringBuffer拼接sql,如果從事web開發,sql還是要比較熟的。

  1. 自己感覺做web項目設計高深算法的可能做的比較深才會遇到,更多的是對字符串和數值格式的操作,比如後臺從數據庫抽出來到前臺怎麽展示,用戶輸入的數據 怎麽怎麽存到數據庫裏,所以最好熟悉下字符串的操作,分割呀合並呀,String轉float、int什麽的,日期格式呀什麽的。

如果公司有專業運維,服務器部署什麽的交給他們就好了,如果沒有就最好還是了解下,遠程連接呀,linux的一些簡單的命令呀,tomcat呀什麽的

20%我不知道從哪方面去理解,接下來我會將自己多年來工作中會經常使用到的技術列出來。

1.html、css

2.java工作原理(jvm)

3.java語法、數據結構和算法

4.java語言特性(封裝、繼承、多態、抽象)

5.java設計模式(在開發中會經常用到)

6.java反射機制(常用框架都會用到反射機制)

7.io(文件讀寫)

8.多線程

9.網絡編程

10.javascript

11.jquery

12.數據庫(oracle、mysql等等)

13.servlet

14.JDBC

15.javabean

16.WEB項目分層架構

17.前後臺交互

18.ajax

19.過濾器及過濾器原理

20.常用框架(Struts、hibernate、spring、springMVC、i/mybatis)

21.框架整合

22.工作流(流程引擎工作機制)

23.xml、properties、json

24.常用頁面以及後臺插件(tree、時間、poi等等)

25.nosql數據庫以及應用場景(mongoDB)

26.緩存數據庫以及機制(redis、memcached)

27.第三方接口調用

28.SDK

29.web應用服務器(tomcat、weblogic)

30.linux

31.日誌

32.數據庫連接池

33.maven

34.svn

35.建模工具(powerdesiner、axure)使用

36.TCP/IP

Java程序員最常用的20%技術總結