java的一些知識點部分總結分析_第1頁
java的一些知識點部分總結分析_第2頁
java的一些知識點部分總結分析_第3頁
java的一些知識點部分總結分析_第4頁
java的一些知識點部分總結分析_第5頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、第一種(懶漢,線程不安全):單例模式2 2private staticSingletoninstance;3private Singleton()4public staticSingletongetInstance()5if (instance =:=null )6instance=newSingleton();78return instance;910 11Singleton instance :單實例第二種(懶漢,線程安全):1 public2class Singleton private static Singleton instance;34private Singleton ()pu

2、blic static synchronized Singleton getInstance()5if (instance = null )6instance = new Singleton();78return instance;910 11第三種(餓漢)1 publicclassSingleton2privatestaticSingleton instance = new Singleton();創(chuàng)建對象3privateSingleton()私有化構造器,防止外部調用4publicstaticSingleton getInstance()5returninstance;67 8第四種(餓漢

3、,變種)1 publicclassSingleton 2privateSingleton instance = null ;3static4instance=new Singleton();56privateSingleton ()7publicstatic Singleton getInstance()8returnthis .instance;910 11第五種(靜態(tài)內部類)1 publicclassSingleton2privatestaticclass SingletonHolder 3privatestaticfinal Singleton INSTANCE = new Single

4、ton();45privateSingleton()6publicstaticfinal Singleton getInstance()return SingletonHolde匚INSTANCE;第六種(枚舉):publicenumSingleton INSTANCE;publicvoid whateverMethod()第七種(雙重校驗鎖)1 publicclassSingleton 2privatevolatilestaticSingleton singleton;3privateSingleton ()4publicstatic SingletongetSingleton()5if (

5、singleton = null )6synchronized (Singleton. class ) 7if (singleton =null ) 8singleton=new Singleton();9 TOC o 1-5 h z returnsingleton;冒泡排序例子static void bubble_sort( int 口 unsorted)for (int i =0; i unsorted.Length; i+)for ( int j = i; j unsortedj)int temp = unsortedi;unsortedi = unsortedj;unsortedj =

6、 temp;static void Main( string args)int x = 6, 2, 4, 1, 5, 9 ;bubble_sort(x);foreach ( var item in x)Console.WriteLine(item);Console.ReadLine();Get 和 post 的區(qū)別1、GET請求,請求的數(shù)據會附加在URL之后,以?分割URL和傳輸數(shù)據, 多個參數(shù)用&連接。URL的編碼格式采用的是 ASCII編碼,而不是uniclde, 即是說所有的非ASCI序符都要編碼之后再傳輸。POST請求:POST青求會把請求的數(shù)據放置在 HTTP請求包的包體中。上面的

7、item=bandsaw 就是實際的傳輸數(shù)據。因此,GET請求的數(shù)據會暴露在地址欄中,而 POST青求則不會。2、傳輸數(shù)據的大小在HTTP規(guī)范中,沒有對URL的長度和傳輸?shù)臄?shù)據大小進行限制。但是 在實際開發(fā)過程中,對于 GE特定的瀏覽器和服務器對 URL的長度有 限制。因此,在使用 GET請求時,傳輸數(shù)據會受到 URL長度的限制。對于POST由于不是URL傳值,理論上是不會受限制的,但是實際上 各個服務器會規(guī)定對POST!交數(shù)據大小進行限制,Apache、IIS都有各 自的配置。3、安全性POST的安全性比GET的高。這里的安全是指真正的安全,而不同于上面GET提到的安全方法中的安全,上面提到

8、的安全僅僅是不修改服務器的數(shù)據。比如,在進行登錄操作,通過GET請求,用戶名和密碼都會暴露再URL上,因為登錄頁面有可能被瀏覽器緩存以及其他人查看瀏覽器的歷史記錄的原因,此時的用戶名和密碼就很容易被他人拿到了。除此之外,GET請求提交的數(shù)據還可能會造成 Cross-site request frogery攻擊事務四大特性(簡稱ACID)1、原子性(Atomicity):事務中的全部操作在 數(shù)據庫中是不可分割的,要么全部完 成,要么均不執(zhí)行。2、一致性(Consistency*幾個并行執(zhí)行的事務,其執(zhí)行結果必須與按某一順序用 行執(zhí)行的結果相一致。3、隔離性(Isolation):事務的執(zhí)行不受其

9、他事務的干擾,事務執(zhí)行的中間結果對 其他事務必須是透明的。4、持久性(Durability):對于任意已提交事務,系統(tǒng)必須保證該事務對數(shù)據庫的改 變不被丟失,即使數(shù)據庫出現(xiàn)故障。Java中的4大作用域及作用范圍PageContext對象(作用域)PageContext對象就是指向當前JSP頁面本身request對象(作用域)客戶端的請求信息被封裝在request對象中,通過它才能了解到客戶的需求,然后做出響應。它是 HttpServletRequest類的實例。session對象(作用域)session對象指的是客戶端與服務器的一次會話,從客戶連到服務器的一個WebApplication 開始

10、,直到客戶端與服務器斷開連接為止。它是HttpSession 類的實例.application對象(作用域)application對象實現(xiàn)了用戶間數(shù)據的共享,可存放全局變量。它開始于服務器的啟動,直到服務器的關閉,在此期間,此對象將一直存在;這樣在用戶的前后連接或不同用戶之間的連接中,可以對此對象的同一屬性進行操作;在任何地方對此對象屬性的操作,都將影響到其他用戶對此的訪問。服務器的啟動和關閉決定了application對象的生命。它是 ServletContext 類的實例。請求轉發(fā)和請求重新定向的定義及區(qū)別?請求轉發(fā)請求轉發(fā)是指將請求再轉發(fā)到另一資源(一般為JSP Servlet)。此過程

11、依然在同一個請求范圍內,轉發(fā)后瀏覽器地址欄內容不變請求轉發(fā)使用RequestDispatcher接口中的forward。方法來實現(xiàn),該方法可以 把請求轉發(fā)到另外一個資源,并讓該資源對瀏覽器的請求進行響應RequestDispatcher rd = request.getRequestDispatcher(path);rd.forward(request,response);或request.getRequestDispatcher(path) .forward(request,response);請求重新定向|重定向是指頁面重新定位到某個新地址,之前的請求失效,進入一個新的請求,且跳轉后瀏覽器

12、地址欄內容將變?yōu)樾碌闹付ǖ刂分囟ㄏ蚴峭ㄟ^ HttpServletResponse對象的sendRedirect()來實現(xiàn),該方法相當于瀏覽器重 新發(fā)送一個請求response.sendRedirect(path);Abstract和 interface 的區(qū)別Abstract:抽象不能創(chuàng)建實例對象抽象方法沒有方法體可以有抽象方法也可以有普通方法不能有抽象的構造器不能有靜態(tài)的抽象方法Interface:接口是抽象的特例方法全部是抽象方法接口中的方法默認為public abstract類型接口中的成員變量類型默認為public static final。區(qū)別:.抽象類可以有構造方法,接口中不能有構

13、造方法。.抽象類中可以有普通成員變量,接口中沒有普通成員變量.抽象類中可以包含非抽象的普通方法,接口中的所有方法必須都是抽象的,不能有非 抽象的普通方法。.抽象類中的抽象方法的訪問類型可以是public, protected和(默認類型,雖然eclipse下不報錯,但應該也不行),但接口中的抽象方法只能是public類型的,并且默認即為public abstract類型。.抽象類中可以包含靜態(tài)方法,接口中不能包含靜態(tài)方法.抽象類和接口中都可以包含靜態(tài)成員變量,抽象類中的靜態(tài)成員變量的訪問類型可 以任意,但接口中定義的變量只能是public static final類型,并且默認即為public

14、 static final類型。. 一個類可以實現(xiàn)多個接口,但只能繼承一個抽象類。Final1、final修飾的類不能被繼承。、Sting就是一個被final修飾的類,我們只能用,不能被繼承、final不僅可以修飾類,還可以修飾變量,被 final修飾的變量就是一個常量,只能賦值一次,修飾屬性,屬性不可變,修飾方法,方法不可覆蓋注意final和finally的區(qū)別,final是修飾類或者變量,finally是在異常處理中使用,如:Try catch () finally。中,finally的作用一般用于必須處理的事情,如關閉連接String、Stringbuffer及 StringBulide

15、r的區(qū)另在執(zhí)行速度方面的比較:StringBuilder StringBuffer StringStringBuilder :線程非安全的 StringBuffer:線程安全的String :字符串常量 StringBuffer :字符創(chuàng)變量 StringBuilder :字符創(chuàng)變量 總結: 1.如果要操作少量的數(shù)據用=String.單線程操作字符串緩沖區(qū)下操作大量數(shù)據 =StringBuilder.多線程操作字符串緩沖區(qū)下操作大量數(shù)據 =StringBuffer正則表達式Length屬性和length()方法String :有 length() 方法,沒有l(wèi)ength 屬性數(shù)組:有l(wèi)engt

16、h屬性,沒有l(wèi)ength()方法異常的種類異常大體分為 編譯異常 和 運行異常 兩類( Exception 各種異常的根類)ArithmeticException 算數(shù)運算錯誤異常ArrayIndexOfOutBoundsException 數(shù)組下標越界NullPointException 空指針異常NumberFormatException 字符串轉換成數(shù)字異常ClassCastException - 類型強制轉換異常。throws,throw,try,catch,finally 分別代表什么意義?try :指定一塊預防所有“異?!钡某绦?。catch:緊跟在try程序后面,應包含一個 cat

17、ch子句來指定你想要捕捉的“異?!钡念愋?。throw :用來明確地拋出一個“異?!薄hrows :標明一個成員函數(shù)可能拋出的各種“異?!薄inally:不管發(fā)生什么“異?!倍急粓?zhí)行一段代碼。JSP中九大內置對象request請求對象類型 javax.servlet.ServletRequest作用域Requestresponse響應對象類型 javax.servlet.SrvletResponse作用域PagepageContext頁面上下文對象類型 javax.servlet.jsp.PageContext作用域Pagesession會話對象類型 javax.servlet. HYPER

18、LINK http:/http.HttpSession http.HttpSession作用域Sessionapplication應用程序對象類型 javax.servlet.ServletContext作用域Applicationout輸出對象類型 javax.servlet.jsp.JspWriter作用域Pageconfig配置對象類型 javax.servlet.ServletConfig作用域Pagepage頁面對象類型 javax.lang.Object作用域Pageexception例外對象類型 javax.lang.Throwable作用域pageAjax 的優(yōu)勢1. 無刷新更

19、新數(shù)據。AJAX最大優(yōu)點就是能在不刷新整個頁面的前提下與服務器通信維護數(shù)據。這使得Web應用程序更為迅捷地響應用戶交互,并避免了在網絡上發(fā)送那些沒有改變的信息,減少用戶等待時間,帶來非常好的用戶體驗。2. 異步與服務器通信。AJAX 使用異步方式與服務器通信,不需要打斷用戶的操作,具有更加迅速的響應能力。優(yōu)化了 Browser 和 Server 之間的溝通, 減少不必要的數(shù)據傳輸、 時間及降低網絡上數(shù)據流量。3. 前端和后端負載平衡。AJAX 可以把以前一些服務器負擔的工作轉嫁到客戶端,利用客戶端閑置的能力來處理,減輕服務器和帶寬的負擔,節(jié)約空間和寬帶租用成本。并且減輕服務器的負擔, AJAX

20、 的原則是“按需取數(shù)據”,可以最大程度的減少冗余請求和響應對服務器造成的負擔,提升站點性能。4. 基于標準被廣泛支持。AJAX 基于標準化的并被廣泛支持的技術,不需要下載瀏覽器插件或者小程序,但需要客戶允許 JavaScript 在瀏覽器上執(zhí)行。隨著Ajax 的成熟,一些簡化 Ajax 使用方法的程序庫也相繼問世。同樣,也出現(xiàn)了另一種輔助程序設計的技術,為那些不支持JavaScript 的用戶提供替代功能。5. 界面與應用分離。Ajax使WEB中的界面與應用分離(也可以說是數(shù)據與呈現(xiàn)分離),有利于分工合作、減少非技術人員對頁面的修改造成的WEB應用程序錯誤、提高效率、也更加適用于現(xiàn)在的發(fā)布系統(tǒng)

21、。構造器本質默認的構造器本質是一個無參數(shù),靜態(tài)的,被final 修飾的方法( final 修飾的方法不能被重寫,不能被繼承)Error與Exception有什么區(qū)另U?Error(錯誤)表示系統(tǒng)級的錯誤和程序不必處理的異常,是java運行環(huán)境中的內部錯誤或者硬件問題,比如,內存資源不足等,對于這種錯誤,程序基本無能為力,除了退出運行外別無選擇。Exception(違例)表示需要捕捉或者需要程序進行處理的異常,它處理的是因為程序設計的瑕疵而引起的問題或者在外的輸入等引起的一般性問題,是程序必須處理的。java 中有幾種方法可以實現(xiàn)一個線程有兩種實現(xiàn)方法,分別是繼承 Thread (9red)類與

22、實現(xiàn) Runnable接口用 synchronized( s?kr?na?zd) 關鍵字修飾同步方法多線程有幾種實現(xiàn)方法? 同步有幾種實現(xiàn)方法?多線程有兩種實現(xiàn)方法,分別是繼承Thread 類與實現(xiàn) Runnable 接口同步的實現(xiàn)方面有兩種,分別是synchronized,wait 與 notifywait(): 使一個線程處于等待狀態(tài),并且釋放所持有的對象的 lock 。sleep():使一個正在運行的線程處于睡眠狀態(tài),是一個靜態(tài)方法,調用此方法要捕捉InterruptedException( 中斷異常 )異常。notify(): 喚醒一個處于等待狀態(tài)的線程,注意的是在調用此方法的時候,并

23、不能確切的喚醒某一個等待狀態(tài)的線程,而是由 JVM 確定喚醒哪個線程,而且不是按優(yōu)先級。Allnotity(): 喚醒所有處入等待狀態(tài)的線程,注意并不是給所有喚醒線程一個對象的鎖,而是讓它們競爭。Set集合、List集合和Map集合的區(qū)別Set 中的對象不按特定方式排序,并且沒有重復對象。但它的有些實現(xiàn)類能對集合中的對象按特 定方式 排序 , 例 如 TreeSet 類 , 它 可 以按 照默認 排序 , 也可 以 通過實現(xiàn) java.util.Comparator 接口來自定義排序方式。List 中的對象按照索引位置排序,可以有重復對象,允許按照對象在集合中的索引位置檢索對象,如通過list

24、.get(i)方式來獲得List集合中的元素。Map 中的每一個元素包含一個鍵對象和值對象,它們成對出現(xiàn)。鍵對象不能重復,值對象可以重復。Collection 和 Collections的區(qū)別。Collection 是集合類的上級接口,繼承與他的接口主要有Set 和 List.Collections 是針對集合類的一個幫助類,他提供一系列靜態(tài)方法實現(xiàn)對各種集合的搜索、排序、線程安全化等操作。Set 里的元素是不能重復的,那么用什么方法來區(qū)分重復與否呢 ? 是用 =還是 equals()? 它們有何區(qū)別 ?看 set 里存的是基本類型還是引用類型基本類型用=,引用類型用equals“ =”和eq

25、uals 的區(qū)別“=”操作比較的是兩個變量的值是否相等, 對于引用型變量表示的是兩個變量在堆中存儲的地址是否相同,即堆棧中的內容是否相同?!癳quals ”equals 操作表示的兩個變量是否是對同一個對象的引用,即堆中的內容是否相同。什么是 servlet?Servlet 是 SUN 推出的一套規(guī)范, 規(guī)定了如何用 Java 來開發(fā)動態(tài)網站。 也就是說, Java 可 以用來開發(fā)網站后臺,但是要遵循一定的標準。Jsp中的標簽有哪些Include 指令標簽表示包含一個靜態(tài)的或者動態(tài)的文件。語法:or注:1 、 page=path 為相對路徑,或者代表相對路徑的表達式。2 、 flush=tru

26、e 必須使用 flush 為 true ,它默認值是false。3、子句能讓你傳遞一個或多個參數(shù)給動態(tài)文件,也可在一個頁面中使用多個 來傳遞多個參數(shù)給動態(tài)文件。Forward 指令 標簽表示重定向一個靜態(tài)html/jsp 的文件,或者是一個程序段。語法:or 注:、 page=path 為一個表達式,或者一個字符串。、 name 指定參數(shù)名, value 指定參數(shù)值。參數(shù)被發(fā)送到一個動態(tài)文件,參數(shù)可以是一個或多個值,而這個文件卻必須是動態(tài)文件。要傳遞多個參數(shù),則可以在一個JSP:件中使用多個將多個參數(shù)發(fā)送到一個動態(tài)文件中。三、UseBean指令標簽表示用來在 JSP頁面中創(chuàng)建一個BEAN實例并

27、指定它的名字以 及作用范圍。語法:其中 typeSpec 有以下幾種可能的情況:class=className | class=className type=typeName | beanName=beanName type=typeName | type=typeName |注:你必須使用 class或type,而不能同時使用 class和beanName。beanName表示 Bean 的名字,其形式為“ a.b.c”。四、 GetProperty 指令 ?pr ?p?ti 標簽表示獲取 BEAN 的屬性的值并將之轉化為一個字符串,然后將其插入到輸出的頁面中。語法:注:1、在使用之前,必須用來創(chuàng)建它。2、不能使用 來檢索一個已經被索引了的屬性。3、能夠和 JavaBeans組件一起使用 ,但

溫馨提示

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

評論

0/150

提交評論