- 相關(guān)推薦
Java知識(shí)點(diǎn)歸納
J2EE規(guī)范是這樣定義J2EE組件的:客戶(hù)端應(yīng)用程序和applet是運(yùn)行在客戶(hù)端的組件;Java Servlet和Java Server Pages (JSP) 是運(yùn)行在服務(wù)器端的Web組件;Enterprise Java Bean (EJB )組件是運(yùn)行在服務(wù)器端的業(yè)務(wù)組件。下面是關(guān)于Java知識(shí)點(diǎn)歸納,希望大家認(rèn)真閱讀!
Web部分:
脫離開(kāi)各種語(yǔ)言,純粹和 web相關(guān)的就是這些: HTML,CSS,JavaScript。哪怕你不用Java開(kāi)發(fā),用C#、PHP或者Python,這些內(nèi)容都是通用,這里主要偏重一些基礎(chǔ)知識(shí)。
HTTP協(xié)議,HTTPS協(xié)議
我覺(jué)得做Web開(kāi)發(fā),HTTP是基礎(chǔ)中的基礎(chǔ)。在一開(kāi)始的時(shí)候,開(kāi)發(fā)者可能對(duì)于這個(gè)內(nèi)容了解不是非常深入,只是有個(gè)初步的概念,這個(gè)沒(méi)有問(wèn)題,可以先從了解,簡(jiǎn)單使用開(kāi)始。 不過(guò)一旦有了一些web開(kāi)發(fā)經(jīng)驗(yàn)之后,你就需要把這塊內(nèi)容深入理解吃透。只知道簡(jiǎn)單概念,沒(méi)有深入了解,可能并不會(huì)影響你開(kāi)始上手做web開(kāi)發(fā),但是一旦涉及到一些性能調(diào)優(yōu)、系統(tǒng)架構(gòu)等工作,就需要你對(duì)HTTP有一個(gè)深入的了解,才能把工作做好。
對(duì)于HTTP請(qǐng)求, 我主要會(huì)關(guān)注以下內(nèi)容:
HTTP請(qǐng)求的模式: request/response
HTTP請(qǐng)求的方法:GET, POST, PUT,DELETE 等等
協(xié)議的具體格式: head + body
協(xié)議的各類(lèi)返回碼:1XX,2XX,3XX,4XX,5XX
Header中一些主要屬性的含義和使用場(chǎng)景
HTTPS協(xié)議
Cookie的基本原理和使用場(chǎng)景
HTML, CSS
這是WEB開(kāi)發(fā)的一個(gè)基礎(chǔ),如果公司有專(zhuān)門(mén)的前端開(kāi)發(fā)人員,可能你就不需要做這塊相關(guān)的內(nèi)容?赡苤恍枰獪(zhǔn)備一些服務(wù),可以提供一些數(shù)據(jù)就行。不過(guò)要是公司沒(méi)有專(zhuān)門(mén)的前端人員,那就需要你自己寫(xiě)簡(jiǎn)單的頁(yè)面和簡(jiǎn)單的布局了。這種情況下,還是對(duì)HTML和CSS必須有個(gè)簡(jiǎn)單的了解才行。
HTML簡(jiǎn)單了解的話(huà)需要知道頁(yè)面的結(jié)構(gòu),具體各個(gè)表單,標(biāo)簽的使用方法,CSS需要知道一些基本的選擇器的編寫(xiě)和使用。但這也只能滿(mǎn)足一些簡(jiǎn)單頁(yè)面的要求。如果有更加復(fù)雜頁(yè)面的開(kāi)發(fā)需求,那對(duì)CSS+DIV的使用需要有更加深入的了解了,具體內(nèi)容因?yàn)樽约簩?duì)這方面涉及不多,也不多說(shuō)了,大家可以再找其他的參考資料。
JavaScript:
前端開(kāi)發(fā)的語(yǔ)言,唯一的語(yǔ)言,就是JS。并且從中衍生出一個(gè)很優(yōu)秀的框架jQuery,F(xiàn)在前端基本上只要有一點(diǎn)復(fù)雜度的,都會(huì)使用這兩種技術(shù)。并且以jquery為基礎(chǔ),還有一些其他前臺(tái)框架,提供了各種動(dòng)態(tài)效果,還有表格,表單等一些常用的處理。近兩年,AngularJS框架又開(kāi)始火熱起來(lái),這個(gè)框架在前端實(shí)現(xiàn)了MVC的架構(gòu),給前端的開(kāi)發(fā)帶來(lái)了革命性的影響(但是不意味著所有的前端開(kāi)發(fā)都應(yīng)該要用這個(gè))。這些都是很值得好好看一下。即便不是專(zhuān)攻前端開(kāi)發(fā)的,但是對(duì)于這幾個(gè)技術(shù)點(diǎn),能夠先了解一下基本情況,基本的原理,對(duì)于web開(kāi)發(fā)來(lái)說(shuō),還是大有好處的。
因?yàn)樽约簩?duì)這個(gè)涉獵也不深入,所以也就不更多羅列了,以免誤人子弟了。
Webservice
在現(xiàn)在的企業(yè)應(yīng)用開(kāi)發(fā)中,Webservice已經(jīng)是個(gè)必備的工具了。在各個(gè)企業(yè)中,經(jīng)過(guò)一段時(shí)間積累,會(huì)有很多不同種類(lèi)的應(yīng)用,這些應(yīng)用可能都會(huì)使用不同的語(yǔ)言開(kāi)發(fā),并且需要相互之間的通訊。通訊的首選就是Webservice。前后臺(tái)的交互,服務(wù)之間的交互,或者不同語(yǔ)言之間的交互,都可以使用Webservice這個(gè)技術(shù)。
Webservice的實(shí)現(xiàn)方式多種多樣,兩者共同點(diǎn)是大家都是以HTTP協(xié)議為基礎(chǔ)的,都可以跨域,跨語(yǔ)言進(jìn)行訪(fǎng)問(wèn)。
用的比較多的,一個(gè)是SOAP協(xié)議的方式。這是比較傳統(tǒng)的webservice 的實(shí)現(xiàn),這個(gè)協(xié)議比較重量級(jí),發(fā)布者會(huì)將webservice以wsdl形式發(fā)布,調(diào)用者通過(guò)wsdl可以直接生成實(shí)體類(lèi)等。對(duì)于調(diào)用者來(lái)說(shuō),“調(diào)用”這個(gè)步驟會(huì)更容易處理一些。不過(guò)SOAP形式也存在著消息量大,傳輸效率低等缺陷。SOAP協(xié)議本身的可選項(xiàng)比較多,比較復(fù)雜,各個(gè)屬性設(shè)置略有差異會(huì)導(dǎo)致服務(wù)通訊的失敗,需要在調(diào)試中需要花費(fèi)更多的時(shí)間。
現(xiàn)在更加流行的是使用RESTFUL的Webservice。這種技術(shù)是簡(jiǎn)化了URL,或者說(shuō)對(duì)URL做了一定格式的限定,同時(shí)配合上HTTP的各種method,包括有GET,POST,DELTE,PUT 等,來(lái)實(shí)現(xiàn)整體service的各種功能。一般傳輸?shù)膬?nèi)容都是json格式的字符串。Restful的Webservice的優(yōu)點(diǎn)在于這是一種更加輕量級(jí)的使用方式,傳輸效率更高,接口約定更加清晰,雙方調(diào)試也會(huì)更加便利一些。缺點(diǎn)在于,json格式太靈活,所以雙方都需要自行處理json中的各個(gè)參數(shù)。對(duì)于接口實(shí)體類(lèi)的處理需要更多的邏輯和代碼。
J2EE部分
JDBC(可以在J2SE中使用)
JDBC用于java和數(shù)據(jù)庫(kù)交互。它是Java面向接口編程的一個(gè)典型實(shí)例:開(kāi)發(fā)者使用JDBC的API進(jìn)行開(kāi)發(fā),但是底層可以針對(duì)不同的數(shù)據(jù)庫(kù)使用不同的JDBC驅(qū)動(dòng)(由各個(gè)數(shù)據(jù)庫(kù)供應(yīng)商提供)。JDBC被歸為了J2EE的規(guī)范中,但是在一般的java程序中也可以使用,而且也是幾乎都會(huì)被直接或者間接使用(除非不用數(shù)據(jù)庫(kù))。這從側(cè)面也說(shuō)明了,其實(shí)J2EE企業(yè)開(kāi)發(fā)和web開(kāi)發(fā)并不是同一個(gè)概念,而是相互融合的。
JDBC是Java中最原始,最純粹,效率最高的訪(fǎng)問(wèn)數(shù)據(jù)庫(kù)的方式,我們熟知的hibernate、 Mybatis等ORM框架都是在JDBC基礎(chǔ)上做的封裝。了解JDBC對(duì)于以后和數(shù)據(jù)庫(kù)更好打交道會(huì)有著很大的用處。哪怕是一個(gè)java開(kāi)發(fā)新手,你需要去學(xué)習(xí)Hibernate、Mybatis等框架,你也需要先學(xué)習(xí)JDBC作為這些的基礎(chǔ)。
對(duì)于JDBC的具體怎么實(shí)現(xiàn),這個(gè)真不需要了解到那么深入。我推薦大家學(xué)習(xí)JDBC至少需要掌握以下內(nèi)容:
JDBC的原理: JDBC為接口,可以有不同的驅(qū)動(dòng)driver類(lèi)
JDBC中的一些基本概念: connection, statement, resultset 等
JDBC使用的基本流程
注冊(cè)driver
創(chuàng)建 connection
創(chuàng)建 statement
執(zhí)行獲取 Resultset
處理返回結(jié)果 resultst
Statement 和 PrepareStatement 的區(qū)別, 掌握PrepareStatement的主要用法(推薦使用)
線(xiàn)程池的概念和基本用法
JMS(可以在J2SE中使用)
JMS(Java Message Service)是我們俗稱(chēng)的MQ服務(wù),有很多可用的產(chǎn)品,如 ActiveMQ, ZeroMQ, RabbitMQ等等;驹矶际且粯樱涸谟辛薓Q服務(wù)器之后,向某個(gè)Topic,或者Queue中發(fā)送消息,或者從中接收消息。
這塊知識(shí),需要了解一些基本的MQ的使用方法,包括MQ服務(wù)器的連接,收發(fā)MQ消息等。需要注意的是,這里收發(fā)消息是一種異步的方式,MQ是一種很基本的把同步請(qǐng)求異步化的手段。
Servlet
這個(gè)是Java Web開(kāi)發(fā)的核心概念,我們熟悉的web server其實(shí)都是Servlet的容器。那Servlet是個(gè)什么呢?我的理解,servlet就是一個(gè)Java類(lèi),用來(lái)處理HTTP請(qǐng)求,并且返回HTTP響應(yīng)的程序。這個(gè)程序運(yùn)行在servlet容器中,或者說(shuō)嵌入在servelt容器中運(yùn)行。容器中可以定義多個(gè)servlet匹配不同的url,容器啟動(dòng)后接收到了HTTP請(qǐng)求,容器會(huì)根據(jù)定義好的URL的規(guī)則分配給相應(yīng)的servlet程序進(jìn)行處理。
Java中的web開(kāi)發(fā)都是圍繞servlet這個(gè)概念來(lái)進(jìn)行的,web.xml定義了URL的處理分配規(guī)則,我們使用的Struts,SpringMVC框架也有專(zhuān)門(mén)的Servlet類(lèi)來(lái)進(jìn)行請(qǐng)求的轉(zhuǎn)發(fā)和處理。所以學(xué)習(xí)Java web開(kāi)發(fā)一定要理解好servlet這個(gè)概念。
JSP
以前的Java web開(kāi)發(fā),基本都是以JSP為主,需要在JSP中編寫(xiě)html代碼和Java代碼。 近來(lái)一些更先進(jìn)的展示層框架,在逐步替代JSP,比如 Freemarker、Velocity等。更有一些前后端分離的框架直接就是使用HTML中的JavaScript以Ajax方式和后臺(tái)交互,這樣后臺(tái)不再需要提供展示層,而是給前臺(tái)展示層提供數(shù)據(jù)。
不過(guò)JSP作為最原始的Java web開(kāi)發(fā)工具,在制作簡(jiǎn)單頁(yè)面的時(shí)候,還是非常容易上手的,建議還是可以學(xué)習(xí)一下JSP基本的使用方法,在制作簡(jiǎn)單頁(yè)面時(shí)使用,一旦有更加復(fù)雜的頁(yè)面需要開(kāi)發(fā)時(shí),再考慮使用其他展示層的框架進(jìn)行替代。
Webserver 的使用
在Java web開(kāi)發(fā)中另一個(gè)繞不開(kāi)的內(nèi)容是Webserver的使用,比如最流行的tomcat, 企業(yè)級(jí)環(huán)境中經(jīng)常使用的 weblogic、webspare、JBoss等等,真的有很多。
作為一個(gè)web應(yīng)該開(kāi)發(fā)人員,應(yīng)該需要熟練掌握一些web server 的知識(shí)。這對(duì)于你在提高應(yīng)用性能,本地調(diào)試web應(yīng)用方面都很有好處。
你可以更多熟悉一下tomcat,因?yàn)橐话汩_(kāi)發(fā)者本地都會(huì)使用它作為web容器,哪怕生產(chǎn)正式環(huán)境中是其他的?梢粤私庖幌聇omcat中體系結(jié)構(gòu)如何,結(jié)構(gòu)目錄和配置文件的詳細(xì)解讀,如何在IDE中結(jié)合tomcat進(jìn)行開(kāi)發(fā)調(diào)試等等。再深入些可以查看一下tomcat的源代碼,了解一下一般webserver是如何實(shí)現(xiàn)的,如何控制線(xiàn)程數(shù),這對(duì)你在其他方面的設(shè)計(jì)開(kāi)發(fā)也很有借鑒作用。除了tomcat之外,你還可以就你們生產(chǎn)環(huán)境中使用的web server再做個(gè)具體的了解,以便更好地開(kāi)發(fā)適合的web應(yīng)用。
【Java知識(shí)點(diǎn)歸納】相關(guān)文章:
Java基礎(chǔ)知識(shí)點(diǎn)歸納03-05
Java中級(jí)開(kāi)發(fā)工程師知識(shí)點(diǎn)歸納02-27
小升初語(yǔ)文知識(shí)點(diǎn)歸納02-18
物態(tài)變化知識(shí)點(diǎn)歸納03-09
java必備基礎(chǔ)知識(shí)點(diǎn)03-07
幾何歸納小升初數(shù)學(xué)知識(shí)點(diǎn)02-14