于笑揚(yáng)java綜合知識點總結(jié) 必背_第1頁
于笑揚(yáng)java綜合知識點總結(jié) 必背_第2頁
于笑揚(yáng)java綜合知識點總結(jié) 必背_第3頁
于笑揚(yáng)java綜合知識點總結(jié) 必背_第4頁
于笑揚(yáng)java綜合知識點總結(jié) 必背_第5頁
已閱讀5頁,還剩69頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、目錄目錄基礎(chǔ)篇一、JDK常用的包二、 Get和Post的區(qū)別三、 Java多態(tài)的具體體現(xiàn)四、 StringBuffer StringBuilder String 區(qū)別五、 Hashtable與HashMap的區(qū)別六、 九大隱式對象七、 Forword(請求轉(zhuǎn)發(fā))與Redirect(重定向)八、JQurey總結(jié)九、 XML和Json的特點十request.getSession() reqeust.getSession(false)和request.getSession(true)十一、 Page和PageContext的區(qū)別十二、 Ajax總結(jié)十三、JSP9大隱視對象中四個作用域的大小與作用范圍

2、十四、 List,Set,Collection,Collections十五、 java的基本數(shù)據(jù)類型十六、 冒泡排序十七、二分查找法十八、時間類型轉(zhuǎn)換十九、 階乘二十、UE和UI的區(qū)別二十一、osi七層模型二十二、線程和進(jìn)程的區(qū)別二十三、jvm的內(nèi)存結(jié)構(gòu)二十四、內(nèi)存泄露和內(nèi)存溢出二十五、單例二十六、解析xml文件的幾種技術(shù)二十七、項目的生命周期二十八、OSCache的判斷二十九、經(jīng)常訪問的技術(shù)網(wǎng)站三十、項目團(tuán)隊中交流的工具三十一、平時瀏覽的書籍三十二、java Exception體系結(jié)構(gòu)三十三、session和cookie的區(qū)別三十四、字節(jié)流與字符流的區(qū)別三十五、final,finally,f

3、inalize 三者區(qū)別三十六、Io流的層次結(jié)構(gòu)三十七、JAVA:三十八、JavaSE JavaEE JavaME區(qū)別三十九、JDK JRE JVM的區(qū)別:四十、報錯的狀態(tài)碼:四十一、協(xié)議以及默認(rèn)的端口號四十二、抽象類與接口的區(qū)別四十三、修飾符的作用框架篇一、 Struts1的運(yùn)行原理二、 Struts2的運(yùn)行原理三、 struts2的體系結(jié)構(gòu)四、 Spring MVC運(yùn)行原理五、 Struts1.x與Struts2.x的區(qū)別六、 Spring MVC、struts1和struts2區(qū)別七、 Struts2中result中的type類型八、 Struts2標(biāo)簽九、 SSI整合十、 SSH整合十

4、、 Spring MVC整合十一、Hibernate 中g(shù)et 和 load的區(qū)別十二、 Hibernate、Ibatis、Jdbc三者的區(qū)別十三、 Hibernate的運(yùn)行原理十四、 Hibernate五大核心(類/接口)簡述十五、 Hibernate與JDBC的區(qū)別十六、Hibernate中的兩大配置文件十七、 Hibernate事務(wù)處理十八、 Hibernate的三種狀態(tài)以及狀態(tài)的轉(zhuǎn)換十九、 分頁步驟二十、hibernate緩存概述二十一、Ssh的概述:二十二、防止表單重復(fù)提交二十三、JSP標(biāo)簽:二十四、過濾器二十五、攔截器的理解二十六、Spring融入框架數(shù)據(jù)庫篇一、 JDBC連接數(shù)據(jù)

5、庫步驟(以MYSQL為例)二、 數(shù)據(jù)庫連接池三、 mysql的數(shù)據(jù)庫導(dǎo)入導(dǎo)出四、 jdbc分段批量提交的時候出現(xiàn)異常怎么處理?五、 jdbc批量處理數(shù)據(jù)六、 Oracle分頁七、 Oracle的基本數(shù)據(jù)類型八、 id、rowid、rownum的區(qū)別九、 主鍵和唯一索引的區(qū)別?十、 Preparedstatement和statement的區(qū)別十一、 數(shù)據(jù)庫三范式十二、 視圖概述十三、 存儲過程概述十四、 索引概述十五、 必背的sql語句業(yè)務(wù)場景篇一、 Spring的概述二、 事務(wù)概述三、 權(quán)限概述四、 OSCache業(yè)務(wù)場景五、 線程概述六、 Ajax請求Session超時問題七:java線程池

6、概述八、 OSCache概述九、 OSCache+autocomplete+單例業(yè)務(wù)場景十、 緩存概述十一、 實現(xiàn)頁面靜態(tài)化業(yè)務(wù)場景十二、 servlet線程安全描述十三、 (jbpm4)工作流引擎描述:十四、 JPBM業(yè)務(wù)場景十五、 Ant描述十六、 FreeMarker描述十七、 webService描述十八、 oracle索引概述十九、 oracle存儲過程二十、Junit 業(yè)務(wù)場景二十一、Apache+Tomcat 實現(xiàn)負(fù)載均衡及seesion復(fù)制二十二、Ant業(yè)務(wù)場景二十三、maven業(yè)務(wù)場景二十四、Servlet的概述:優(yōu)化篇一、 代碼優(yōu)化二、 業(yè)務(wù)優(yōu)化三、 sql優(yōu)化四、 防sq

7、l注入基礎(chǔ)篇一、JDK常用的包java.lang: 這個是系統(tǒng)的基礎(chǔ)類,比如String、Math、Integer、System和Thread,提供常用功能。java.io: 這里面是所有輸入輸出有關(guān)的類,比如文件操作等: 這里面是與網(wǎng)絡(luò)有關(guān)的類,比如URL,URLConnection等。java.util : 這個是系統(tǒng)輔助類,特別是集合類Collection,List,Map等。java.sql: 這個是數(shù)據(jù)庫操作的類,Connection, Statememt,ResultSet等2、 Get和Post的區(qū)別1.get是從服務(wù)器上獲取數(shù)據(jù),post是向服務(wù)器傳送數(shù)據(jù),2.get傳送的數(shù)據(jù)

8、量較小,不能大于2KB。post傳送的數(shù)據(jù)量較大,一般被默認(rèn)為不受限制。3.get安全性非常低,post安全性較高。但是執(zhí)行效率卻比Post方法好。4.在進(jìn)行文件上傳時只能使用post而不能是get。3、 Java多態(tài)的具體體現(xiàn) 面向?qū)ο缶幊逃兴膫€特征:抽象,封裝,繼承,多態(tài)。多態(tài)有四種體現(xiàn)形式:1.接口和接口的繼承。2.類和類的繼承。3.重載。4.重寫。其中重載和重寫為核心。重載:重載發(fā)生在同一個類中,在該類中如果存在多個同名方法,但是方法的參數(shù)類型和個數(shù)不一樣,那么說明該方法被重載了。重寫:重寫發(fā)生在子類繼承父類的關(guān)系中,父類中的方法被子類繼承,方法名,返回值類型,參數(shù)完全一樣,但是方法體

9、不一樣,那么說明父類中的該方法被子類重寫了。4、 StringBuffer StringBuilder String 區(qū)別String 字符串常量 不可變 使用字符串拼接時是不同的2個空間StringBuffer 字符串變量 可變 線程安全 字符串拼接直接在字符串后追加StringBuilder 字符串變量 可變 非線程安全 字符串拼接直接在字符串后追加1.執(zhí)行效率:StringBuilder>StringBuffer>String.2.String是一個常量,是不可變的,所以對于每一次+=賦值都會創(chuàng)建一個新的對象,StringBuffer和StringBuilder都是可變的,當(dāng)

10、進(jìn)行字符串拼接時采用append方法,在原來的基礎(chǔ)上進(jìn)行追加,所以性能比String要高,又因為StringBuffer是線程安全的而StringBuilder是線程非安全的,所以StringBuilder的效率高于StringBuffer.3.對于大數(shù)據(jù)量的字符串的拼接,采用StringBuffer,StringBuilder.5、 Hashtable與HashMap的區(qū)別 HashMap不是線程安全的,HashTable是線程安全。 HashMap允許空(null)的鍵和值(key),HashTable則不允許。 HashMap性能優(yōu)于Hashtable。Map1.Map是一個以鍵值對存儲

11、的接口。Map下有兩個具體的實現(xiàn),分別是HashMap和HashTable.2.HashMap是線程非安全的,HashTable是線程安全的,所以HashMap的效率高于HashTable.3.HashMap允許鍵或值為空,而HashTable不允許鍵或值為空.6、 九大隱式對象輸入/輸出對象: request response out作用域通信對象: session application pageContext Servlet 對象: page config 錯誤對象: exception 7、 Forword(請求轉(zhuǎn)發(fā))與Redirect(重定向)1、從數(shù)據(jù)共享上 Forword是一個請

12、求的延續(xù),可以共享request的數(shù)據(jù) Redirect開啟一個新的請求,不可以共享request的數(shù)據(jù)2、從地址欄 Forword轉(zhuǎn)發(fā)地址欄不發(fā)生變化 Redirect轉(zhuǎn)發(fā)地址欄發(fā)生變化八、JQurey總結(jié) jquery是一個輕量級的js框架,具有跨瀏覽器的特性,兼容性好, 并且封裝了很多工具,方便使用。 常用的有: 選擇器 ,dom操作 ,ajax(ajax不能跨域) ,特效,工具類 9、 XML和Json的特點 Xml特點:1、有且只有一個根節(jié)點;2、數(shù)據(jù)傳輸?shù)妮d體3、所有的標(biāo)簽都需要自定義 4、是純文本文件Json(JavaScript Object Notation)特點:json分

13、為兩種格式: 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更清晰。共同點: xml和json都是數(shù)據(jù)傳輸?shù)妮d體,并且具有跨平臺跨語言的特性。10、 request.getSession()、reqeust.getSession(false)和request.getSession(true)getSession()/getS

14、ession(true):當(dāng)session存在時返回該session,否則新建一個session并返回該對象getSession(false):當(dāng)session存在時返回該session,否則返回null11、 Page和PageContext的區(qū)別 Page是servlet對象;使用this關(guān)鍵字,它的作用范圍是在同一頁面。PageContext是作用域通信對象;通常使用setAttribute()和getAttribute()來設(shè)置和獲取存放對象的值。12、 Ajax總結(jié) AJAX 全稱: 異步JavaScript及 XML(Asynchronous JavaScript And XML)

15、Ajax的核心是JavaScript對象XmlHttpRequest(XHR)。Ajax的優(yōu)點:提高用戶體驗度(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ù)器請求少量的信

16、息,而不是整個頁面,減輕服務(wù)器的負(fù)擔(dān),提升站點的性能。 AJAX 可使因特網(wǎng)應(yīng)用程序更小、更快,更友好,用戶體驗(UE)好。5. Ajax是基于標(biāo)準(zhǔn)化并被廣泛支持的技術(shù),并且不需要插件和下載小程序十三、JSP9大隱視對象中四個作用域的大小與作用范圍 四個作用域從大到?。篴ppliaction>session>request>pageapplication:全局作用范圍,整個應(yīng)用程序共享.生命周期為:應(yīng)用程序啟動到停止。session:會話作用域,當(dāng)用戶首次訪問時,產(chǎn)生一個新的會話,以后服務(wù)器就可以記 住這個會話狀態(tài)。request:請求作用域,就是客戶端的一次請求。page:

17、一個JSP頁面。以上作用范圍使越來越小, request和page的生命周期都是短暫的,他們之間的區(qū)別就是:一個request可以包含多個page頁(include,forward)。14、 List,Set,Collection,Collections1. List和Set都是接口,他們都繼承于接口Collection,List是一個有序的可重復(fù)的集合,而Set的無序的不可重復(fù)的集合。Collection是集合的頂層接口,Collections是一個封裝了眾多關(guān)于集合操作的靜態(tài)方法的工具類,因為構(gòu)造方法是私有的,所以不能實例化。2.List接口實現(xiàn)類有ArrayList,LinkedList

18、,Vector。ArrayList和Vector是基于數(shù)組實現(xiàn)的,所以查詢的時候速度快,而在進(jìn)行增加和刪除的時候速度較慢LinkedList是基于鏈?zhǔn)酱鎯Y(jié)構(gòu),所以在進(jìn)行查詢的時候速度較慢但在進(jìn)行增加和刪除的時候速度較快。又因為Vector是線程安全的,所以他和ArrayList相比而言,查詢效率要低。15、 java的基本數(shù)據(jù)類型數(shù)據(jù)類型大小byte(字節(jié))1(8位)shot(短整型) 2(16位)int(整型)4(32位)long(長整型) 8(32位)float(浮點型)4(32位)double(雙精度)8(64位)char(字符型)2(16位)boolean(布爾型)1位附加: Str

19、ing是基本數(shù)據(jù)類型嗎?(String不是基本數(shù)據(jù)類型) String的長度是多少,有限制?(長度受內(nèi)存大小的影響)16、 冒泡排序public class Sort public static void sort() Scanner input = new Scanner(System.in);int sort = new int10;int temp;System.out.println("請輸入10個排序的數(shù)據(jù):");for (int i = 0; i < sort.length; i+) sorti = input.nextInt();for (int i =

20、 0; i < sort.length - 1; i+) for (int j = 0; j < sort.length - i - 1; j+) if (sortj < sortj + 1) temp = sortj;sortj = sortj + 1;sortj + 1 = temp;System.out.println("排列后的順序為:");for(int i=0;i<sort.length;i+)System.out.print(sorti+" ");public static void main(String args

21、) sort();十七、二分查找法十八、時間類型轉(zhuǎn)換public class DateFormat public static void fun() SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日");String newDate;try newDate = sdf.format(new SimpleDateFormat("yyyyMMdd").parse("20121115");System.out.println(newDate); catch (ParseExce

22、ption e) e.printStackTrace();public static void main(String args) fun();19、 階乘public class Multiply public static int multiply(int num) if (num < 0) System.out.println("請輸入大于0的數(shù)!");return -1; else if (num = 0 | num = 1) return 1; else return multiply(num - 1) * num;public static void ma

23、in(String args) System.out.println(multiply(10);二十、UE和UI的區(qū)別UE 是用戶體驗度UI 界面原型(用戶界面)(相當(dāng)于買房時用的模型)設(shè)計UI的作用:1、幫助程序員工作(界面已由美工設(shè)計完成)2、提前讓用戶對項目有個宏觀的了解,知道效果是什么樣子。二十一、osi七層模型第一層:物理層 第二層:數(shù)據(jù)鏈路層 第三層:網(wǎng)絡(luò)層 第四層:傳輸層第五層:會話層第六層:表示層第七層:應(yīng)用層二十二、線程和進(jìn)程的區(qū)別1.線程(Thread)與進(jìn)程(Process)進(jìn)程定義的是應(yīng)用程序與應(yīng)用程序之間的邊界,通常來說一個進(jìn)程就代表一個與之對應(yīng)的應(yīng)用程序。不同的進(jìn)程

24、之間不能共享代碼和數(shù)據(jù)空間,而同一進(jìn)程的不同線程可以共享代碼和數(shù)據(jù)空間。2. 一個進(jìn)程可以包括若干個線程,同時創(chuàng)建多個線程來完成某項任務(wù),便是多線程。3. 實現(xiàn)線程的兩種方式:繼承Thread類,實現(xiàn)Runable接口二十三、jvm的內(nèi)存結(jié)構(gòu)java虛擬機(jī)的內(nèi)存結(jié)構(gòu)分為堆(heap)和棧(stack),堆里面存放是對象實例也就是new出來的對象。棧里面存放的是基本數(shù)據(jù)類型以及引用數(shù)據(jù)類型的地址。對于所謂的常量是存儲在方法區(qū)的常量池里面。二十四、內(nèi)存泄露和內(nèi)存溢出內(nèi)存泄露 (memory leak),是指應(yīng)用程序在申請內(nèi)存后,無法釋放已經(jīng)申請的內(nèi)存空間.一次內(nèi)存泄露危害可以忽略,但如果任其發(fā)展最

25、終會導(dǎo)致內(nèi)存溢出(out of memory).如讀取文件后流要進(jìn)行及時的關(guān)閉以及對數(shù)據(jù)庫連接的釋放。內(nèi)存溢出(out of memory)是指應(yīng)用程序在申請內(nèi)存時,沒有足夠的內(nèi)存空間供其使用。如我們在項目中對于大批量數(shù)據(jù)的導(dǎo)入,采用分段批量提交的方式。二十五、單例單例就是該類只能返回一個實例。單例所具備的特點:1.私有化的構(gòu)造函數(shù)2.私有的靜態(tài)的全局變量3.公有的靜態(tài)的方法單例分為懶漢式、餓漢式和雙層鎖式餓漢式:public class Singleton1 private Singleton1() ; private static Singleton1 single = new Singl

26、eton1(); public static Singleton1 getInstance() return single; 懶漢式:public class Singleton2 private Singleton2() private static Singleton2 single=null; public tatic Singleton2 getInstance() if (single = null) single = new Singleton2(); return single; 線程安全:public class Singleton3 private Singleton3()

27、private static Singleton3 single ; public static Singleton3 getInstance() if(null = single)synchronized(single )if(null = single)single = new Singleton3();return single; 參考:通過雙重判斷來保證單列設(shè)計模式在多線程中的安全性,并且它在性能方面提高了很多。synchronized在方法上加鎖 (同步鎖)synchronized在代碼塊內(nèi)部加鎖 (同步代碼塊)synchronized(同步鎖)使用synchronized如何解決線

28、程安全的問題?1.synchronized在方法上加鎖2.synchronized在代碼塊內(nèi)部加鎖1.懶漢 2.餓漢 3.雙重判斷二十六、解析xml文件的幾種技術(shù)1、 解析xml的幾種技術(shù) 1.dom4j 2.sax 3.jaxb 4.jdom 5.dom1.dom4j dom4j是一個Java的XML API,類似于jdom,用來讀寫XML文件的。dom4j是一個非常優(yōu)秀的Java XML API,具有性能優(yōu)異、功能強(qiáng)大和極端易用使用的特點,同時它也是一個開放源代碼的軟件。 2.sax SAX(simple API for XML)是一種XML解析的替代方法。相比于DOM,SAX是一種速度更

29、快,更有效的方法。它逐行掃描文檔,一邊掃描一邊解析。而且相比于DOM,SAX可以在解析文檔的任意時刻停止解析,但任何事物都有其相反的一面,對于SAX來說就是操作復(fù)雜。 3.jaxb JAXB(Java Architecture for XML Binding) 是一個業(yè)界的標(biāo)準(zhǔn),是一項可以根據(jù)XML Schema產(chǎn)生Java類的技術(shù)。該過程中,JAXB也提供了將XML實例文檔反向生成Java對象樹的方法,并能將Java對象樹的內(nèi)容重新寫到XML實例文檔。從另一方面來講,JAXB提供了快速而簡便的方法將XML模式綁定到Java表示,從而使得Java開發(fā)者在Java應(yīng)用程序中能方便地結(jié)合XML數(shù)據(jù)

30、和處理函數(shù)。2、dom4j 與 sax 之間的對比:【注:必須掌握!】 dom4j不適合大文件的解析,因為它是一下子將文件加載到內(nèi)存中,所以有可能出現(xiàn)內(nèi)存溢出, sax是基于事件來對xml進(jìn)行解析的,所以他可以解析大文件的xml 也正是因為如此,所以dom4j可以對xml進(jìn)行靈活的增刪改查和導(dǎo)航,而sax沒有這么強(qiáng)的靈活性 所以sax經(jīng)常是用來解析大型xml文件,而要對xml文件進(jìn)行一些靈活(crud)操作就用dom4j二十七、項目的生命周期 1.需求分析2.概要設(shè)計3.詳細(xì)設(shè)計(用例圖,流程圖,類圖)4.數(shù)據(jù)庫設(shè)計(powerdesigner)5.代碼開發(fā)(編寫)6.單元測試(junit 白

31、盒測試)(開發(fā)人員)svn版本管理工具(提交,更新代碼,文檔)7.集成測試 (黑盒測試,loadrunner(編寫測試腳本)(高級測試))8.上線試運(yùn)行 (用戶自己體驗)9.壓力測試(loadrunner)10.正式上線 11.維護(hù)二十八、OSCache的判斷Object obj = CacheManager.getInstance().getObj("oaBrandList");/從緩存中取數(shù)據(jù)if (null = obj) obj = brandDao.getBrandList(); /如果為空再從數(shù)據(jù)庫獲取數(shù)據(jù) /獲取之后放入緩存中CacheManager.getIn

32、stance().putObj("oaBrandList", obj); return (List<OaBrand>)obj;二十九、經(jīng)常訪問的技術(shù)網(wǎng)站1.csdn(詳細(xì)步驟的描述)2.iteye(詳細(xì)步驟的描述)3.oschina(開源中國獲取java開源方面的信息技術(shù))4.java開源大全 www.open-(獲取java開源方面的信息技術(shù))5.infoq(對java,php,.net等這些語言的一些最新消息的報道)三十、項目團(tuán)隊中交流的工具飛秋(局域網(wǎng))qq(局域網(wǎng),外網(wǎng))RTX(局域網(wǎng),外網(wǎng))郵箱 (局域網(wǎng),外網(wǎng))三十一、平時瀏覽的書籍實戰(zhàn)經(jīng)驗:* in

33、 action(實戰(zhàn))* 深入淺出* 入門指南思想基礎(chǔ):大話設(shè)計模式重構(gòu)三十二、java Exception體系結(jié)構(gòu)java 異常是程序運(yùn)行過程中出現(xiàn)的錯誤。Java把異常當(dāng)作對象來處理,并定義一個基類java.lang.Throwable作為所有異常的超類。在Java API中定義了許多異常類,分為兩大類,錯誤Error和異常Exception。其中異常類Exception又分為運(yùn)行時異常(RuntimeException)和非運(yùn)行時異常(非runtimeException),也稱之為不檢查異常(Unchecked Exception)和檢查異常(Checked Exception)。1、E

34、rror與Exception Error是程序無法處理的錯誤,比如OutOfMemoryError、ThreadDeath等。這些異常發(fā)生時,Java虛擬機(jī)(JVM)一般會選擇線程終止。Exception是程序本身可以處理的異常,這種異常分兩大類運(yùn)行時異常和非運(yùn)行時異常。程序中應(yīng)當(dāng)盡可能去處理這些異常。 2、運(yùn)行時異常和非運(yùn)行時異常 運(yùn)行時異常: 都是RuntimeException類及其子類異常: IndexOutOfBoundsException 索引越界異常ArithmeticException:數(shù)學(xué)計算異常NullPointerException:空指針異常ArrayOutOfBoun

35、dsException:數(shù)組索引越界異常ClassNotFoundException:類文件未找到異常ClassCastException:造型異常(類型轉(zhuǎn)換異常)這些異常是不檢查異常(Unchecked Exception),程序中可以選擇捕獲處理,也可以不處理。這些異常一般是由程序邏輯錯誤引起的。非運(yùn)行時異常:是RuntimeException以外的異常,類型上都屬于Exception類及其子類。從程序語法角度講是必須進(jìn)行處理的異常,如果不處理,程序就不能編譯通過。如:IOException、文件讀寫異常FileNotFoundException:文件未找到異常 EOFException:

36、讀寫文件尾異常MalformedURLException:URL格式錯誤異常SocketException:Socket異常SQLException:SQL數(shù)據(jù)庫異常三十三、session和cookie的區(qū)別session是存儲在服務(wù)器端,cookie是存儲在客戶端的,所以安全來講session的安全性要比cookie高,然后我們獲取session里的信息是通過存放在會話cookie里的sessionid獲取的。又由于session是存放在服務(wù)器的內(nèi)存中,所以session里的東西不斷增加會造成服務(wù)器的負(fù)擔(dān),所以會把很重要的信息存儲在session中,而把一些次要東西存儲在客戶端的cookie

37、里,然后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ù)器端,這時我

38、們只是查不到所謂的session但它并不是不存在。那么,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實際上是一個Servlet, Servlet中有g(shù)etSession

39、方法)三十四、字節(jié)流與字符流的區(qū)別stream結(jié)尾都是字節(jié)流,reader和writer結(jié)尾都是字符流兩者的區(qū)別就是讀寫的時候一個是按字節(jié)讀寫,一個是按字符。實際使用通常差不多。在讀寫文件需要對內(nèi)容按行處理,比如比較特定字符,處理某一行數(shù)據(jù)的時候一般會選擇字符流。只是讀寫文件,和文件內(nèi)容無關(guān)的,一般選擇字節(jié)流。三十五、final,finally,finalize 三者區(qū)別Final是一個修飾符:當(dāng)final修飾一個變量的時候,變量變成一個常量,它不能被二次賦值當(dāng)final修飾的變量為靜態(tài)變量(即由static修飾)時,必須在聲明這個變量的時候給它賦值當(dāng)final修飾方法時,該方法不能被重寫當(dāng)f

40、inal修飾類時,該類不能被繼承Final不能修飾抽象類,因為抽象類中會有需要子類實現(xiàn)的抽象方法,(抽象類中可以有抽象方法,也可以有普通方法,當(dāng)一個抽象類中沒有抽象方法時,這個抽象類也就沒有了它存在的必要)Final不能修飾接口,因為接口中有需要其實現(xiàn)類來實現(xiàn)的方法Finally:Finally只能與try/catch語句結(jié)合使用,finally語句塊中的語句一定會執(zhí)行,并且會在return,continue,break關(guān)鍵字之前執(zhí)行finalize:Finalize是一個方法,屬于java.lang.Object類,finalize()方法是GC(garbage collector垃圾回收)

41、運(yùn)行機(jī)制的一部分,finalize()方法是在GC清理它所從屬的對象時被調(diào)用的三十六、Io流的層次結(jié)構(gòu)從流的方向輸入流 輸出流從流的類型上字符流 字節(jié)流inputstream和outputstream都是抽象類它們下面的實現(xiàn)包括FileInputStream,BufferedInputStreamFileOutputStream,BufferedOutputStreamreader 和 writerFileReader,BufferedReader,StringReaderFileWriter,BufferedWriter,StringWriter,PrintWriter三十七、JAVA:Ja

42、va是面向?qū)ο蟮?,跨平臺的,它通過java虛擬機(jī)來進(jìn)行跨平臺操作,它可以進(jìn)行自動垃圾回收的【c語言是通過人工進(jìn)行垃圾回收】,java還會進(jìn)行自動分配內(nèi)存。【c語言是通過指定進(jìn)行分配內(nèi)存的】,只需要new一個對象,這個對象占用了多少空間,不需要我們來管,java虛擬機(jī)負(fù)責(zé)管這些,用完之后也不需要我們來釋放,java虛擬機(jī)會自動釋放三十八、JavaSE JavaEE JavaME區(qū)別是什么:Java SE=Java Standard Edition=j2se = java 標(biāo)準(zhǔn)版Java EE=Java Enterprise Edition=j2ee= java 企業(yè)版Java ME=Java M

43、obile Edition=j2me = java移動版特點:SE主要用于桌面程序(swing),控制臺開發(fā)(main程序)。EE企業(yè)級開發(fā)(JSP,EJB,Spring MVC,Struts,hibernate,ibatis等),用于企業(yè)級軟件開發(fā),網(wǎng)絡(luò)開發(fā),web開發(fā)。ME嵌入式開發(fā)(手機(jī),小家電,PDA)。蘋果的ios,黑莓三者之間的關(guān)系:Java SE(Java Platform, Standard Edition,Java標(biāo)準(zhǔn)版)就是基于JDK和JRE的。Java SE為Java EE提供了基礎(chǔ)。Java EE除了基于我們這個所謂的Java SE外,還新加了企業(yè)應(yīng)用所需的類庫三十九、

44、JDK JRE JVM的區(qū)別:Jdk【Java Development ToolKit】就是java開發(fā)工具箱, JDK是整個JAVA的核心里邊包含了jre,它除了包含jre之外還包含了一些javac的工具類,把java源文件編譯成class文件,java文件是用來運(yùn)行這個程序的,除此之外,里邊還包含了java源生的API,eger在rt的jar包里邊【可以在項目中看到】,通過rt這個jar包來調(diào)用我們的這些io流寫入寫出等JDK有以下三種版本:J2SE,standard edition,標(biāo)準(zhǔn)版,是我們通常用的一個版本J2EE,enterpsise edtion,企業(yè)

45、版,使用這種JDK開發(fā)J2EE應(yīng)用程序J2ME,micro edtion,主要用于移動設(shè)備、嵌入式設(shè)備上的java應(yīng)用程序Jre【Java Runtime Enviromental】是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里邊包含jvmJvm:【Java Virtual Mechinal】因為jre是java運(yùn)行

46、時環(huán)境,java運(yùn)行靠什么運(yùn)行,而底層就是依賴于jvm,即java虛擬機(jī),java虛擬機(jī)用來加載類文件,java中之所以有跨平臺的作用,就是因為我們的jvm關(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)的端口號ftp 21 文件傳輸協(xié)議Pop3 110 它是因特網(wǎng) < < <Smtp 25 簡單郵件傳輸協(xié)議http 80 超文本傳輸協(xié)議oracle

47、默認(rèn)端口號1521mysql默認(rèn)端口號 3306四十二、抽象類與接口的區(qū)別1.一個類只能進(jìn)行單繼承,但可以實現(xiàn)多個接口。2.有抽象方法的類一定是抽象類,但是抽象類里面不一定有抽象方法; 接口里面所有的方法的默認(rèn)修飾符為public abstract,接口里的成員變量默認(rèn)的修飾符為 pulbic static final。 關(guān)系接口和接口 繼承接口和抽象類 抽象類實現(xiàn)接口類和抽象類 類繼承抽象類類和類 繼承四十三、修飾符的作用修飾符的作用范圍:private default protected public同一個類中 可以 可以 可以 可以同一個包的類中 可以 可以 可以不同包的子類中 可以 可

48、以不同包的類中 可以四十四、onready和onload的區(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()可以同時編

49、寫多個,并且都可以得到執(zhí)行 3.簡化寫法 window.onload沒有簡化寫法 $(document).ready(function()可以簡寫成$(function(); 另外,需要注意一點,由于在$(document).ready() 方法內(nèi)注冊的事件,只要DOM 就緒就會被執(zhí)行,因此可能此時元素的關(guān)聯(lián)文件未下載完。例如與圖片有關(guān)的html 下載完畢,并且已經(jīng)解析為DOM 樹了,但很有可能圖片還沒有加載完畢,所以例如圖片的高度和寬度這樣的屬性此時不一定有效。要解決這個問題,可以使用Jquery 中另一個關(guān)于頁面加載的方法-load() 方法。Load() 方法會在元素的onload 事件

50、中綁定一個處理函數(shù)。如果處理函數(shù)綁定給window 對象,則會在所有內(nèi)容( 包括窗口、框架、對象和圖像等) 加載完畢后觸發(fā),如果處理函數(shù)綁定在元素上,則會在元素的內(nèi)容加載完畢后觸發(fā)。 Jquery 代碼如下: $(window).load(function () / 編寫代碼 );等價于JavaScript 中的以下代碼 Window.onload = function () / 編寫代碼 四十五、switch默認(rèn)接受的幾種數(shù)據(jù)類型Short, int, byte, char四十六、request 跟session的區(qū)別1.他們的生命周期不同,request對應(yīng)的是一次請求,session對應(yīng)

51、的是一次會話2.request占用資源比較少,相對來說缺乏持續(xù)性,而session資源消耗比較大,所以通常使用request來保存信息四十七、找到解決svn沖突方法對于svn沖突,可以采用手工處理將沖突的部分進(jìn)行整合,之后備份最新整合后的文件,采用覆蓋更新的方式處理完沖突之后,再把最新整合后的文件進(jìn)行提交。四十八、反射的描述 通過字符串可以動態(tài)創(chuàng)建java對象,并且可以動態(tài)訪問方法, 屬性等。 我們在項目中的時候封裝過數(shù)據(jù)庫jdbc的持久層, 其中就利用反射這項 技術(shù)來達(dá)到通用 和靈活的目的??蚣芷?1、 Struts1的運(yùn)行原理在啟動時通過前端總控制器ActionServlet加載strut

52、s-config.xml并進(jìn)行解析,當(dāng)用戶在jsp頁面發(fā)送請求被struts1的核心控制器ActionServlet接收,ActionServlet在用戶請求時將請求參數(shù)放到對應(yīng)的ActionForm對象中的成員變量中,然后ActionServlet則會根據(jù)struts-config.xml中的映射關(guān)系找到相應(yīng)的Action中的方法,將對應(yīng)的ActionForm一并傳給這個Action中的方法里,然后執(zhí)行相應(yīng)的業(yè)務(wù)邏輯操作,最后就根據(jù)ActionMapping的findforward方法返回一個ActionForward,之后在struts-config.xml中找到與之對應(yīng)的forward標(biāo)簽,根據(jù)它的配置路徑找到對應(yīng)的jsp頁面。2、 Struts2的運(yùn)行原理1、tomcat 啟動的時候會加載 web.xml 、核心控制器

溫馨提示

  • 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

提交評論