華為JAVA inteview topics
JAVA 方面1 面向?qū)ο蟮奶卣饔心男┓矫?br>2 String 是最基本的數(shù)據(jù)類型嗎?
3 int 和 Integer 有什么區(qū)別
4 String 和StringBuffer 的區(qū)別
5 運(yùn)行時(shí)異常與一般異常有何異同?
異常表示程序運(yùn)行過程中可能出現(xiàn)的非正常狀態(tài),運(yùn)行時(shí)異常表示虛擬機(jī)的通常
操作中可能遇到的異常,是一種常見運(yùn)行錯(cuò)誤。java 編譯器要求方法必須聲明拋
出可能發(fā)生的非運(yùn)行時(shí)異常,但是并不要求必須聲明拋出未被捕獲的運(yùn)行時(shí)異
常。
6 說出一些常用的類,包,接口,請各舉5 個(gè)
7 說出ArrayList,Vector, LinkedList 的存儲性能和特性
ArrayList 和Vector 都是使用數(shù)組方式存儲數(shù)據(jù),此數(shù)組元素?cái)?shù)大于實(shí)際存儲的
數(shù)據(jù)以便增加和插入元素,它們都允許直接按序號索引元素,但是插入元素要涉
及數(shù)組元素移動等內(nèi)存操作,所以索引數(shù)據(jù)快而插入數(shù)據(jù)慢,Vector 由于使用了
synchronized 方法(線程安全),通常性能上較ArrayList 差,而LinkedList 使用
雙向鏈表實(shí)現(xiàn)存儲,按序號索引數(shù)據(jù)需要進(jìn)行前向或后向遍歷,但是插入數(shù)據(jù)時(shí)
只需要記錄本項(xiàng)的前后項(xiàng)即可,所以插入速度較快。
8 設(shè)計(jì)4 個(gè)線程,其中兩個(gè)線程每次對j 增加1,另外兩個(gè)線程對j 每次減少1。
寫出程序。
以下程序使用內(nèi)部類實(shí)現(xiàn)線程,對j 增減的時(shí)候沒有考慮順序問題。
public class ThreadTest1{
private int j;
public static void main(String args[]){
ThreadTest1 tt=new ThreadTest1();
Inc inc=tt.new Inc();
Dec dec=tt.new Dec();
for(int i=0;i<2;i++){
Thread t=new Thread(inc);
t.start();
t=new Thread(dec);
t.start();
}
}
private synchronized void inc(){
j++;
System.out.println(Thread.currentThread().getName()+"-inc:"+j);
}
private synchronized void dec(){
j--;
System.out.println(Thread.currentThread().getName()+"-dec:"+j);
}
class Inc implements Runnable{
public void run(){
for(int i=0;i<100;i++){
inc();
}
}
}
class Dec implements Runnable{
public void run(){
for(int i=0;i<100;i++){
dec();
}
}
}
}
9.JSP 的內(nèi)置對象及方法。
request request 表示HttpServletRequest 對象。它包含了有關(guān)瀏覽器請求的信息,并且提
供了幾個(gè)用于獲取cookie, header, 和session 數(shù)據(jù)的有用的方法。
response response 表示HttpServletResponse 對象,并提供了幾個(gè)用于設(shè)置送回 瀏覽器的
響應(yīng)的方法(如cookies,頭信息等)
out out 對象是javax.jsp.JspWriter 的一個(gè)實(shí)例,并提供了幾個(gè)方法使你能用于向?yàn)g覽器回
送輸出結(jié)果。
pageContext pageContext 表示一個(gè)javax.servlet.jsp.PageContext 對象。它是用于方便存
取各種范圍的名字空間、servlet 相關(guān)的對象的API,并且包裝了通用的servlet 相關(guān)功能的
方法。
session session 表示一個(gè)請求的javax.servlet.http.HttpSession 對象。Session 可以存貯用
戶的狀態(tài)信息
application applicaton 表示一個(gè)javax.servle.ServletContext 對象。這有助于查找有關(guān)
servlet 引擎和servlet 環(huán)境的信息
config config 表示一個(gè)javax.servlet.ServletConfig 對象。該對象用于存取servlet 實(shí)例的初
始化參數(shù)。
page page 表示從該頁面產(chǎn)生的一個(gè)servlet 實(shí)例
10.用socket 通訊寫出客戶端和服務(wù)器端的通訊,要求客戶發(fā)送數(shù)據(jù)后能夠回顯
相同的數(shù)據(jù)。
參見課程中socket 通訊例子。
11 說出Servlet 的生命周期,并說出Servlet 和CGI 的區(qū)別。
Servlet 被服務(wù)器實(shí)例化后,容器運(yùn)行其init 方法,請求到達(dá)時(shí)運(yùn)行其service 方
法,service 方法自動派遣運(yùn)行與請求對應(yīng)的doXXX 方法(doGet,doPost)等,
當(dāng)服務(wù)器決定將實(shí)例銷毀的時(shí)候調(diào)用其destroy 方法。
與cgi 的區(qū)別在于servlet 處于服務(wù)器進(jìn)程中,它通過多線程方式運(yùn)行其service
方法,一個(gè)實(shí)例可以服務(wù)于多個(gè)請求,并且其實(shí)例一般不會銷毀,而CGI 對每
個(gè)請求都產(chǎn)生新的進(jìn)程,服務(wù)完成后就銷毀,所以效率上低于servlet。
12.EJB 是基于哪些技術(shù)實(shí)現(xiàn)的?并說出SessionBean 和EntityBean 的區(qū)別,
StatefulBean 和StatelessBean 的區(qū)別。
13.EJB 包括(SessionBean,EntityBean)說出他們的生命周期,及如何管理事務(wù)
的?
14.說出數(shù)據(jù)連接池的工作機(jī)制是什么?
15 同步和異步有和異同,在什么情況下分別使用他們?舉例說明。
16 應(yīng)用服務(wù)器有那些?
17 你所知道的集合類都有哪些?主要方法?
18 給你一個(gè):驅(qū)動程序A,數(shù)據(jù)源名稱為B,用戶名稱為C,密碼為D,數(shù)據(jù)庫表為T,
請用JDBC 檢索出表T 的所有數(shù)據(jù)。
19.說出在JSP 頁面里是怎么分頁的?
頁面需要保存以下參數(shù):
總行數(shù):根據(jù)sql 語句得到總行數(shù)
每頁顯示行數(shù):設(shè)定值
當(dāng)前頁數(shù):請求參數(shù)
頁面根據(jù)當(dāng)前頁數(shù)和每頁行數(shù)計(jì)算出當(dāng)前頁第一行行數(shù),定位結(jié)果集到此行,對
結(jié)果集取出每頁顯示行數(shù)的行即可。
數(shù)據(jù)庫方面:
1. 存儲過程和函數(shù)的區(qū)別
存儲過程是用戶定義的一系列sql 語句的集合,涉及特定表或其它對象
的任務(wù),用戶可以調(diào)用存儲過程,而函數(shù)通常是數(shù)據(jù)庫已定義的方法,
它接收參數(shù)并返回某種類型的值并且不涉及特定用戶表。
2. 事務(wù)是什么?
事務(wù)是作為一個(gè)邏輯單元執(zhí)行的一系列操作,一個(gè)邏輯工作單元必須有四個(gè)
屬性,稱為 ACID(原子性、一致性、隔離性和持久性)屬性,只有這樣才能成
為一個(gè)事務(wù):
原子性
事務(wù)必須是原子工作單元;對于其數(shù)據(jù)修改,要么全都執(zhí)行,要么全都不執(zhí)行。
一致性
事務(wù)在完成時(shí),必須使所有的數(shù)據(jù)都保持一致狀態(tài)。在相關(guān)數(shù)據(jù)庫中,所有規(guī)則
都必須應(yīng)用于事務(wù)的修改,以保持所有數(shù)據(jù)的完整性。事務(wù)結(jié)束時(shí),所有的內(nèi)部
數(shù)據(jù)結(jié)構(gòu)(如 B 樹索引或雙向鏈表)都必須是正確的。
隔離性
由并發(fā)事務(wù)所作的修改必須與任何其它并發(fā)事務(wù)所作的修改隔離。事務(wù)查看數(shù)據(jù)
時(shí)數(shù)據(jù)所處的狀態(tài),要么是另一并發(fā)事務(wù)修改它之前的狀態(tài),要么是另一事務(wù)修
改它之后的狀態(tài),事務(wù)不會查看中間狀態(tài)的數(shù)據(jù)。這稱為可串行性,因?yàn)樗軌?br>重新裝載起始數(shù)據(jù),并且重播一系列事務(wù),以使數(shù)據(jù)結(jié)束時(shí)的狀態(tài)與原始事務(wù)執(zhí)
行的狀態(tài)相同。
持久性
事務(wù)完成之后,它對于系統(tǒng)的影響是永久性的。該修改即使出現(xiàn)系統(tǒng)故障也將一
直保持。
3. 游標(biāo)的作用?如何知道游標(biāo)已經(jīng)到了最后?
游標(biāo)用于定位結(jié)果集的行,通過判斷全局變量@@FETCH_STATUS 可以判
斷是否到了最后,通常此變量不等于0 表示出錯(cuò)或到了最后。
4. 觸發(fā)器分為事前觸發(fā)和事后觸發(fā),這兩種觸發(fā)有和區(qū)別。語句級觸發(fā)和
行級觸發(fā)有何區(qū)別。
事前觸發(fā)器運(yùn)行于觸發(fā)事件發(fā)生之前,而事后觸發(fā)器運(yùn)行于觸發(fā)事件發(fā)
生之后。通常事前觸發(fā)器可以獲取事件之前和新的字段值。
語句級觸發(fā)器可以在語句執(zhí)行前或后執(zhí)行,而行級觸發(fā)在觸發(fā)器所影響
的每一行觸發(fā)一次。
posted on 2007-04-11 09:38 crazy zerlot 閱讀(429) 評論(0) 編輯 收藏 所屬分類: Interview & Job