java綜合知識點(diǎn)總結(jié)_第1頁
java綜合知識點(diǎn)總結(jié)_第2頁
java綜合知識點(diǎn)總結(jié)_第3頁
java綜合知識點(diǎn)總結(jié)_第4頁
java綜合知識點(diǎn)總結(jié)_第5頁
已閱讀5頁,還剩69頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

目錄

目錄1

基礎(chǔ)篇4

一、JDK常用的包4

二、Get和PoSt的區(qū)另IJ4

三、Java多態(tài)的具體體現(xiàn)4

四、StringBufferStringBuilderString區(qū)別5

五、Hashtable與HashMap的區(qū)別5

六、九大隱式對象5

七、ForWord(請求轉(zhuǎn)發(fā))與RedireCt(重定向)5

八、JQurey總結(jié)6

九、XML和JSon的特點(diǎn)6

十、request.getSession()reqeust.getSession(false)和request.getSession(true)7

H—、Page和PageContext的區(qū)另IJ7

十二、AjaX總結(jié)7

十三、JSP9大隱視對象中四個作用域的大小與作用范圍7

十四、List,Set,Collection,Collections8

十五、java的基本數(shù)據(jù)類型8

十六、冒泡排序8

十七、二分查找法9

十八、時間類型轉(zhuǎn)換9

十九、階乘10

二十、UE和UI的區(qū)別10

二H■■一、OSi七層模型10

二十二、線程和進(jìn)程的區(qū)別11

二十三、jvm的內(nèi)存結(jié)構(gòu)11

二十四、內(nèi)存泄露和內(nèi)存溢出11

二十五、單例11

二十六、解析XmI文件的幾種技術(shù)13

二十七、項(xiàng)目的生命周期14

二十八、OSCaChe的判斷14

二十九、經(jīng)常訪問的技術(shù)網(wǎng)站15

三十、項(xiàng)目團(tuán)隊(duì)中交流的工具15

三十一、平時瀏覽的書籍15

三十二、javaException體系結(jié)構(gòu)15

三十三、session和cookie的區(qū)另IJ16

三十四、字節(jié)流與字符流的區(qū)別16

三十五、final,finally,finalize三者區(qū)別17

三十六、I。流的層次結(jié)構(gòu)17

三十七、JAVA:18

三十八、JaVaSEJaVaEEJaVaME區(qū)別18

三十九、JDKJREJVM的區(qū)別:19

四十、報錯的狀態(tài)碼:2O

四十一、協(xié)議以及默認(rèn)的端口號2O

四十二、抽象類與接口的區(qū)別2O

四十三、修飾符的作用2O

框架篇21

一、Strutsl的運(yùn)行原理23

二、Struts2的運(yùn)行原理23

三、StrUtS2的體系結(jié)構(gòu)23

四、SpringMVC運(yùn)行原理24

五、StrutsLx與Struts2.x的區(qū)別25

六、SpringMVC?Strutsl和struts2區(qū)別25

七、Struts2中result中的type類型25

八、Struts2標(biāo)簽26

九、SSl整合26

十、SSH整合26

十、SPringMVC整合27

H—?、Hibernate中g(shù)et和load的區(qū)另IJ28

十二、Hibernate、Ibatis、JdbC三者的區(qū)別28

十三、Hibernate的運(yùn)彳亍原理28

十四、Hibemate五大核心(類/接口)簡述28

十五、Hibernate與JDBC的區(qū)別29

十六、Hibemate中的兩大配置文件29

H--1、Hibernate事務(wù)處理29

十八、Hibemate的三種狀態(tài)以及狀態(tài)的轉(zhuǎn)換29

十九、分頁步驟30

二十、hibernate緩存概述30

二H—、Ssh的概述:30

二十二、防止表單重復(fù)提交31

二十三、JSP標(biāo)簽:31

二十四、過濾器32

二十五、攔截器的理解32

二十六、SPring融入框架33

數(shù)據(jù)庫篇33

一、JDBC連接數(shù)據(jù)庫步驟(以MYSQL為例)33

二、數(shù)據(jù)庫連接池34

三、mysql的數(shù)據(jù)庫導(dǎo)入導(dǎo)出35

四、jdbc分段批量提交的時候出現(xiàn)異常怎么處理?35

五、jdbc批量處理數(shù)據(jù)35

六、Oracle分頁36

七、OraCle的基本數(shù)據(jù)類型36

八、id、rowid、rownum的區(qū)別37

九、主鍵和唯一索引的區(qū)別?37

2

十、Preparedstatement>f∏statement的區(qū)另IJ37

H■一、數(shù)據(jù)庫三范式38

十二、視圖概述38

十三、存儲過程概述38

十四、索引概述39

十五、必背的Sql語句41

業(yè)務(wù)場景篇44

一、Spring的概述44

二、事務(wù)概述45

三、權(quán)限概述46

四、C)SCaChe業(yè)務(wù)場景46

五、線程概述46

六、Ajax請求Session超時問題47

七:java線程池概述48

八、C)SCaChe概述49

九、OSCaChe+autocomplete+單例業(yè)務(wù)場景49

十、緩存概述50

十一、實(shí)現(xiàn)頁面靜態(tài)化業(yè)務(wù)場景50

十二、Sendet線程安全描述51

十三、GbPm4)工作流引擎描述:51

十四、JPBM業(yè)務(wù)場景52

十五、Ant描述52

十六、FreeMarker描述53

十七、WebSerViCe描述53

十八、OraCIe索弓I概述55

十九、OraCIe存儲過程56

二十、Junit業(yè)務(wù)場景56

二—?Apache+Tomcat實(shí)現(xiàn)負(fù)載均衡及SeeSiOn復(fù)制56

二十二、Ant業(yè)務(wù)場景57

二十三、maven業(yè)務(wù)場景57

二十四、SerVIet的概述:58

優(yōu)化篇64

一、代碼優(yōu)化64

二、業(yè)務(wù)優(yōu)化64

三、sql優(yōu)化65

四、防SqI注入68

3

基礎(chǔ)篇

一、JDK常用的包

java,lang:這個是系統(tǒng)的基礎(chǔ)類,比如String、Math>lnteger>SyStem和Thread,

提供常用功能。

java,io:這里面是所有輸入輸出有關(guān)的類,比如文件操作等

java,net:這里面是與網(wǎng)絡(luò)有關(guān)的類,比如URLURLConneCtion等。

java,utiI:這個是系統(tǒng)輔助類,特別是集合類ColIeCtion,List,Map等。

java,sql:這個是數(shù)據(jù)庫操作的類,Connection,Statememt,ReSUItSet等

二、Get和PoSt的區(qū)別

l.get是從服務(wù)器上獲取數(shù)據(jù),post是向服務(wù)器傳送數(shù)據(jù),

2.get傳送的數(shù)據(jù)量較小,不能大于2KB。PoSt傳送的數(shù)據(jù)量較大,一般被默認(rèn)為不

受限制。

3.get安全性非常低,POSt安全性較高。但是執(zhí)行效率卻比POSt方法好。

4.在進(jìn)行文件上傳時只能使用post而不能是get。

三、JaVa多態(tài)的具體體現(xiàn)

面向?qū)ο缶幊逃兴膫€特征:抽象,封裝,繼承,多態(tài)。

多態(tài)有四種體現(xiàn)形式:

1.接口和接口的繼承。

2.類和類的繼承。

3.重載?

4.重寫。

其中重載和重寫為核心。

重載:重載發(fā)生在同一個類中,在該類中如果存在多個同名方

法,但是方法的參數(shù)類型和個數(shù)不一樣,那么說明該方法被重

載了。

重寫:重寫發(fā)生在子類繼承父類的關(guān)系中,父類中的方法被子

類繼承,方法名,返回值類型,參數(shù)完全一樣,但是方法體不

一樣,那么說明父類中的該方法被子類重寫了。

4

四、StringBufferStringBuiIderString區(qū)別

String字符串常量不可變使用字符串拼接時是不同的2個空間

StringBuffer字符串變量可變線程安全字符串拼接直接在字符串后追加

StringBuiIder字符串變量可變非線程安全字符串拼接直接在字符串后追加

1.StringBuiIder執(zhí)行效率高于StringBuffer高于String.

2.String是一個常量,是不可變的,所以對于每一次+=賦值都會創(chuàng)建一個新的對象,

StringBuffer和StringBUilder都是可變的,當(dāng)進(jìn)行字符串拼接時采用append方

法,在原來的基礎(chǔ)上進(jìn)行追加,所以性能比String要高,又因?yàn)镾tringBuffer

是線程安全的而StringBUiIder是線程非安全的,所以StringBUilder的效率高于

StringBuffer.

3.對于大數(shù)據(jù)量的字符串的拼接,采用StringBuffer1StringBuiIder.

五、Hashtable與HashMap的區(qū)別

HashMap不是線程安全的,HashTabIe是線程安全。

HaShMaP允許空(null)的鍵和值(key),HaShTable則不允許。

HaShMaP性能優(yōu)于Hashtableo

Map

!.Map是一個以鍵值對存儲的接口。Map下有兩個具體的實(shí)現(xiàn),分別是HashMap和

HashTabIe.

2.HashMap是線程非安全的,HashTabIe是線程安全的,所以HashMap的效率高于

HashTabIe.

3.HashMap允許鍵或值為空,而HashTabIe不允許鍵或值為空.

六、九大隱式對象

輸入/輸出對象:requestresponseout

作用域通信對象:sessionapplicationpageContext

Servlet對象:pageconfig

錯誤對象:exception

七、FOrWOrd(請求轉(zhuǎn)發(fā))與RedireCt(重定向)

1、從數(shù)據(jù)共享上

Forword是一個請求的延續(xù),可以共享request的數(shù)據(jù)

5

Redirect開啟一個新的請求,不可以共享request的數(shù)據(jù)

2、從地址欄

Forword轉(zhuǎn)發(fā)地址欄不發(fā)生變化

Redirect轉(zhuǎn)發(fā)地址欄發(fā)生變化

八、JQUrey總結(jié)

jquery是一個輕量級的js框架,具有跨瀏覽器的特性,兼容性好,

并且封裝了很多工具,方便使用.

常用的有:選擇器,dom操作,ajax(ajax不能跨域),特效,工具類

九、XML和JSOn的特點(diǎn)

Xml特點(diǎn):

1、有且只有一個根節(jié)點(diǎn);

2、數(shù)據(jù)傳輸?shù)妮d體

3、所有的標(biāo)簽都需要自定義

4、是純文本文件

Json(JavaScriptObjectNotation)特點(diǎn):

json分為兩種格式:

json對象(就是在{}中存儲鍵值對,鍵和值之間用冒號分隔,

鍵值對之間用逗號分隔);

json數(shù)組僦是口中存儲多個json對象json對象之間用逗號分隔)

(兩者間可以進(jìn)行相互嵌套)數(shù)據(jù)傳輸?shù)妮d體之一

區(qū)別:

傳輸同樣格式的數(shù)據(jù),Xml需要使用更多的字符進(jìn)行描述,

流行的是基于json的數(shù)據(jù)傳輸。

xml的層次結(jié)構(gòu)比json更清晰。

共同點(diǎn):

xml和json都是數(shù)據(jù)傳輸?shù)妮d體,并且具有跨平臺跨語言的特性。

6

十、request.getSession()vreqeust.getSession(false)^fl

request.getSession(true)

getSession()∕getSession(true):當(dāng)session存在時返回該session,否則新建一個

session并返回該對象

getSession(false):當(dāng)session存在時返回該session,否則返回null

H-、Page和PageContext的區(qū)另IJ

Page是SerVIet對象:使用this關(guān)鍵字,它的作用范圍是在同一頁面。

PageContext是作用I域通信對象;通常使用SetAttribUte()和getAttribute()來設(shè)置和獲取

存放對象的值。

十二、Ajax總結(jié)

AJAX全稱:異步JaVaSCriPt及XML(AsynchronousJavaScriptAndXML)

Ajax的核心是JaVaSCriPt對象XmIHttpRequest(XHR)0

Ajax的優(yōu)點(diǎn):

提高用戶體驗(yàn)度(UE)

提高應(yīng)用程序的性能

進(jìn)行局部刷新

AJAX不是一種新的編程語言,而是一種用于創(chuàng)建更好更快以及交互性更強(qiáng)的Web應(yīng)用

程序的技術(shù)。

2.通過AJAX,我們的JavaScript可使用JaVaSCriPt的XMLHttpRequest對象來直接

與服務(wù)器進(jìn)行通信。通過這個對象,我們的JavaScript可在不重載頁面的情況與Web服

務(wù)器交換數(shù)據(jù),即可局部刷新。

3.AJAX在瀏覽器與Web服務(wù)器之間使用異步數(shù)據(jù)傳輸(HTTP請求),這樣就可使網(wǎng)

頁從服務(wù)器請求少量的信息,而不是整個頁面,減輕服務(wù)器的負(fù)擔(dān),提升站點(diǎn)的性能。

AJAX可使因特網(wǎng)應(yīng)用程序更小、更快,更友好,用戶體驗(yàn)(UE)好。

5.Ajax是基于標(biāo)準(zhǔn)化并被廣泛支持的技術(shù),并且不需要插件和下載小程序

十三、JSP9大隱視對象中四個作用域的大小與作用范圍

四個作用域從大至IJ?。篴ppliaction>session>request>page

application:全局作用范圍,整個應(yīng)用程序共享.生命周期為:應(yīng)用程序啟動到停止。

7

session:會話作用域,當(dāng)用戶首次訪問時,產(chǎn)生一個新的會話,以后服務(wù)器就可以記

住這個會話狀態(tài)。

request:請求作用域,就是客戶端的一次請求。

page:一個JSP頁面。

以上作用范圍使越來越小,request和page的生命周期都是短暫的,他們之間的區(qū)

別就是:一個request可以包含多個Page頁(include,forward)-

十四、ListjSetjCollectionjCoIIections

!.List和Set都是接口,他們都繼承于接口Collection,List是一個有序的可重復(fù)的集合,

而Set的無序的不可重復(fù)的集合。COlIeCtiOn是集合的頂層接口,ColIeCtionS是一個封裝

了眾多關(guān)于集合操作的靜態(tài)方法的工具類,因?yàn)闃?gòu)造方法是私有的,所以不能實(shí)例化。

2.List接口實(shí)現(xiàn)類有ArrayList1LinkedList1Vector=ArrayList和VeCtor是基于數(shù)組實(shí)現(xiàn)

的,所以查詢的時候速度快,而在進(jìn)行增加和刪除的時候速度較慢LinkedLiSt是基于鏈?zhǔn)酱?/p>

儲結(jié)構(gòu),所以在進(jìn)行查詢的時候速度較慢但在進(jìn)行增加和刪除的時候速度較快。又因?yàn)?/p>

VeCtor是線程安全的,所以他和ArrayLiSt相比而言,查詢效率要低。

十五、java的基本數(shù)據(jù)類型

數(shù)據(jù)類型大小

byte(字節(jié))1(8位)

Shot(短整型)2(16位)

int(整型)4(32位)

IOng(長整型)8(32位)

float(浮點(diǎn)型)4(32位)

double(雙精度)8(64位)

Char(字符型)2(16位)

boolean(布爾型)1位

附加:

String是基本數(shù)據(jù)類型嗎?(String不是基本數(shù)據(jù)類型)

String的長度是多少,有限制?(長度受內(nèi)存大小的影響)

十六、冒泡排序

publicclassSort{

publicstaticvoidsort(){

8

Scannerinput=newScanner(SystemJn);

intsort[]=newint[l0];

inttemp;

SyStem.out.PrintIn("請輸入10個排序的數(shù)據(jù):

for(inti=0;i<sort.length;i++){

sort[i]=input.nextlnt();

}

for(inti=0;i<sort.length-1;i++){

for(intj=0;j<sort.length-i-1;j++){

if(sort[j]<sort[j+1]){

temp=sort[j];

sort[j]=sort[j+1];

sort[j+1]=temp;

}

}

}

SyStem.out.Println("排列后的順序?yàn)?");

for(inti=0;i<sort.length;i++){

System.out.print(sort[i]+"");

}

}

publicstaticvoidmain(String[]args){

sort();

}

}

十七、二分查找法

十八、時間類型轉(zhuǎn)換

publicclassDateFormat{

publicstaticvoidfun(){

SimpIeDateFormatsdf=newSimpleDateFormat("yyyy年MM月dd曰");

StringnewDate;

try{

newDate=sdf.format(newSimpIeDateFormatCyyyyMMdd")

.parse("20121115"));

System.out.println(newDate);

}catch(ParseExceptione){

e.printStackTrace();

)

}

publicstaticvoidmain(Stringargs[]){

9

fun();

}

)

十九、階乘

publicclassMultiply{

publicstaticintmultiply(intnum){

if(num<O){

SyStem.out.println(”請輸入大于0的數(shù)!”);

return-1;

}elseif(num==011num==1){

return1;

}else{

returnmultiply(num-1)*num;

}

)

publicstaticvoidmain(String[]args){

System.out.println(multiply(l0));

二十、UE和Ul的區(qū)別

UE是用戶體驗(yàn)度

Ul界面原型(用戶界面)(相當(dāng)于買房時用的模型)

設(shè)計Ul的作用:

1、幫助程序員工作(界面已由美工設(shè)計完成)

2、提前讓用戶對項(xiàng)目有個宏觀的了解,知道效果是什么樣子。

二十一、OSi七層模型

第一層:物理層

第二層:數(shù)據(jù)鏈路層

第三層:網(wǎng)絡(luò)層

第四層:傳輸層

第五層:會話層

第六層:表示層

第七層:應(yīng)用層

10

二十二、線程和進(jìn)程的區(qū)別

1.線程(Thread)與進(jìn)程(Process)

進(jìn)程定義的是應(yīng)用程序與應(yīng)用程序之間的邊界,通常來說一個進(jìn)程就代表一個與之對應(yīng)的應(yīng)

用程序。不同的進(jìn)程之間不能共享代碼和數(shù)據(jù)空間,而同一進(jìn)程的不同線程可以共享代碼和

數(shù)據(jù)空間。

2.一個進(jìn)程可以包括若干個線程,同時創(chuàng)建多個線程來完成某項(xiàng)任務(wù),便是多線程。

3.實(shí)現(xiàn)線程的兩種方式:繼承Thread類,實(shí)現(xiàn)RUnabIe接口

二十三、jvm的內(nèi)存結(jié)構(gòu)

java虛擬機(jī)的內(nèi)存結(jié)構(gòu)分為堆(heap)和棧(StaCk),堆里面存放是對象實(shí)例也就是new

出來的對象。棧里面存放的是基本數(shù)據(jù)類型以及引用數(shù)據(jù)類型的地址。

對于所謂的常量是存儲在方法區(qū)的常量池里面。

二十四、內(nèi)存泄露和內(nèi)存溢出

內(nèi)存泄露(memOryIeak),是指應(yīng)用程序在申請內(nèi)存后,

無法釋放已經(jīng)申請的內(nèi)存空間.一次內(nèi)存泄露危害可以忽略,

但如果任其發(fā)展最終會導(dǎo)致內(nèi)存溢出(OUtofmemory).

如讀取文件后流要進(jìn)行及時的關(guān)閉以及對數(shù)據(jù)庫連接的釋放。

內(nèi)存溢出(outofmemory)是指應(yīng)用程序在申請內(nèi)存時,

沒有足夠的內(nèi)存空間供其使用。

如我們在項(xiàng)目中對于大批量數(shù)據(jù)的導(dǎo)入,采用分段批量提交的方式。

二十五、單例

單例就是該類只能返回一個實(shí)例。

單例所具備的特點(diǎn):

1.私有化的構(gòu)造函數(shù)

2.私有的靜態(tài)的全局變量

3.公有的靜態(tài)的方法

單例分為懶漢式、餓漢式和雙層鎖式

11

餓漢式:

publicclassSingletonl{

privateSingletonl(){};

privatestaticSingletonlsingle=newSingletonl();

publicstaticSingletonlgetlnstance(){

returnsingle;

}

}

懶漢式:

publicclassSingleton2{

privateSingleton2(){}

privatestaticSingleton2single=null;

publictaticSingleton2getlnstance(){

if(single==null){

single=newSingleton2();

}

returnsingle;

}

}

線程安全:

publicclassSingleton3{

privateSingleton3(){}

privatestaticSingleton3single;

publicstaticSingleton3getlnstance(){

if(null==single){

synchronized(single){

if(null==single){

single=newSingleton3();

}

)

}

returnsingle;

}

}

參考:

通過雙重判斷來保證單列設(shè)計模式在多線程中的安全性,

并且它在性能方面提高了很多。

12

synchronized在方法上加鎖(同步鎖)

synchronized在代碼塊內(nèi)部加鎖(同步代碼塊)

SynChroniZed(同步鎖)

使用SynChroniZed如何解決線程安全的問題?

1.synchronized在方法上加鎖

2.synchronized在代碼塊內(nèi)部加鎖

1.懶漢2.餓漢3.雙重判斷

二十六、解析Xml文件的幾種技術(shù)

1,解析Xml的幾種技術(shù)

1.dom4j

2.sax

3.jaxb

4.jdom

5.dom

1.dom4j

dom4j是一個Java的XMLAPL類似于jdom,用來讀寫XML文件的。dom4j

是一個非常優(yōu)秀的JaVaXMLAPI,具有性能優(yōu)異、功能強(qiáng)大和極端易用使用的特點(diǎn),同時

它也是一個開放源代碼的軟件。

2.sax

SAX(simpleAPIforXML)是一種XML解析的替代方法。相比于DOM,SAX

是一種速度更快,更有效的方法。它逐行掃描文檔,一邊掃描一邊解析。而且相比于DOM,

SAX可以在解析文檔的任意時刻停止解析,但任何事物都有其相反的一面,對于SAX來說

就是操作復(fù)雜。

13

3.jaxb

JAXB(JavaArchitectureforXMLBinding)是一個業(yè)界的標(biāo)準(zhǔn),是一項(xiàng)可以根

據(jù)XMLSchema產(chǎn)生JaVa類的技術(shù)。該過程中,JAXB也提供了將XML實(shí)例文檔反向生成

JaVa對象樹的方法,并能將JaVa對象樹的內(nèi)容重新寫到XML實(shí)例文檔。從另一方面來講,

JAXB提供了快速而簡便的方法將XML模式綁定到JaVa表示,從而使得JaVa開發(fā)者在JaVa

應(yīng)用程序中能方便地結(jié)合XML數(shù)據(jù)和處理函數(shù)。

2、dom4j與SaX之間的對比:【注:必須掌握!】

dom4j不適合大文件的解析,因?yàn)樗且幌伦訉⑽募虞d到內(nèi)存中,所以有可能出現(xiàn)

內(nèi)存溢出,

sax是基于事件來對xml進(jìn)行解析的,所以他可以解析大文件的xml

也正是因?yàn)槿绱?,所以dom4j可以對xml進(jìn)行靈活的增刪改查和導(dǎo)航,而SaX沒

有這么強(qiáng)的靈活性

所以sax經(jīng)常是用來解析大型xml文件,而要對xml文件進(jìn)行一些靈活(crud)操

作就用dom4j

二十七、項(xiàng)目的生命周期

1.需求分析

2.概要設(shè)計

3.詳細(xì)設(shè)計(用例圖,流程圖,類圖)

4.數(shù)據(jù)庫設(shè)計(PoWerdeSigner)

5.代碼開發(fā)(編寫)

6.單元測試(junit白盒測試)(開發(fā)人員)

SVn版本管理工具(提交,更新代碼,文檔)

7.集成測試(黑盒測試,Ioadrunner(編寫測試腳本)(高級測試))

8.上線試運(yùn)行(用戶自己體驗(yàn))

9.壓力測試(Ioadrunner)

10.正式上線

11.維護(hù)

二十八、OSCaChe的判斷

Objectobj=CacheManager.getlnstance().getObj("oaBrandList");

〃從緩存中取數(shù)據(jù)

if(null==obj){

obj=brandDao.getBrandList();

//如果為空再從數(shù)據(jù)庫獲取數(shù)據(jù)

〃獲取之后放入緩存中

14

CacheManager.getlnstance().PutObjCoaBrandList",obj);

}

return(List<OaBrand>)obj;

二十九、經(jīng)常訪問的技術(shù)網(wǎng)站

1.csdn(詳細(xì)步驟的描述)

2.iteye(詳細(xì)步驟的描述)

3.Oschina(開源中國獲取java開源方面的信息技術(shù))

4Java開源大全WWW.oPen-OP(獲取java開源方面的信息技術(shù))

5.infoq(對java,php,.net等這些語言的一些最新消息的報道)

三十、項(xiàng)目團(tuán)隊(duì)中交流的工具

飛秋(局域網(wǎng))qq(局域網(wǎng),外網(wǎng))

RTX(局域網(wǎng),外網(wǎng))郵箱(局域網(wǎng),外網(wǎng))

三十一、平時瀏覽的書籍

實(shí)戰(zhàn)經(jīng)驗(yàn):

***inaction(實(shí)戰(zhàn))

***深入淺出

***入門指南

思想基礎(chǔ):

大話設(shè)計模式重構(gòu)

三十二、javaException體系結(jié)構(gòu)

java異常是程序運(yùn)行過程中出現(xiàn)的錯誤。Java把異常當(dāng)作對象來處理,并定義一個基類

java.lang.Throwable作為所有異常的超類。在JaVaAPl中定義了許多異常類,分為兩大類,

錯誤Error和異常Exception。其中異常類Exception又分為運(yùn)行時異常

(RuntimeException)和非運(yùn)行時異常(非runtimeE×ception),也稱之為不檢查異常

(UncheckedException)和檢查異常(CheckedException)o

1>Error?Exception

Error是程序無法處理的錯誤,比如OUtofMemOryError、ThreadDeath等。

這些異常發(fā)生時,JaVa虛擬機(jī)(JVM)一般會選擇線程終止。

15

Exception是程序本身可以處理的異常,這種異常分兩大類運(yùn)行時異常和非運(yùn)行時異

常。程序中應(yīng)當(dāng)盡可能去處理這些異常。

2、運(yùn)行時異常和非運(yùn)行時異常

運(yùn)行時異常:都是RuntimeException類及其子類異常:

IndexoutofBoundsException索引越界異常

ArithmeticException:數(shù)學(xué)計算異常

NullPointerException:空指針異常

ArrayOutOfBoundsException:數(shù)組索引越界異常

ClassNotFoundException:類文件未找到異常

ClassCastException:造型異常(類型轉(zhuǎn)換異常)

這些異常是不檢查異常(UncheckedException),程序中可以選擇捕獲處理,也可以

不處理。這些異常一般是由程序邏輯錯誤引起的。

非運(yùn)行時異常:是RuntimeException以外的異常,類型上都屬于Exception類及其子

類。從程序語法角度講是必須進(jìn)行處理的異常,如果不處理,程序就不能編譯通過。如:

IOEXCePtion、文件讀寫異常

FileNotFoundException:文件未找到異常

EOFException:讀寫文件尾異常

MalformedLIRLException:URL格式錯誤異常

SocketException:SoCket異常

SQLException:SQL數(shù)據(jù)庫異常

三十三、SeSSiOn和COOkie的區(qū)另IJ

SeSSiOrl是存儲在服務(wù)器端,cookie是存儲在客戶端的,所以安全來講SeSSion的安全性要比

cookie高,然后我們獲取session里的信息是通過存放在會話cookie里的Sessionid獲取的。

又由于session是存放在服務(wù)器的內(nèi)存中,所以session里的東西不斷增加會造成服務(wù)器的負(fù)

擔(dān),所以會把很重要的信息存儲在session中,而把一些次要東西存儲在客戶端的cookie里,

然后cookie確切的說分為兩大類分為會話cookie和持久化cookie,會話cookie確切的說是,

存放在客戶端瀏覽器的內(nèi)存中,所以說他的生命周期和瀏覽器是一致的,瀏覽器關(guān)了會話

cookie也就消失了,然而持久化cookie是存放在客戶端硬盤中,而持久化cookie的生命周

期就是我們在設(shè)置cookie時候設(shè)置的那個保存時間,■■■■■■當(dāng)瀏覽器關(guān)閉時

session會不會丟失,從上面敘述分析session的信息是通過會話cookie的sessionid獲取的,

當(dāng)瀏覽器關(guān)閉的時候會話cookie消失所以我們的sessionid也就消失了,但是session的信息

還存在服務(wù)器端,這時我們只是查不到所謂的SeSSi頌但它并不先那么,SeSSion在

什么情況下丟失,就是在服務(wù)器關(guān)閉的時候,或者是SeSSiOn過期(默認(rèn)時間是30分鐘),再

或者調(diào)用了invalidate()的或者是我們想要session中的某一條數(shù)據(jù)消失調(diào)用

SeSSiOn.removeAttribUte()方法,然后session在什么時候被創(chuàng)建呢,確切的說是通過調(diào)用

getsession()來創(chuàng)建,這就是session與CoOkie的區(qū)別.

訪問HTML頁面是不會創(chuàng)建SeSSiOn,但是訪問index.JSP時會創(chuàng)建session(JSP實(shí)際上是一個

Servlet,Servlet中有g(shù)etSession方法)

16

三十四、字節(jié)流與字符流的區(qū)別

stream結(jié)尾都是字節(jié)流,reader和writer結(jié)尾都是字符流

兩者的區(qū)別就是讀寫的時候一個是按字節(jié)讀寫,一個是按字符。

實(shí)際使用通常差不多。

在讀寫文件需要對內(nèi)容按行處理,比如比較特定字符,處理某一行數(shù)據(jù)的時候一般會選擇字

符流。

只是讀寫文件,和文件內(nèi)容無關(guān)的,一般選擇字節(jié)流。

三十五、final,finally,finalize三者區(qū)別

Final是一個修飾符:

當(dāng)final修飾一個變量的時候,變量變成一個常量,它不能被二次賦值

當(dāng)final修飾的變量為靜態(tài)變量(即由StaliC修飾)時,必須在聲明這個變量的時候給它賦

當(dāng)final修飾方法時,該方法不能被重寫

當(dāng)final修飾類時,該類不能被繼承

Final不能修飾抽象類,因?yàn)槌橄箢愔袝行枰宇悓?shí)現(xiàn)的抽象方法,(抽象類中可以

有抽象方法,也可以有普通方法,當(dāng)一個抽象類中沒有抽象方法時,這個抽象類也就沒有

了它存在的必要)

Final不能修飾接口,因?yàn)榻涌谥杏行枰鋵?shí)現(xiàn)類來實(shí)現(xiàn)的方法

Finally:

Finany只能與try/catch語句結(jié)合使用,finalIy語句塊中的語句一定會執(zhí)行,并且會在

return,continue,break關(guān)鍵字之前執(zhí)行

finalize:

FinaliZe是一個方法,屬于java.lang.Object類,finalize。方法是GC(garbagecollector

垃圾回收)運(yùn)行機(jī)制的一部分,finalize。方法是在GC清理它所從屬的對象時被調(diào)用的

三十六、I。流的層次結(jié)構(gòu)

從流的方向

輸入流輸出流

從流的類型上

字符流字節(jié)流

inputstream和outputstream都是抽象類

它們下面的實(shí)現(xiàn)包括

FilelnputStream5BufferedInputStream

FileOutputStream,BufferedOutputStream

17

reader和writer

FileReader5BufferedReader9StringReader

FileWriter,BufferedWriter,StringWriter,PrintWriter

BufferedReader

BFiyIterARreraydReeraderPushbackReader

BInupffuertSedtrWearmiteRreaderFiieReader

PipedReader

StringReader

!OutputStreamWnterFiIeWriter

PrinterWriter

WriterStringWriter

PipedWriter

CharArrayWriter

FiIterWriter

FiIeInputStream

BufferedInputStream

FiIterInputStreamDataInputStream

PushbakInputStream

InputStreamObjectInputStream

PipedInputStream

SequenceInputStream

StringBufferInputStream

ByteArrayInputStream

FiIeOutputStream

BufferedOutputStream

FiIterOutputStreamDataOutputStream

OutputStreamPrintStream

ObjectOutputStream

PipedOutputStream

ByteArrayOutputStream

三十七、JAVA:

JaVa是面向?qū)ο蟮?,跨平臺的,它通過java虛擬機(jī)來進(jìn)行跨平臺操作,它可以進(jìn)

行自動垃圾回收的【c語言是通過人工進(jìn)行垃圾回收】,java還會進(jìn)行自動分配內(nèi)存JC

語言是通過指定進(jìn)行分配內(nèi)存的】,只需要new一個對象,這個對象占用了多少空間,

不需要我們來管,java虛擬機(jī)負(fù)責(zé)管這些,用完之后也不需要我們來釋放,java虛擬

機(jī)會自動釋放

三十八、JavaSEJavaEEJavaME區(qū)另IJ

18

是什么:

JavaSE=JavaStandardEdition=j2se=java標(biāo)準(zhǔn)版

JavaEE=JavaEnterpriseEdition=j2ee=java企業(yè)版

JavaME=JavaMobileEdition=j2me=java移動版

特點(diǎn):

SE主要用于桌面程序(SWing),控制臺開發(fā)(main程序)。

EE企業(yè)級開發(fā)(JSP,EJB,SpringMVC,Struts,hibernate,ibatis等),

用于企業(yè)級軟件開發(fā),網(wǎng)絡(luò)開發(fā),Web開發(fā)。

ME嵌入式開發(fā)(手機(jī),小家電,PDA)。[蘋果的ios,黑莓]

三者之間的關(guān)系:

JavaSE(JavaPlatform,StandardEdition,JaVa標(biāo)準(zhǔn)版)就是基于JDK和JRE

的。

JavaSE為JaVaEE提供了基礎(chǔ)。

JavaEE除了基于我們這個所謂的JaVaSE外,還新加了企業(yè)應(yīng)用所需的類庫

三十九、JDKJREJVM的區(qū)別:

[JavaDevelopmentToolKit]就是java開發(fā)工具箱,JDK是整個JAVA的核

心里邊包含了jre,它除了包含jre之外還包含了一些javac的工具類,把java源文件

編譯成CIaSS文件,java文件是用來運(yùn)行這個程序的,除此之外,里邊還包含了java

源生的API,java.Iang.integer在rt的jar包里邊【可以在項(xiàng)目中看到】,通過rt這

個jar包來調(diào)用我們的這些io流寫入寫出等

JDK有以下三種版本:

J2SE,standardedition,標(biāo)準(zhǔn)版,是我們通常用的一個版本

J2EE,enterpsiseedtion,企業(yè)版,使用這種JDK開發(fā)J2EE應(yīng)用程序

J2ME,microedtion,主要用于移動設(shè)備、嵌入式設(shè)備上的java應(yīng)用程序

[JavaRuntimeEnVironlenta1】是java運(yùn)行時環(huán)境,那么所謂的java運(yùn)行

時環(huán)境,就是為了保證java程序能夠運(yùn)行時,所必備的一基礎(chǔ)環(huán)境,也就是它只是保

證java程序運(yùn)行的,不能用來開發(fā),而jdk才是用來開發(fā)的,所有的JaVa程序都要在

JRE下才能運(yùn)行。

包括JVM和JAVA核心類庫和支持文件。與JDK相比,它不包含開發(fā)工具一一編譯

器、調(diào)試器和其它工具。

Jre里邊包含jvm

[JavaVirtualMechinal】因?yàn)閖re是java運(yùn)行時環(huán)境,java運(yùn)行靠什么運(yùn)

行,而底層就是依賴于jvm,即java虛擬機(jī),java虛擬機(jī)用來加載類文件,java中之

所以有跨平臺的作用,就是因?yàn)槲覀兊膉vm

19

關(guān)系:

J2se是基于jdk和jre,

JDK是整個JAVA的核心里邊包含了jre,

Jre里邊包含jvm

四十、報錯的狀態(tài)碼:

301永久重定向

302臨時重定向

304服務(wù)端未改變

403訪問無權(quán)限

200正常

404路徑

500內(nèi)部錯誤

四十一、協(xié)議以及默認(rèn)的端口號

ftp21文件傳輸協(xié)議

Pop3110它是因特網(wǎng)<http://baike.baidu.COln/view/1706.htm>電子郵件

<http://baike.baidu.com/view/1524.htm>的第一個離線

<http://baike.baidu.Com∕view∕113466.htm>協(xié)議標(biāo)準(zhǔn)

Smtp25簡單郵件傳輸協(xié)議

http80超文本傳輸協(xié)議

oracle默認(rèn)端口號1521

InySql默認(rèn)端口號3306

四十二、抽象類與接口的區(qū)別

1.一個類只能進(jìn)行單繼承,但可以實(shí)現(xiàn)多個接口。

2.有抽象方法的類一定是抽象類,但是抽象類里面不一定有抽象方法;

接口里面所有的方法的默認(rèn)修飾符為PUbliCabStract,接口里的成員變量

默認(rèn)的修飾符為pulbicstaticfinaL

關(guān)系

接口和接口繼承

接口和抽象類抽象類實(shí)現(xiàn)接口

類和抽象類類繼承抽象類

類和類繼承

四十三、修飾符的作用

修飾符的作用范圍:

privatedefauItprotectedpubIic

同一個類中可以可以可以可以

同一個包的類中可以可以可以

不同包的子類中可以可以

20

不同包的類中可以

四十四、Onready和onIoad的區(qū)別

1.onready比onload先執(zhí)行

2.onready是在頁面解析完成之后執(zhí)行,而onload是在頁面所有元素加載后執(zhí)行

3.onload只執(zhí)行最后一個而onready可以執(zhí)行多個。

參考:

1.執(zhí)行時間window,onload必須等到頁面內(nèi)包括圖片的所有元素加載完畢后才能執(zhí)行。

$(document),ready。是DoM結(jié)構(gòu)繪制完畢后就執(zhí)行,不必等到加載完畢。2.編寫個數(shù)不同

window,onload不能同時編寫多個,如果有多個window,onload方法,只會執(zhí)行一個

$(document).ready()可以同時編寫多個,并且都可以得到執(zhí)行3.簡化寫法window,onload

沒有簡化寫法$(document),ready(function(){})可以簡寫成$(function(){});

以薄優(yōu)器最俄文皆為例,在頁面SOtt完畢后,港覽雷會通過Javascnpt為DOM元素布加?件.JaVdSCnPt代碼中,通常使用wπdo

w.onload方法,SSJquery中,使用的是5(do

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論