java是熱門的語言之一,TIOBE編程語排名Java排名第二,僅在C語言之後。Java可以用來開發web應用和桌面應用,更重要的是Java具有跨平台性:writeonce,runeverywhere。
Java相對其他語言來說,更容易學習。如果你想成為一名Java程序員,根據個人經驗,認為你至少應該對下面的這些內容非常熟練,才能在Java開發上游刃有餘。
Java基礎部分:
OOP概念
抽象類與介面
構造函數與initializationorder(初始化順序)
Java中的一些關鍵字:static、final、volatile、synchronized、transient、this等等
FileI/O和知做友序列化
Collections:List、Map、Set
異常
泛型
JVM和內存管理
多線程和同步
設計模式
反射機制
若開發基於Web的應用,下面這些內容應該熟練掌握:
Web相關技術,比如HTML、CSS、Javascript、jQuery
JSP/Servlets
Web框架,比如SSH三大框架、myBatis
XML和JSON
Web伺服器,比如Tomcat
Web應用伺服器,WebLogic、WebSphere
一些基本庫,比如Javamail、log4j等
Java程序員都應該掌握的資料庫技術:
SQL查詢胡備語句:InnerOuterJoins、Groupby、Having
存儲過程
觸發器
游標
資料庫驅動(JDBC)
一些工具和思想方法:
開發工具:比如Eclipse、MyEclipse、IntelliJIDEA
版本管搭槐理工具,比如SVN、Git
測試:單元測試、jUnit
需求分析
版本管理
2. JAVA包含哪三個版本,每個版本有什麼功能,各個版本的應用領域
JAVA的三個版本及其功能應用領域介紹如下:
1、JavaSE(Java Standard Edition)
也稱為J2SE,標准版本。用於伺服器、桌面、嵌入式環境和實時環境中使用的 Java 應用程序。Java SE 包含了支持 Java Web 服務開發的類,並為 Java Platform,Enterprise Edition(Java EE)提供基礎。
2、JavaEE(Java Enterprise Editon)
也稱為J2EE,是企業版本幫助開發和部署可移植、健壯、可伸縮且安全的伺服器端Java 應用程序。Java EE 是在 Java SE 的基礎上構建的,它提供Web服務、組件模型、管理和通信 API,可以用來實現企業級的面向服務體系結構(service-oriented architecture,SOA)和 Web 2.0 應用程序。
3、JavaME(Java Micro edition)
也稱為J2ME,是網路這一塊的,Java ME 為在移動設備和嵌入式設備(比如手機、PDA、電視機頂盒和列印機)上運行的應用程序提供一個健壯且靈活的環境。
Java ME 包括靈活的用戶界面、健壯的安全模型、許多內置的網路協議以及對可以動態下載的連網和離線應用程序的豐富支持。基於 Java ME 規范的應用程序只需編寫一次,就可以用於許多設備,而且可以利用每個設備的本機功能。
(2)java版本管理擴展閱讀
Java本來就是為了嵌入式系統而生,1990年12月,Sun公司內部 由James Gosling、Patrick Naughton以及Mike Sheridan成立了一個叫做Green Team的小組。
Green Team小組的主要目標,是要發展一種新架構,而這種架構必須能夠在消費性電子產品作業平台上運行,現在我們普遍認識的PDA、手機或是信息家電 (IA),都是屬於這種架構的目標平台。雖然在1999年,Java被分割成J2ME、J2SE、J2EE,所以有了J2ME這個名詞的出現。
但是 Java並非1999年才開始發展嵌入式系統上的應用。其實,Java本來就是為了嵌入式系統而發展的一種架構。即使目前大家多半將Java的應用聚焦於 企業上的J2EE應用。但是嚴格來說,J2ME才是Java真正「回歸本心」的領域。
J2EE組件和「標準的」 Java類 的不同點在於:它被裝配在一個J2EE應用中,具有固定的格式並遵守J2EE規范,由J2EE伺服器對其進行管理。
J2EE規范是這樣定義J2EE組件 的:客戶端應用程序和applet是運行在客戶端的組件;Java Servlet和Java Server Pages (JSP) 是運行在伺服器端的Web組件;Enterprise Java Bean (EJB )組件是運行在伺服器端的業務組件。
3. 現在企業開發時,Java所用到的主流框架有哪些
做了十多年的Java開發,和大家介紹一下我最近一兩年用的比較多的Java框架(包括軟體、中間件)。
Spring:從剛開始工作的時候就在用;是一個J2EE框架,提供了對IOC的良好支持,也提供了對AOP技術非常好的封裝;
SpringMVC:也是Spring的一個子項目,實現了MVC設計模式,目標是解耦;
MyBatis、Hibernate:兩個都是ORM框架,現在Hibernate用的少了;也有用到SpringDataJPA,這個可以看做是更高級的封裝,可以通過方法的命名,實現SQL語句;
可以看到,上面就是SSM框架,現在還是比較流行的。
Maven:新老項目都是基於Maven構建,它是一個項目管理工具,主要功能有:項目構建;Jar包的依賴管理;版本管理;持續集成等等等等;
JUint:單元測試工具;也是老朋友了;測試框架還有不少,比如SpringTest,JMock等等。
Shiro、SpringSecurity:關於安全認證的框架,用於用戶身份認證,許可權授權、加密、會話管理等;
CxforAxis:老項目WebService用的比較多一些;歷史問題,還是要了解一下;
Quartz:定時服務框架,一般都是單機應用;
Elastic-job:分布式定時服務框架,當當出品;
log4j、logback:各種日誌工具;現在會有一些日誌採集分析的框架,比如ELK;
Ehcache:緩存框架,也都是用於單機項目;
Redis:說道緩存,現在更多的使用Memcached、Redis;當然Redis也不局限於緩存;
SpringBoot:用於搞定其他框架的一個框架,主要是提供了各種啟動器、簡化了各種配置、方便和其他框架集脊滲成、開發者能夠快速上手。
Dubbo:一個微服務框架,阿里出品;
SpringCloud:另外一套微服務框架,這個就多了,例如:Config(配置管理中心)、NetflixEureka(服務注冊、服務發現)、Hystrix(斷路器,這個官方好像已經不建議使用了,又悶冊有新的了)、Feign(聲明式服務調用組件)、Ribbon(客戶端負載均衡)、Zuul(網關)、Bus(消息匯流排)等等。
DubboorSpringCloud:這個看公司的技術棧,用到哪個學哪個,都沒有用到,建議學SpringCloud。
RestfulAPI、RPC:不同風格的服務;
Swagger:RestfulAPI自動生成工具;
消息隊列:常用RabbitMQ和Kafka,一種保存消息的容器,也用於系統間解耦;
MongoDB:BSON(類似JSON)格式的內存資料庫;
Zookeeper:一個分布式協調服務;
Nginx:或其他負載均衡軟體;
Docker:容器技術。
我將持續分享Java開發、架構設計、螞野宏程序員職業發展等方面的見解,希望能得到你的關注。