第一篇:java程序員經典筆試題
JAVA程序員筆試題
深圳市九城恩科軟件技術有限公司
java程序員筆試題
JAVA 程序員筆試題
時間:30分鐘
試題一:
簡單描述一下什么是事務管理,事務管理中有哪些語句?
姓名:
試題二:
跳出當前循環的關鍵詞是什么?繼續本次循環的關鍵詞是什么?
試題三:
在JSP頁面源代碼中寫 “${flag}”是代表什么意思?
試題四:
請寫出最少五種設計模式的名稱。
試題五:
請寫出Eclipse 中下列功能的快捷鍵: 刪除當前行: 注釋當前行:
代碼助手完成一些代碼的插入: 打開類型: 打開資源:
試題六:
什么情況下Eclipse不編譯生成Class文件?
深圳市九城恩科軟件技術有限公司
java程序員筆試題
試題七:
public static void main(String[] args) {
int i=3,j=16; do{ if(++i>=j--) continue; }while(i<9); System.out.println("i="+i+";j="+j);} 這段程序運行后輸出的結果是什么?
試題八:
public class One {
} public class Two extends One {
} protected void printA(){System.out.println("two A");} private void printB(){System.out.println("two B");} public static void main(String[] args) { Two t = new Two(); t.printAB();} protected void printA(){System.out.println("one A");} private void printB(){System.out.println("one B");} protected void printAB(){printA();printB();} 這段程序運行后輸出的結果是什么?
試題九:
有一個表 “表A” 中包含 “姓名”,“成績”兩個字段,請寫一個SQL語句查詢出“成績”大于60分的,“姓名”有重復的人的名字
試題十:
請寫一個方法實現:傳入的一個大于10位的字符串,把字符串的最后兩位移動到字符串的第4位后面。
第二篇:java程序員筆試題
姓名:聯系方式:考試開始時間:
Java程序員筆試題
一、單項選擇題(共10題,每題2分,共20分)
1. 下列說法哪一個是正確的。( B )
A.Java程序經編譯后會產生machine code
B.Java程序經編譯后會產生byte code
C.Java程序經編譯后會產生DLL
D.以上都不正確
2. 提供Java存取數據庫能力的包是。(A)
A.java.sqlB.java.awtC.java.langD.java.swing
3. 執行如下程序代碼后,C的值是。( C)
a=0;c=0;
do{
--c;
a=a-1;
}while(a>0);
A.0B.1C.-1D.死循環
4. 下面的語句中正確的表達式為。(C)
A.byte b = 128;
B.boolean n = null;
C.double d = 0.9239d;
D.float f = 0.9239;
5. 將一個十六進制值賦給一個long型變量的正確寫法為。(D
A.long number = 345L;
B.long number = 0345;
C.long number = 0345L;
D.long number = 0x345L;
6. 以下程序代碼的輸出是。(B )
public class test (
public static void main (String args[]) (
System.out.printIn (6 ^ 3);
)
)
A.3B.5C.6D.11
7. 以下程序代碼的輸出是。(E)
public class test (
private static int j = 0;
private static boolean methodB(int k) (
j += k;
)
return true;
)
public static void methodA(int i) {
boolean b:
b = i < 10 | methodB (4);
b = i < 10 || methodB (8);
)
public static void main (String args[] } (
methodA (0);
system.out.printIn(j);
)
)
A.0B.4C.8D.12E.不能編譯通過
8. 以下程序代碼的輸出是。( A)
public class test {
public static void add3 (Integer i) }
int val = i.intValue ( );
val += 3;
i = new Integer (val);
}
public static void main (String args [ ] ) {
Integer i = new Integer (0);
add3 (i);
system.out.printIn (i.intValue ( ) );
}
)
A.編譯失敗B.編譯成功但在第三行會出現異常
9. 以下程序代碼執行后,哪個說法正確?(B )
int index = 1;
boolean[] test = new Boolean[3];
boolean foo= test [index];
A.有異常拋出。
B.無法編譯。
C.foo的值是0。
D.foo的值是null。
E.foo的值是true。
F.foo的值是false。
10. 以下哪個類是swt包中的。(D)
A.MessageBoxB.MessageDialogC.JDialog
C.0D.3 D.DisplayMode
二、多項選擇題(共5題,每題4分,共20分)
1. 在下面的選項中合法的標識符有。(ADEF)
A._ok
B.*point
C.this
D.$byte
E.const
F.ILikeJLCSS
2. 下面的選項中哪些不是java的關鍵字。(AB D)
A.TRUE
B.sizeof
C.goto
D.const
E.super
F.void
3. 下面的敘述中正確的有。(AC)
A. 環境變量可在編譯source code時指定。
B. 在編譯程序時,所能指定的環境變量不包括class path。
C. javac一次可同時編譯數個Java源文件。
D. javac.exe能指定編譯結果要置于哪個目錄(directory)。
4. 下面的敘述中正確的有。(C)
A.equals()方法判定引用值是否指向同一對象。
B.= = 操作符判定兩個分立的對象的內容和類型是否一致。
C.equals()方法只有在兩個對象的內容一致時返回true。
D.類File重寫方法equals()在兩個分立的對象的內容和類型一致時返回true。
5. 下面有關變量及其作用域的陳述哪些是對的。(A C)
A.在方法里面定義的局部變量在方法退出的時候被撤銷。
B.局部變量也叫自動變量。
C.在方法外面定義的變量(譯注:即實例變量)在對象被構造時創建。
D.在方法中定義的方法的參變量只要該對象被需要就一直存在。
三、簡答題(共7題,共40分)
1. 請寫出一個輸出“Hello World!” 的程序。(3分)
答:public Class Hello World
{
Public static void main(String[]args)
{System.out.println(“HELLO WOTLD”);
}
}
2. char型變量中能不能存貯一個中文漢字? 為什么? (3分)
答:能存儲一個漢字;因為它能存儲四個字節而每個漢字只占兩個字節。
3. 常見的兩種xml解析技術是什么? 區別是什么? (4分)
答:常見的兩種有:SAX和DOM。
區別:SAX 是一種事件驅動的xml解析方式。每次訪問一個xml文件中的某個節點的時候,sax就會搜索一遍xml文件,在找到相應的節點后就會觸發一個事件來處理請求。只讀
DOM是一種基于樹狀的查找方式。DOM會將xml解析成一棵樹,存在內存中。開發者可以通過查找樹的節點來取得文件的內容或者修改內容??勺x寫
4. MVC是什么,如何實現? (5分)
答:MVC是一個是一個設計模式,它強制性的使應用程序的輸入,處理和輸出分開。
使用MVC應用程序被分為三個核心部件:M----------MODO模型,V ----------VIEW試圖,C --------- Contral控制
實現:首先有頁面(jsp)發送請求給控制器(servlet),然后由控制器接收用戶的請求,并決定應該調用哪個模型(javabean)來進行處理,然后模型用業務邏輯來處理用戶的請求并返回數據,最后控制器用相應的視圖格式化模型返回的數據,并通過表示層顯示給用戶。
5. .J2EE是什么?(6分)
答:J2EE 是Sun公司提出的多層(multi-diered),分布式(distributed),基于組件(component-base)的企業級應用模型 (enterpriese application model).在這樣的一個應用系統中,可按照功能劃分為不同的組件,這些組件又可在不同計算機上,并且處于相應的層次(tier)中。所屬層次包括客戶層(clietn tier)組件,web層和組件,Business層和組件,企業信息系統(EIS)層。
6. jsp有哪些內置對象?作用分別是什么? (9分)
答:1.request 用戶端請求,此請求會包含來自GET/POST請求的參數;2.response 網頁傳回用戶端的回應;3.pageContext 網頁的屬性是在這里管理;4.session 與請求有關的會話期;5.application servlet 正在執行的內容;6.out 用來傳送回應的輸出;7.config servlet的構架部件;8.page JSP網頁本身;9.exception 針對錯誤網頁,未捕捉的例外
7. 作用域public,private,protected,以及不寫時的區別 ?(10分)
答:作用域當前類同一package子孫類其他package
public√√√√
protected√√√×
friendly√√××
private√×××
不寫時默認為friendly
四、編碼及論述題(共2題,每題10分,共20分)
1. 什么是Singleton,它的作用是什么,它有幾種形式?請用代碼寫出一個Singleton類。
答:Java Singleton 模式用來保證在運行的應用程序中,一個Class只是實例化一次,也就是只有一個相應的對象存在。
它有三種形式
public class Singleton
{
private static Singleton instance = null;
public static synchronized Singleton getInstance()
{
if (instance==null)
instance=new Singleton();
return instance;
}
}
2. 在Struts + Spring + Hibernate的組合框架模式中,三者各自的特點都是什么?答:StrtusWEB層Spring是業務層Hiebenate是持久化層
第三篇:Java程序員的筆試題10道
中軟國際不久前出了10道對于java程序員基本功時候扎實的考題,不妨你也來測測看吧??聪聲椎李}目。
1、HashMap和Hashtable的區別。
都屬于Map接口的類,實現了將惟一鍵映射到特定的值上。HashMap 類沒有分類或者排序。它允許一個null 鍵和多個null 值。Hashtable 類似于HashMap,但是不允許null 鍵和null 值。它也比HashMap 慢,因為它是同步的,是線程的。
2、sleep() 和wait() 有什么區別?
sleep是線程類(Thread)的方法,導致此線程暫停執行指定時間,給執行機會給其他線程,但是監控狀態依然保持,到時后會自動恢復。調用sleep不會釋放對象鎖。wait是Object類的方法,對此對象調用wait方法導致本線程放棄對象鎖,進入等待此對象的等待鎖定池,只有針對此對象發出notify方法(或notifyAll)后本線程才進入對象鎖定池準備獲得對象鎖進入運行狀態。
3、Collection 和Collections的區別。
Collections是個java.util下的類,它包含有各種有關集合操作的靜態方法。
Collection是個java.util下的接口,它是各種集合結構的父接口。
4、什么時候用assert.assertion(斷言)在軟件開發中是一種常用的調試方式,很多開發語言中都支持這種機制。在實現中,assertion就是在程序中的一條語句,它對一個boolean表達式進行檢查,一個正確程序必須保證這個boolean表達式的值為true;如果該值為false,說明程序已經處于不正確的狀態下,系統將給出警告或退出。一般來說,assertion用于保證程序最基本、關鍵的正確性。assertion檢查通常在開發和測試時開啟。為了提高性能,在軟件發布后,assertion檢查通常是關閉的。
5、&和&&的區別。
& 是兩個數相與,是位運算符,&&是布爾邏輯運算符,連接兩個條件表達式的,兩個條件表達式都為真時,整個才為真
6、談談final, finally, finalize的區別。
final:修飾符(關鍵字)如果一個類被聲明為final,意味著它不能再派生出新的子類,不能作為父類被繼承。因此一個類不能既被聲明為abstract的,又被聲明為final的。將變量或方法聲明為final,可以保證它們在使用中不被改變。被聲明為final的變量必須在聲明時給定初值,而在以后的引用中只能讀取,不可修改。被聲明為final的方法也同樣只能使用,不能重載。
finally:在異常處理時提供finally 塊來執行任何清除操作。如果拋出一個異常,那么相匹配的catch 子句就會執行,然后控制就會進入finally 塊(如果有的話)。
finalize:方法名。 技術允許使用finalize() 方法在垃圾收集器將對象從內存中清除出去之前做必要的清理工作。這個方法是由垃圾收集器在確定這個對象沒有被引用時對這個對象調用的。它是在Object 類中定義的,因此所有的類都繼承了它。子類覆蓋finalize() 方法以整理系統資源或者執行其他清理工作。finalize() 方法是在垃圾收集器刪除對象之前對這個對象調用的。
7、Anonymous Inner Class (匿名內部類) 是否可以extends(繼承)其它類,是否可以implements(實現)interface(接口)?
匿名的內部類是沒有名字的內部類。不能繼承其它類,但一個內部類可以作為一個接口,由另一個內部類實現。
8、。Math.round(11.5)等於多少? Math.round(-11.5)等於多少?
Math.round(11.5)返回(long)12,Math.round(-11.5)返回(long)-11;因為返回最接近參數的long.通過加上1/2 將該結果舍入為整數,取結果的基數并將其強制轉換為long 類型。換句話說,結果等于以下表達式的值:(long)Math.floor(a + 0.5d)
9、Static Nested Class 和Inner Class的不同,說得越多越好(面試題有的很籠統)。
Static nested class(嵌套類)是將內部類聲明為static.普通內部類對象隱式地保存了一個引用,指向創建它的外圍類對象,不能有static數據和static字段。嵌套類意味著:1> 要創建嵌套類的對象,并不需要其外圍類的對象;2>不能從嵌套類的對象中訪問非靜態的外圍類的對象。
10、ArrayList和Vector的區別。
1>同步性:Vector是線程的,也就是說是同步的,而ArrayList是線程序不安全的,不是同步的2>數據增長:當需要增長時,Vector默認增長為原來一培,而ArrayList卻是原來的一半。
PS;本文檔由北大青鳥廣安門收集自互聯網,僅作分享之用。
第四篇:Java開發工程師筆試題
一、 單項選擇題(每題2分,共計30分)
1. 下列哪一種敘述是正確的
(A). abstract修飾符可修飾字段、方法和類
(B). 抽象方法的body部分必須用一對大括號{}包住
(C). 聲明抽象方法,大括號可有可無
(D). 聲明抽象方法不可寫出大括號
2. 如下代碼
public class Test {
public int aMethod() {
static int i = 0;
i++;
return i;
}
public static void main (String args[]) {
Test test = new Test();
test.aMethod();
int j = test.aMethod();
System.out.println(j);
}
}
輸出結果是什么?
(A). 0
(B). 1
(C). 2
(D). 編譯失敗
3. 以下代碼的輸出結果是()?
public class Test1{
public static void main(String[] args){int i = 42;
String s = (i < 40) ? "life" : (i > 50) ? "universe" : "everything";System.out.println(s);
}
}
(A). life
(B). universe
(C). everything
(D). 以上答案都不對。
4. 當你編譯和運行下面的代碼時,會出現下面選項中的哪種情況?
public class Test{
static boolean paddy;
public static void main(String[] args){
System.out.println(paddy);
}
}
(A). 編譯時出錯
(B). 編譯通過并輸出結果false
(C). 編譯通過并輸出結果true
(D). 編譯通過并輸出結果null
5. 如下代碼:
class Base {
public Base() {
System.out.print("Base");
}
}
public class Alpha extends Base {
public static void main( String[] args ) {
new Alpha();
new Base();
}
}
結果是什么?
(A). Base
(B). BaseBase
(C). 編譯失敗.
(D). 代碼運行但沒有輸出.
(E). 運行時拋出異常
6. 如下代碼:
public class Foo {
public static void main(String[] args) {
try {
return;
} finally {
System.out.println( "Finally" );
}
}
}
輸出結果是什么?
(A). Finally
(B). 編譯失敗
(C). 代碼正常運行但沒有任何輸出.
(D). 運行時拋出異常
7. 下列關于構造方法的敘述中,錯誤的是( )
(A). Java語言規定構造方法名與類名必須相同
(B). Java語言規定構造方法沒有返回值,但不用vold聲明
(C). Java語言規定構造方法不可以重載
(D). Java語言規定構造方法只能通過new自動調用
8. 構造函數何時被調用( )
(A). 類定義時
(B). 創建對象時
(C). 調用對象方法時
(D). 使用對象的變量時
9. JDBC中,用于表示數據庫連接的對象是:
(A). Statement
(B). Connection
(C). DriverManager
(D). PreparedStatement
10. 需要讀一個比較大的文本文件,這個文件里有很多字節數據,那么下列最合適讀這
類文件的選項是哪一個?
(A). new FileInputStream("myfile.txt");
(B). new InputStreamReader(new FileInputStream("myfile.txt"));
(C). new BufferedReader(new InputStreamReader(new FileInputStream("myfile.txt")));
(D). RandomAccessFile raf = new RandomAccessFile("myfile.txt", "+rw");
11. 在List,Map,Set等接口中,不能包含重復元素的接口是哪一個?
(A). List
(B). Map
(C). Set
(D). 都不是
12. 有如下程序:
1.classTest4{
2.public static void main (String []args){
3.boolean x=;
4.boolean y=false;
5.short z=42;
6.
7.if((z++==42)&&(y=true))z++; 8.if((x=false) || (++z==45))z++; 9. 10.System. out.println(“z=”+z); 11.} 12.} 結果為:
(A). 44
(B). 45
(C). 46
(D). 編譯出錯
13. 有如下程序
11. public class Test {
12. public static void main(String [] args) {
13.int x =5;
14.boolean b1 = true;
15.boolean b2 = false;
16.
17.if((x==4) && !b2)
18.System.out.print("l ");
19.System.out.print("2 ");
20.if ((b2 = true) && b1)
21.System.out.print("3");
22. }
23. }
運行的結果為:
(A). 2
(B). 3
(C). 1 2
(D). 2 3
(E). 1 2 3
(F). 編譯錯誤
(G). 拋出一個運行時異常
14. 以下語句有語法錯的是:
(A). int x=1;y=2;z=3
(B). for (int x=10,y=0;x>0;x++);
(C). while (x>5);
(D). for(; ;);
15. 下面有關類 Demo 的描述正確的有()
public class Demo extends Base{
private int count;
public Demo(){
System.out.println(“A Demo object has been created”);
}
protected void assone(){
count++;
}
}
(A). 當創建一個 Demo 類的實例對象時, count 的值為 0
(B). 當創建一個 Demo 類的實例對象時, count 的值是不確定的
(C). Base 類型的對象中可以包含改變 count 值的方法
(D). Demo 的子類對象可以訪問 count
二、
1.
2.
3.
4.
5.問答題(每題5分,共計25分) String是最基本的數據類型嗎? String 和StringBuffer的區別? Java中的“==”和equals()方法有什么區別? 描述一下JSP中轉發和重定向的區別? 請說出作用域public,private,protected,以及不寫時的區別? List, Set, Map是否繼承自Collection接口?分別說出它們的特點?
三、 編程題(每題15分,共計45分)
1.已知有一個數列:f(0) = 1,f(1) = 4,f(n+2)=2*f(n+1) + f(n),其中n是大于0的整數,求f(10)的值。
2.寫一個算法對1,8,5,2,4,9,7進行順序排列。
3.使用輸入輸出流的API實現文件拷貝功能。
第五篇:2017Java最新筆試題(附詳細答案)
下述二叉樹中,哪一種滿足性質:從任一結點出發到根的路徑上所經過的結點序列按其關鍵字有序():
本題主要考查了選項中出現的幾種樹的結構特點。對于選項A,根據二叉排序樹的結構特點我們可以知道,二叉排序樹的中序遍歷結果是一個有序序列,而在中序遍歷中,父結點并不總是出現在孩子結點的前面(或后面),故該選項不正確。例如我們用關鍵字5,2,3建立一棵二叉排序樹,則從結點3出發到根的路徑上所經過的結點序列為3,2,5,并不是一個有序的序列。對于選項B,赫夫曼樹在后續的章節中會介紹,根據赫夫曼樹的結構特點我們可以知道,在赫夫曼樹中所有的關鍵字只出現在葉結點上,其非葉結點上并沒有關鍵字值,顯然不正確。對于選項C,AVL樹其本質上也是一種二叉排序樹,只不過是平衡化之后的二叉排序樹,故該選項也是不正確的。例如我們用序列5,1,8,6,9建立一棵AVL樹,從結點6出發到根的路徑上所經過的結點序列為6,8,5,也不是一個有序的序列。對于選項D,堆的概念我們會在堆排序中給大家介紹,根據建堆的過程,不斷地把大者"上浮",將小者"篩選"下去,最終得到的正是一個從任一結點出發到根的路徑上所經過的結點序列按其關鍵字有序的樹狀結構,故D是正確的。 本題中的A和C同時出現,沒有起到干擾的作用,因為AVL樹和二叉排序樹只是在平衡性上有區別,在結點的排列方式上沒有區別。
下面關于線程的敘述中,正確的是()。 正確答案: C 你的答案: D (錯誤) 不論是系統支持線程還是用戶級線程,其切換都需要內核的支持 線程是資源的分配單位,進程是調度和分配的單位 不管系統中是否有線程,進程都是擁有資源的獨立單位 在引入線程的系統中,進程仍是資源分配和調度分派的基本單位 A:用戶級線程,切換時不需要內核的支持
B:線程是資源調度和分配的單位,進程是資源擁有的單位 C:對
D:引入線程后,線程才是資源分配和調度分派的基本單位
在引入線程前,進程的兩個基本屬性是:1.可擁有資源的獨立單位。2.可獨立調度和分配的基本單位。
后來為了使多個程序更好的并發執行,人們把上述兩個屬性分開,引入線程作為可獨立調度和分配的基本單位。
一條tcp連接,主動關閉的一方不可能出現的連接狀態是() 正確答案: A 你的答案: A (正確) CLOSE_WAIT FIN_WAIT2 TIME_WAIT FIN_WAIT1
1)當客戶端沒有主動close的時候就斷開連接,即客戶端發送的fin丟失或者失?。?1:這時候若客戶端斷開的時候發送了FIN包,則服務端將會處于CLOSE_WAIT狀態;2:
這時候若客戶端斷開的時候未發送FIN包,則服務端處還是顯示ESTABLISHED狀態
2) 當client想要關閉它與server之間的連接。client(某個應用進程)首先調用 close 主動關閉連接,這時TCP發送一個FIN M;client端處于 FIN_WAIT1 狀態。
3) 當server端接收到FIN M之后,執行被動關閉。對這個FIN進行確認,返回給client ACK。當server端返回給client ACK后,client處于 FIN_WAIT2 狀態,server處于 CLOSE_WAIT 狀態。它的接收也作為文件結束符傳遞給應用進程,因為FIN的接收
意味著應用進程在相應的連接上再也接收不到額外數據; 4) 一段時間之后,當server端檢測到client端的關閉操作(read返回為0)。接收到文件結束符的server端調用close 關閉它的socket。這導致server端的TCP也發送一個FIN N;此時server的狀態為last——ack .
5)當client收到來自server的FIN后 。 client端的套接字處于 TIME_WAIT 狀態,它會向server端再發送一個ack確認,此時server端收到ack確認后,此套接字處于CLOSED狀態。
介紹一下TCP連接建立與關閉過程中的狀態。TCP連接過程是狀態的轉換,促使狀態發生轉換的因素包括用戶調用、特定數據包以及超時等,具體狀態如下所示:
1. CLOSED :初始狀態,表示沒有任何連接。
2. LISTEN : Server 端的某個 Socket 正在監聽來自遠方的 TCP 端口的連接請求。
3. SYN_SENT :發送連接請求后等待確認信息。當客戶端 Socket 進行 Connect 連接時,會首先發送 SYN 包,隨即進入 SYN_SENT 狀態,然后等待 Server 端發送三次握手中的第 2 個包。
4. SYN_RECEIVED :收到一個連接請求后回送確認信息和對等的連接請求,然后等待確認信息。通常是建立TCP 連接的三次握手過程中的一個中間狀態,表示 Server 端的 Socket 接收到來自 Client 的 SYN 包,并作出回應。 ESTABLISHED :表示連接已經建立,可以進行數據傳輸。
5. FIN_WAIT_1 :主動關閉連接的一方等待對方返回 ACK 包。若 Socket 在 ESTABLISHED 狀態下主動關閉連接并向對方發送 FIN 包(表示己方不再有數據需要發送),則進入 FIN_WAIT_1 狀態,等待對方返回 ACK包,此后還能讀取數據,但不能發送數據。在正常情況下,無論對方處于何種狀態,都應該馬上返回 ACK包,所以 FIN_WAIT_1 狀態一般很難見到。
6. FIN_WAIT_2 :主動關閉連接的一方收到對方返回的 ACK 包后,等待對方發送 FIN 包。處于 FIN_WAIT_1 狀態下的 Socket 收到了對方返回的 ACK 包后,便進入 FIN_WAIT_2 狀態。由于 FIN_WAIT_2 狀態下的 Socket需要等待對方發送的 FIN 包,所有常??梢钥吹?。若在 FIN_WAIT_1 狀態下收到對方發送的同時帶有 FIN 和ACK 的包時,則直接進入 TIME_WAIT 狀態,無須經過 FIN_WAIT_2 狀態。
7. TIME_WAIT :主動關閉連接的一方收到對方發送的 FIN 包后返回 ACK 包(表示對方也不再有數據需要發送,此后不能再讀取或發送數據),然后等待足夠長的時間( 2MSL )以確保對方接收到 ACK 包(考慮到丟失 ACK 包的可能和迷路重復數據包的影響),最后回到 CLOSED 狀態,釋放網絡資源。 8. CLOSE_WAIT :表示被動關閉連接的一方在等待關閉連接。當收到對方發送的 FIN 包后(表示對方不再有數據需要發送),相應的返回 ACK 包,然后進入 CLOSE_WAIT 狀態。在該狀態下,若己方還有數據未發送,則可以繼續向對方進行發送,但不能再讀取數據,直到數據發送完畢。
9. LAST_ACK :被動關閉連接的一方在 CLOSE_WAIT 狀態下完成數據的發送后便可向對方發送 FIN 包(表示己方不再有數據需要發送),然后等待對方返回 ACK 包。收到 ACK 包后便回到 CLOSED 狀態,釋放網絡資源。 10. CLOSING :比較罕見的例外狀態。正常情況下,發送 FIN 包后應該先收到(或同時收到)對方的 ACK 包,再收到對方的 FIN 包,而 CLOSING 狀態表示發送 FIN 包后并沒有收到對方的 ACK 包,卻已收到了對方的FIN 包。有兩種情況可能導致這種狀態:其一,如果雙方幾乎在同時關閉連接,那么就可能出現雙方同時發送FIN 包的情況;其二,如果 ACK 包丟失而對方的 FIN 包很快發出,也會出現 FIN 先于 ACK 到達。 11. 數據庫恢復的基礎是利用轉儲的冗余數據。這些轉儲的冗余數據包括()
12. 正確答案: D 你的答案: A (錯誤) 13. 數據字典,應用程序,審計檔案,數據庫后備副本 14. 數據字典,應用程序,審計檔案,日志文件 15. 數據字典,應用程序,數據庫后備副本 16. 日志文件,數據庫后備副本
17. 題目說的是轉儲,轉儲只需要日志文件和后備數據就可以了 18. 數據字典只是用來定義數據庫,應用程序也是一個道理.... 19. 進程依靠()從阻塞狀態過渡到就緒狀態。 20. 正確答案: D 你的答案: D (正確) 21. 程序員的命令 22. 系統服務
23. 等待下一個時間片到來 24. "合作"進程的喚醒
25. 引起進程阻塞和喚醒的事件:
26.
1、向系統請求共享資源失敗。進程轉變為阻塞狀態。 27.
2、等待某種操作完成。比如進程啟動了I/O設備,必須等I/O操作完成后,進程才能繼續。
28.
3、 新數據尚未到達。對于合作的進程,如果一個進程A需要先獲得另一進程B提供的數據后,才能對該數據進程處理,只要數據尚未到達,進程A只能阻塞。當進程B提供數據后,便可以去喚醒進程A。
29.
4、等待新任務到達,用于特定的系統進程。它們每當完成任務后,就把自己阻塞起來,等待新任務。 30. 1.什么是正則表達式的貪婪與非貪婪匹配 31. 如:String str="abcaxc"; 32. Patter p="ab*c"; 33. 貪婪匹配:正則表達式一般趨向于最大長度匹配,也就是所謂的貪婪匹配。如上面使用模式p匹配字符串str,結果就是匹配到:abcaxc(ab*c)。
34. 非貪婪匹配:就是匹配到結果就好,就少的匹配字符。如上面使用模式p匹配字符串str,結果就是匹配到:abc(ab*c)。 35. 2.編程中如何區分兩種模式
36. 默認是貪婪模式;在量詞后面直接加上一個問號?就是非貪婪模式。
37. 量詞:{m,n}:m到n個 38. *:任意多個 39. +:一個到多個 40. ?:0或一個
41. 以上來自博主的博客,然后這道題目 42. .表示除 之外的任意字符 43. *表示匹配0-無窮
+表示匹配1-無窮
44. (?=Expression) 順序環視,(?=()就是匹配正括號 45. 懶惰模式正則:
src=".*? (?=()) " 46. 結果:北京市
47. 因為匹配到第一個"就結束了一次匹配。不會繼續向后匹配。因為他懶惰嘛。
A ".*?(?=()"
B ".*?(?=()" C ".*(?=()" D ".*(?=()" 前面的.*?是非貪婪匹配的意思, 表示找到最小的就可以了 (?=Expression) 順序環視,(?=()就是匹配正括號
String text = "北京市(海淀區)(朝陽區)(西城區)"; Pattern pattern = Pattern.compile(".*?(?=()" ); Matcher matcher = pattern.matcher(text); if (matcher.find()) { System.out.println(matcher.group(0)); } 10.下面這個題不能再做了!!!! classB extendsObject {
static
{
System.out.println("Load B");
} classA {
} } publicB() {
System.out.println("Create B"); } extendsB static {
System.out.println("Load A"); } publicA() {
System.out.println("Create A"); }
publicclassTestclass {
publicstaticvoidmain(String[] args)
{
newA();
} } 。。。。。。。。。。。。。。。。。。。
Load B ->Create B->Load A -> Create A Load B -> Load A ->Create B ->Create A Load B -> Create B-> Create A -> Load A Create B ->Create A ->Load B ->Load A 執行順序:
父類靜態代碼塊-》子類靜態代碼塊-》父類構造代碼塊-》父類構造函數-》子類構造代碼塊-》子類構造函數
11.下列有關Servlet的生命周期,說法不正確的是? 正確答案: A 你的答案: A (正確)
在創建自己的Servlet時候,應該在初始化方法init()方法中創建Servlet實例 在Servlet生命周期的服務階段,執行service()方法,根據用戶請求的方法,執行相應的doGet()或是doPost()方法
在銷毀階段,執行destroy()方法后會釋放Servlet 占用的資源 destroy()方法僅執行一次,即在服務器停止且卸載Servlet時執行該方法
Servlet的生命周期分為5個階段:加載、創建、初始化、處理客戶請求、卸載。
(1)加載:容器通過類加載器使用servlet類對應的文件加載servlet (2)創建:通過調用servlet構造函數創建一個servlet對象 (3)初始化:調用init方法初始化
(4)處理客戶請求:每當有一個客戶請求,容器會創建一個線程來處理客戶請求
(5)卸載:調用destroy方法讓servlet自己釋放其占用的資源
12.下面有關JAVA swing的描述,說法錯誤的是? 正確答案: C 你的答案: A (錯誤)
Swing是一個基于Java的跨平臺MVC框架。使用單線程模式。 Swing 是為了解決 AWT 存在的問題而新開發的包,它以 AWT 為基礎的
Swing優化了AWT,運行速度比AWT快 Swing是一個基于組件的框架,所有的組件都是從javax.swing.JComponent類繼承來的。
Swing是一個用于開發Java應用程序用戶界面的開發工具包。它以抽象窗口工具包(AWT)為基礎使跨平臺應用程序可以使用任何可插拔的外觀風格。Swing開發人員只用很少的代碼就可以利用Swing豐富、靈活的功能和模塊化組件來創建優雅的用戶界面。
工具包中所有的包都是以swing作為名稱,例如javax.swing,javax.swing.event 用Swing創建圖形界面步驟:
(1)導入Swing包
(2)選擇界面風格
(3)設置頂層容器
(4)設置按鈕和標簽
(5)將組件放到容器上
(6)為組件增加邊框
(7)處理事件
(8)輔助技術支持 1。導入Swing包
下面語句導入Swing包 importjavax.swing.*; 大部分Swing程序用到了AWT的基礎底層結構和事件模型,因此需要導入兩個包: importjava.awt.*; importjava.awt.event.*; 如果圖形界面中包括了事件處理,那么還需要導入事件處理包: importjavax.swing.event.*; 2.選擇界面風格
Swing允許選擇程序的圖形界面風格常用的有java風格,windows風格等
下面的代碼用于選擇圖形界面風格,這里選擇的是跨平臺的Java界面風格。
try { UIManager.setLookAndFeel( UIManager.getCrossPlatformLookAndFeelClassName( )); } catch (Exception e) { } (3) 設置頂層容器
圖形界面至少要有一個頂級Swing容器
頂級Swing容器為其它Swing組件在屏幕上的繪制和處理事件提供支持
常用的頂級容器:
JFrame(框架):表示主程序窗口
JDialog(對話框):每個JDialog對象表示一個對話框,對話框屬于二級窗口
JApplet(小程序):在瀏覽器內顯示一個小程序界面 一個框架包括邊界、菜單欄、工具欄、狀態欄,以及中間占主要部分的窗格
窗格也可以看作是一種面板,但它是框架的一個組成部分
組件不會直接放到框架上,而是放在若干個面板上,這些面板再放到窗格上
用框架對象的getContentPane()函數來獲得窗格,再調用窗格的add()函數放置面板
public static void main(String[ ]args){JFrame frame=new JFrame("SwingApplication"); JPanel panel1=new JPanel(); frame.getContentPane().add(panel1,BorderLayout.CENTER); ......//添加其他組件
frame.pack();frame.setVisible(true);}
13.super.getClass().getName() 返回:包名+類名
14.以下關于對象序列化描述正確的是 正確答案: C D a.使用FileOutputStream可以將對象進行傳輸 b.使用PrintWriter可以將對象進行傳輸 c.使用transient修飾的變量不會被序列化 d.對象序列化的所屬類需要實現Serializable接口 ….. C和D transient這個單詞本身的意思就是瞬時的意思 transient是變量修飾符 變量定義為transient的,序列化時會忽略此字段,所以C是對的, 只有實現了Serializable接口的,才可以被序列化. 能夠對對象進行傳輸的貌似只有ObjectOutputStream和ObjectInputStream這些以Object開頭的流對象。
3、D項繼承Seriallizable接口是經常見到的,這毋庸置疑。
4、transient 修飾的變量在對象串化的時侯并不會將所賦值的值保存到傳中,串化的對象從磁盤讀取出來仍然是null。
5、這值得說下Volatile這個修飾符,它是針對多線程情況下出現的。當線程讀取它修飾的變量時,都會強迫從主存中重新讀取。