1) 加載驅(qū)動
2) 創(chuàng)建數(shù)據(jù)庫連接
3) 創(chuàng)建執(zhí)行sql的語句
4) 執(zhí)行語句
5) 處理執(zhí)行結(jié)果
6) 釋放資源
public class Throwable extends Object implementsSerializable
Throwable 類是Java語言中所有錯誤或異常的超類。只有當(dāng)對象是此類(或其子類之一)的實例時,才能通過Java虛擬機(jī)或者Java throw 語句拋出。類似地,只有此類或其子類之一才可以是 catch 子句中的參數(shù)類型。兩個子類的實例,Error 和 Exception,通常用于指示發(fā)生了異常情況。通常,這些實例是在異常情況的上下文中新近創(chuàng)建的,因此包含了相關(guān)的信息(比如堆棧跟蹤數(shù)據(jù))。
1)Array數(shù)組可以包含基本類型和對象類型, ArrayList卻只能包含對象類型。
2) Array數(shù)組在存放的時候一定是同種類型的元素。ArrayList就不一定了,因為ArrayList可以存儲Object。
3)Array的空間大小是固定的,空間不夠時也不能再次申請,所以需要事前確定合適的空間大小。
ArrayList的空間是動態(tài)增長的,如果空間不夠,它會創(chuàng)建一個空間比原空間大一倍的新數(shù)組,然后將所有元素復(fù)制到新數(shù)組中,接著拋棄舊數(shù)組。而且,每次添加新的元素的時候都會檢查內(nèi)部數(shù)組的空間是否足夠。(比較麻煩的地方)。
4)方法上的比較:ArrayList作為Array的增強(qiáng)版,當(dāng)然是在方法上比Array更多樣化,比如添加全部addAll()、刪除全部removeAll()、返回迭代器iterator()等。
5)適用場景:
如果想要保存一些在整個程序運(yùn)行期間都會存在而且不變的數(shù)據(jù),我們可以將它們放進(jìn)一個全局?jǐn)?shù)組里,但是如果我們單純只是想要以數(shù)組的形式保存數(shù)據(jù),而不對數(shù)據(jù)進(jìn)行增加等操作,只是方便我們進(jìn)行查找的話,那么,我們就選擇ArrayList。而且還有一個地方是必須知道的,就是如果我們需要對元素進(jìn)行頻繁的移動或刪除,或者是處理的是超大量的數(shù)據(jù),那么,使用ArrayList就真的不是一個好的選擇,因為它的效率很低,使用數(shù)組進(jìn)行這樣的動作就很麻煩,那么,我們可以考慮選擇LinkedList。
(1)、如果把變量放到pageContext里,就說明它的作用域是page,它的有效范圍只在當(dāng)前jsp頁面里。 從把變量放到pageContext開始,到jsp頁面結(jié)束,你都可以使用這個變量
(2)、如果把變量放到request里,就說明它的作用域是request,它的有效范圍是當(dāng)前請求周期。所謂請求周期,就是指從http請求發(fā)起,到服務(wù)器處理結(jié)束,返回響應(yīng)的整個過程。在這個過 程中可能使用forward的方式跳轉(zhuǎn)了多個jsp頁面,在這些頁面里你都可以使用這個變量。
(3)如果把變量放到session里,就說明它的作用域是session,它的有效范圍是當(dāng)前會話。所謂當(dāng)前會話,就是指從用戶打開瀏覽器開始,到用戶關(guān)閉瀏覽器這中間的過程。這個過程可能包含多個請求響應(yīng)。也就是說,只要用戶不關(guān)瀏覽器,服務(wù)器就有辦法知道這些請求是一個人發(fā)起的,整個過程被稱為一個會話(session),而放到會話中的變量,session默認(rèn)的實效時間是30分鐘,可在web.xml里面或者tomcat配置文件里修改!
(4)如果把變量放到application里,就說明它的作用域是application,它的有效范圍是整個應(yīng)用。整個應(yīng)用是指從應(yīng)用啟動,到應(yīng)用結(jié)束
所謂“作用域”就是“信息共享的范圍”,也就是說一個信息能夠在多大的范圍內(nèi)有效。
JSP中九個內(nèi)置對象及其相應(yīng)所屬作用域如下表:
|
編號 |
對象 |
所屬作用域 |
作用域描述 |
|
1 |
request |
request |
在當(dāng)前請求中有效 |
|
2 |
response |
page |
在當(dāng)前頁面有效 |
|
3 |
out |
page |
在當(dāng)前頁面有效 |
|
4 |
session |
session |
在當(dāng)前會話中有效 |
|
5 |
application |
application |
在所有應(yīng)用程序中有效 |
|
6 |
config |
page |
在當(dāng)前頁面有效 |
|
7 |
pageContext |
page |
在當(dāng)前頁面有效 |
|
8 |
page |
page |
在當(dāng)前頁面有效 |
|
9 |
Exception |
page |
在當(dāng)前頁面有效 |
request對象是javax.servlet.http.HttpServletRequest對象的一個實例。每當(dāng)客戶端請求頁面時,JSP引擎將創(chuàng)建一個新對象來表示該請求。
request對象提供了獲取包括表單數(shù)據(jù),Cookie,HTTP方法等HTTP頭信息的方法。
response對象是javax.servlet.http.HttpServletResponse對象的一個實例。就像服務(wù)器創(chuàng)建request對象一樣,它還創(chuàng)建一個對象來表示對客戶端的響應(yīng)。
response對象還定義了處理創(chuàng)建新HTTP頭的接口。通過此對象,JSP程序員可以添加新的Cookie或日期戳,HTTP狀態(tài)代碼等。
out隱式對象是javax.servlet.jsp.JspWriter對象的一個實例,用于在響應(yīng)中發(fā)送內(nèi)容。
初始化JspWriter對象根據(jù)頁面是否緩存而不同地實例化。緩沖可以通過使用page指令的buffered ='false'屬性來關(guān)閉。
JspWriter對象包含與java.io.PrintWriter類大部分相同的方法。但是,JspWriter還有一些額外的方法用來處理緩沖。與PrintWriter對象不同,JspWriter會拋出IOExceptions異常。
session對象是javax.servlet.http.HttpSession的一個實例,其行為與Java Servlet下的會話對象行為完全相同。
session對象用于跟蹤客戶端請求之間的客戶端會話。
application對象是生成的Servlet的ServletContext對象的直接包裝,實際上是javax.servlet.ServletContext對象的一個實例。
application對象是JSP頁面在其整個生命周期中的表示。當(dāng)JSP頁面被初始化時,將創(chuàng)建此對象,并且在JSP頁面被jspDestroy()方法刪除時application對象也將被刪除。
通過向application對象添加屬性值,可以確保組成Web應(yīng)用程序的所有JSP文件都可以訪問它。
config對象是javax.servlet.ServletConfig的實例化,是生成的servlet的ServletConfig對象周圍的直接包裝。
pageContext對象是javax.servlet.jsp.PageContext對象的一個實例。pageContext對象用于表示整個JSP頁面。
page對象是對該頁面實例的實際引用。可以認(rèn)為它是表示整個JSP頁面的對象。
page對象是this對象的直接同義詞。
exception對象是一個包含上一頁拋出的異常的包裝器。它通常用于生成對錯誤條件的適當(dāng)響應(yīng)。
【Java面試題】22JAVA語言如何進(jìn)行異常處理,關(guān)鍵字:throws,throw,try,catch,finally分別代表什么意義?在try塊中可以拋出異常嗎?
MyBatis的動態(tài)SQL是基于OGNL表達(dá)式的,它可以幫助我們方便的在SQL語句中實現(xiàn)某些邏輯。
MyBatis中用于實現(xiàn)動態(tài)SQL的元素主要有:
1) if
2) choose(when,otherwise)
3) trim
4) where
5) set
6) foreach
通過類本身來獲得對象,通過子類的實例獲取父類對象,通過類名加.class獲取對象
1) 其他方法前是否加了synchronized關(guān)鍵字,如果沒加,則能。
2) 如果這個方法內(nèi)部調(diào)用了wait,則可以進(jìn)入其他synchronized方法。
3) 如果其他個方法都加了synchronized關(guān)鍵字,并且內(nèi)部沒有調(diào)用wait,則不能。
4) 如果其他方法是static,它用的同步鎖是當(dāng)前類的字節(jié)碼,與非靜態(tài)的方法不能同步,因為非靜態(tài)的方法用的是this。
12、接口是否可繼承(extends)接口?抽象類是否可實現(xiàn)(implements)接口?抽象類是否可繼承具體類(concreteclass)?
接口可以繼承接口,而且支持多重繼承。抽象類可以實現(xiàn)(implements)接口。抽象類可繼承具體類也可以繼承抽象類。
13、隨機(jī)產(chǎn)生20個字符并且排序?要求字符不能相同?
import java.util.HashSet;
import java.util.Random;
import java.util.Set;
import java.util.TreeSet;
public class bb {
public static void main(String[] args) {
Set noreapeat =new TreeSet();
Random rdm = new Random();
while (noreapeat.size()<20){
int bb=Math.abs(rdm.nextInt())%26+97;
char cc =(char)bb;
noreapeat.add(cc);
}
System.out.println(noreapeat);
}
}
注:treeSet本身就具有去重排序作用
本站文章版權(quán)歸原作者及原出處所有 。內(nèi)容為作者個人觀點(diǎn), 并不代表本站贊同其觀點(diǎn)和對其真實性負(fù)責(zé),本站只提供參考并不構(gòu)成任何投資及應(yīng)用建議。本站是一個個人學(xué)習(xí)交流的平臺,網(wǎng)站上部分文章為轉(zhuǎn)載,并不用于任何商業(yè)目的,我們已經(jīng)盡可能的對作者和來源進(jìn)行了通告,但是能力有限或疏忽,造成漏登,請及時聯(lián)系我們,我們將根據(jù)著作權(quán)人的要求,立即更正或者刪除有關(guān)內(nèi)容。本站擁有對此聲明的最終解釋權(quán)。