Java测试题
1.選擇填空題:
????選擇題全部為多選題,只有全部正確才能得分。
編譯java程序的命令是__javac____;運(yùn)行java程序的命令是____java__;產(chǎn)生java文擋的命令是_____javadoc___;查詢java類型是否是serializable類型的命令是___serialver_____;產(chǎn)生java安全策略文件的命令是_____policytool___;產(chǎn)生類型歸檔文件.jar的命令是_____jar___。
A. java ????????????B. javac ????????????C. serialver
D.javadoc ??????????E.policytool ?????????F.jar
2.在一個java原文件中,import, class, package語句的順序是______G__。
A:import class package
B:class import package
C:package class import
D:import package class
E:class package import
G: ?package import class
3.下面敘述正確的有___BC_________________。
A:在一個java原文件中只能定義一個class
B:在一個java原文件中只能定義一個interface
C:在一個java原文件中可以定義多個class
D:在一個java原文件中可以定義多個interface
E:在一個java原文件中可以定義多個class和interface
F:在一個java原文件中只能定義public class
G:java原文件的前綴一定是所包含類型的名字
4.java程序中程序運(yùn)行入口方法main的簽名正確的有____AB____。
A:public static void main(String args[])
B:static public void main(String[] args)
Cpublic void static main(String[] args)
D:public void main(String args[])
5:java程序中程序入口方法main的參數(shù)代表命令行輸入?yún)?shù),命令行參數(shù)從____A____開始。
A. 0 ????????????B. 1 ????????????C.-1
6:以下屬于正確的java注釋有___ACD_____。
A. //This is comment ?????????B. /*This is comment
C. /**This is comment*/ ??????D. /*This is comment*/
7:以下能作為class, interface, method或variable有效標(biāo)識符的有__________ADF______。
A For ????????????B.boolean ??????C.23age
D. _id ?????E.my name ?????F. $this_is_a_long_variable_name
8:以下不是java關(guān)鍵字的有___D_____。
A. super ??????C.this ??????D.NULL ?????E.true
9:以下能作為char類型的字面值的有__AC______。
A. “e”???????????B.’f’????????C. ‘\u12’??????D.’\u0012’
10: byte變量的取值范圍是____B____。
A. 0 - 65535 ???B.-128 –?127 ??C.-256 –?255 ???D.0 - 32767
11:以下正確的有__A______。
?
12:以下返回true的表達(dá)式有__C____。
A. “george”?== “george”?????????B.”george”?= “george”
C. “george”.equals(new String(“george”))
D. “george”?== new String(“george”)
13:根據(jù)以下程序選擇正確答案______C__:
public class Test {
? static int total = 10;
? public static void main (String args []) {
? new Test();
? }
? public Test () {
? System.out.println("In test");
? System.out.println(this);
? int temp = this.total;
? if (temp > 5) {
? ????System.out.println(temp);
? }
? }
?}
A. 編譯出錯 ??????????B.運(yùn)行時有異常 ?????C. 編譯運(yùn)行都正確
14下面集合定義正確的有____B__D__。
A:String strs[] = { ‘a(chǎn)’?‘b’?‘c’}; ?
B:String[] strs = {“a”, “b”, “c”};
C. String[] strs = new String{“a”?”b”?”c”};
D.String strs[] = new String[]{“a”, “b”, “c”};
E.String[] strs = new String[3]{“a”, “b”, “c”};
15.分別使用for, while, do/while循環(huán)實(shí)現(xiàn)從1到100的累加。
1): for
?
2): while
?
3): do-while
?
16.以下switch表達(dá)語句正確的有___AC_____。
A:public void switchTest(char c){//char byte int short
switch(c){…}
}
B. public void switchTest(long c){
switch(c){…}
}
C. public void switchTest(byte c){
switch(c){…}
}
D. public void switchTest(double c){
switch(c){…}
}
在面向?qū)ο缶幊讨?#xff0c;一個類型由________、________和________組成。面向?qū)ο蟮奶匦园?/span>________、________和________。在java中訪問權(quán)限的限制由嚴(yán)格到寬松依次是____E____、____H____、____B____和___A_____。
A.public ?B.protected C.identifier ?D.data ?E.private ??????????????F.operations ????G.inheritance ?????H.default(no modifier) ??
?I.encapsulation ????J.polymorphism
以下方法申明正確的有________________。
A.public static synchronized void writeLog(String msg)
B. synchronized public static writeLog(String msg)
C. public final abstract void writeLog(String msg)
D.final public void writeLog(String msg)
E.abstract synchronized void writeLog(String msg)
Java方法的參數(shù)傳遞對于基本數(shù)據(jù)類型如int, byte等,參數(shù)傳遞是________;對自定義數(shù)據(jù)類型,參數(shù)傳遞是________。
A. by reference ?B.by pointer ?????C. by value ?????D.by address
?
如下程序:
public class ArugmentTest{
static class IntA{
??private int a;
??public IntA(int a){ this.a = a; }
??public int getA() { return a; }
??public void setA(int a){ this.a = a; }
}
?
static public void change(int a){
??a = 3;
}
?
static public void change(IntA a){
??a.setA(3);
}
?
static public void changeRef(IntA a){
??a = new IntA(9);
}
?
public static void main(String[] args){
???int a = 2;
???change(a);
???System.out.print(a);
???IntA ia = new IntA(5);
???change(ia);
???System.out.print(ia.getA());
???changeRef(ia);
???System.out.println(ia.getA());
}
}
在控制臺上輸出的是________。
A. 2 3 3 ????B.333 ?????C.259 ??????D.339 ??????E.239
下面程序出錯的有________行。
1. class Student{
2. ?private String name; private int age;
public Student(){}
public void setName(String name){ this.name=name; }
void setAge(int age){ this.age= age; }
}
public class StudentTest{
?public void static main(String[] args){
???Student s = new Student();
???s.name = “Hellen”;
???s.setAge(20);
?}
}
方法重載(overloading)必須滿足________。
A. 在不同class中定義的方法 ????B.在同一類型中定義的方法
C. 方法名必須相同 ?????????????D.返回類型必須相同
E. 參數(shù)一定不同 ???????????????F.參數(shù)可以相同
對于構(gòu)造方法(constructor)描述正確的有________。
A. 構(gòu)造方法沒有返回類型 ??????B.構(gòu)造方法一定是public的方法
C.如果我們沒有顯示定義構(gòu)造方法,系統(tǒng)會提供一個缺省的
D.構(gòu)造方法不能重載
在java語法中允許________繼承,________方法不能被繼承,________被繼承,顯示調(diào)用父類型的構(gòu)造方法是通過調(diào)用________來完成的。
A. constructor ???B. single ???C. methods ???D. fields ??E. super
以下對于方法覆蓋(overriding)的說法正確的有________。
A.方法覆蓋發(fā)生在同一類中 ?B.方法的覆蓋發(fā)生在子類型中
C.方法名一定要一樣 ???????D.參數(shù)一定要一樣
E.返回類型可以不一樣 ?????F.訪問權(quán)限只能一樣
G.如有異常,子類型中拋出的異常與父類型中的一致或是其子類型
H.靜態(tài)方法可以被靜態(tài)方法覆蓋
請看以下程序:
class Vehicle {
?????public void drive() {
?????????System.out.println("Vehicle: drive");
?????}
?}
???
?class Car ??extends Vehicle {
?????public void drive() {
?????????System.out.println("Car: drive");
?????}
?}
???
?public class Test {
?????public static void main (String args []) {
?????????Vehicle v;
?????????Car c;
?????????v = new Vehicle();
?????????c = new Car();
?????????v.drive();
?????????c.drive();
?????????v = c;
?????????v.drive();
?????}
?}
以下描述正確的有________。
A.對于語句v=c;會導(dǎo)致編譯錯誤 ?B.對于語句v=c;會導(dǎo)致運(yùn)行錯誤
C.運(yùn)行輸出:
Vehicle: drive
Car: drive
Car: drive
D.運(yùn)行輸出:
Vehicle: drive
Car: drive
Vehicle: drive
程序:
??public class StaticTest {
????static {
???????System.out.println("Hi there");
????}
????public void print() {
???????System.out.println("Hello");
????}
????public static void main(String args []) {
???????StaticTest st1 = new StaticTest();
???????st1.print();
???????StaticTest st2 = new StaticTest();
???????st2.print();
????}
?}
什么時候字符串“Hi there”會輸出________。
A.永遠(yuǎn)都不會輸出 ?????????B.創(chuàng)建st1和st2時
C.第一次將StaticTest類型裝載進(jìn)內(nèi)存時 ??D.顯示調(diào)用print方法時
以下描述正確的有________。
A. final class不能被繼承 ???????B.final變量不能被修改
C.final成員變量可以在構(gòu)造方法中賦值
D.final方法不能被覆蓋(overriden)
以下描述正確的有________。
A.abstract class一定有abstract method(s)
B.abstract class可以沒有abstract method(s)
C.定義abstract class的目的是為了被繼承
D.interface中定義的方法全是abstract methods
E.interface中定義的變量全部是final static變量
inner class的類型有________。
A.member inner class ????????B.static inner class
C.local inner class ???????????D.anonymous inner class
E.public inner class ???????????F.global inner class
?
一個匿名的內(nèi)置類有可能________。
A.繼承其他的類 ????????????????B.實(shí)現(xiàn)了某一接口
C.定義了構(gòu)造方法 ??????????????D.可以使用成員變量
如果你想將一組對象按一定順序存取,在不考慮并發(fā)訪問的情況下會使用________, 反之則會使用________;如果你想存儲一組無序但唯一的對象,你會使用________; 如果你想按關(guān)鍵字對對象進(jìn)行存取,在不考慮并發(fā)訪問的情況下會使用________, 反之則會使用________。
A.Vector ???????????B.HashSet ???????????C.ArrayList
D.HashMap ????????E.Hashtable ??????????????
程序代碼:
public class ExceptionTest{
???public double div(double a, double b){
??????try{
?????????return a/b;
??????}catch(Exception e){
?????????System.out.println(“Exception thrown”);
??????}finally{
?????????System.out.println(“Release resources.”);
}
}
?
public static void main(String[] args){
???ExceptionTest et = new ExceptionTest();
???et.div(1, 2);
???et.div(3.4, 0);
}
}
可能產(chǎn)生的結(jié)果是________:
A. 編譯不成功 ?????????????B.無法運(yùn)行
C.程序運(yùn)行輸出為:
??????Release resources.
Exception thrown
Release resources.
________又叫做unchecked exception。 Checked Exception通常繼承________。在方法簽名上指定可能有異常產(chǎn)生用關(guān)鍵字________, 在程序中產(chǎn)生異常用關(guān)鍵字________。獲得異常的簡單描述信息調(diào)用方法________, 獲得詳細(xì)的異常棧信息調(diào)用方法________。
A. RuntimeException ???????B. Exception ??????C. getMessage
D. throw ?E.throws ??????????F.printStackTrace
在圖形編程中,將不同的控件按區(qū)域排列用________布局管理器;讓控件自動排列并保持大小用________布局管理器;讓控件按相同大小排列用________布局管理器;一次只有一個控件可見的布局管理器是________。
A. CardLayout ?????????B. GridLayout ?
C. FlowLayout ?????????D. BorderLayout
圖形編程通常按__________________順序。
A.設(shè)置布局管理器(Layout manager) ?????B.向容器中增加控件
C.選擇容器 ?????D.為控件設(shè)置事件處理器
完成如下代碼,按照FlowLayout的布局方式向JFrame中添加一JButton:
JFrame frame = new JFrame(“Simple GUI”);
FlowLayout fl = new FlowLayout();
frame.__________________;
JButton btn = new JButton(“OK”);
frame._____________________;
事件處理方式采用了observer(觀察者)設(shè)計模式,事件編程模式三要素是________、________和________。其中,?________通常繼承java.util.EventObject, ________通常繼承java.util.EventListener。
A.Event source ??????????B.Event object
C.Event listener ?????????D.Helper ?????????E.Model
JButton是________事件的事件源,它通過方法________注冊事件偵聽器, 事件偵聽器必須實(shí)現(xiàn)接口________,當(dāng)事件發(fā)生時偵聽器的方法________被調(diào)用,在此方法中調(diào)用________的方法________可以獲得事件源。
A. addActionListener ???????B. ActionEvent
C.ActionListener ????????D.getSource ???????E.actionPerformed
40.JFrame的卻省布局管理器是______, JDialog的卻省布局管理器是______, JPanel的卻省布局管理器是________。
A. FlowLayout ???????????B.BorderLayout ????
C.GridLayout ????????????D.GridBagLayout
41.在swing編程中,用作提示信息的控件是________, 作單行文本編輯的控件是________, 用作多行文本編輯的控件是________,可編輯HTML等類型文檔的控件是________,在界面上顯示多條記錄并可多重選擇的控件是________, 從下拉框中選擇記錄的空間是________。
A. JTextArea ??????B. JList ???????C. JComboBox ??????????
D. JTextField ??????E. JEditorPane ??????????F. JLabel
42.swing圖形界面通常都會有菜單控件,所有的菜單都加到________;菜單的類型是________;在菜單上會有選項(xiàng)類型________。
JMenuItem ??????????B.JCheckBoxMenuItem
C.JMenuBar ????????D.JRadioButtonMenuItem ???????E.JMenu
43.一個applet如果使用了swing控件,這個applet必須繼承________; 控制applet生命周期的方法有________個,它們是________ 。applet是嵌入在html頁面的java程序,放置________標(biāo)簽中,它的屬性包含________。Applet要調(diào)用html頁面里提供的定制參數(shù),調(diào)用方法________,要在瀏覽器的狀態(tài)欄顯示信息調(diào)用方法________。
A. Applet ????????????B.JApplet ???????????C. 兩個
D.三個 ??????????????E.四個 ?????????????F.init,start
G.init,start,stop,destory ?H.init,start,destory ????I.applet
J.code ?K.codebase ?????L.getParameter ????M.showStatus
44.創(chuàng)建線程(Thread)的方式有兩種,一種是繼承類________,另一種是實(shí)現(xiàn)接口________。啟動線程的方法是________。線程啟動后運(yùn)行的是________里的代碼。
A.run ??B.Thread ?????C.Runnable ???????D.start
45.完成以下代碼創(chuàng)建并啟動線程:
public class TestThread implements Runnable{
????public void run(){
????????for(int i = 0; i < 10000; i++)
???????????System.out.println(i);
????}
?
???public static void main(String[] args){
???????TestThread tt = new TestThread();
???????Thread t = ________;
???????t.________;
}
}
46.判斷一個線程是否被中斷,調(diào)用方法________;中斷一個線程,調(diào)用方法________;等待一個線程退出,調(diào)用方法________;一個線程放棄執(zhí)行權(quán)利調(diào)用方法________。
A. interrupt ?????B.join ?????????C.isInterrupted ???????D.yield
47.并發(fā)控制是多線程編程的難點(diǎn)。一個線程要等待某個條件的滿足調(diào)用方法________;通知某一個處于等待狀態(tài)線程的方法是________,通知多個的是________;處于等待狀態(tài)的線程當(dāng)前調(diào)用的方法或程序塊用關(guān)鍵字________來限制。
A.notify ??????B.wait ???????C.synchronized ??????D.notifyAll
48.對原始數(shù)據(jù)的讀寫,采用流________和________,為了提高性能,采用流________和________;對各種基本數(shù)據(jù)類型和String類型的讀寫,采用流________和________;讀寫文本類型采用________和________,方便讀寫文本行采用流________和________;對象讀寫采用流________和________;能指定字符編碼的I/O流類型是________和________。
A. InputStream ??????B.DataInputStream ??????C. Reader
D.InputStreamReader ?E.BufferedReader F.BufferedInputStream ??????????????????????G.DataOutputStream ??H.OutputStream ????I.BufferedOutputStream ???J.Writer ??K.PrintWriter ?????L.ObjectInputStream ?????M.ObjectOutputStream ?N.OutputStreamWriter ?
49.在當(dāng)前工作目錄下有一個用GBK編碼的文本文件conf.txt,完成如下代碼塊能正確讀該文件的每一行:
FileInputStream fis = ________________;
InputStreamReader isr = ________________;
BufferedReader br = ________________;
String line = ________;
50.一個File對象是文件或目錄在內(nèi)存中的表示,File類型中定義了方法______來判斷一個文件是否存在,定義方法________創(chuàng)建一個新文件,定義方法________刪除一個文件,定義方法________改變文件名,定義方法________創(chuàng)建一級目錄,定義方法________同時創(chuàng)建一個目錄層次。對原始數(shù)據(jù)類型文件的操作用文件I/O流________和________;對文本文件操作用文件I/O流________和________;同時對一個文件進(jìn)行讀寫操作用文件流________。
A.createNewFile ????B.renameTo ???????C.delete ???????D.exists
E.mkdirs ??????????F.mkdir ???????????G.FileReader ??
H.FileInputStream ??I.RandomAccessFile ?J.FileWriter ???
K.FileOutputStream
51.在unix服務(wù)器www.openlab.com.cn上提供了基于TCP的時間服務(wù)應(yīng)用,該應(yīng)用使用port為13。創(chuàng)建連接到此服務(wù)器的語句是________。
Socket s = new Socket(“www.openlab.com.cn”, 13);
Socket s = new Socket(“www.openlab.com.cn:13”);
Socket s = accept(“www.openlab.com.cn”, 13);
52.創(chuàng)建一個TCP服務(wù)程序,該程序運(yùn)行在port為6868,完成以下代碼,實(shí)現(xiàn)一個多線程的服務(wù)程序:
________ ss = new ________;
while(true){
??Socket clientRequest = ss.________;
??service(clientRequest);
}
53.創(chuàng)建一個tcp客戶程序的順序是________。
獲得I/O流
關(guān)閉I/O流
對I/O流進(jìn)行讀寫操作
建立socket
關(guān)閉socket
54.創(chuàng)建一個tcp服務(wù)程序的順序是________。
創(chuàng)建一個服務(wù)線程處理新的連接
創(chuàng)建一個服務(wù)器socket
從服務(wù)器socket接受客戶連接請求
在服務(wù)線程中,從socket中獲得I/O流
對I/O流進(jìn)行讀寫操作,完成與客戶的交互
關(guān)閉socket
關(guān)閉I/O流
55.可以通過使用URL和URLConnection類型來完成基于HTTP/FTP的遠(yuǎn)程通訊,完成以下代碼讀取Tarena網(wǎng)站www.tarena.com.cn的首頁內(nèi)容:
??URL tarenaFirstPage = ________;
???InputStream is = tarenaFirstPage.________;
???BufferedReader br = ________;
???String line = null;
???while((line = br.readLine()) != null) System.out.println(line);
56.Java UDP編程主要用到的兩個類型是________和________。發(fā)送和接收信息的方法是________。
A.UDPSocket ????????????B.DatagramSocket
C.UDPPacket ????????????D.DatagramPacket
E.read/write ?????????????F.send/receive
Lab部分(前三題必須完成,4、5至少完成一個):
Unix系統(tǒng)的用戶信息通常都放置在/etc/passwd文件中,每個用戶的信息占用一行,文件格式如下:
?username:password:uid: gid:gcos-field:home-dir:login-shell
每個用戶都會屬于不同的組,組信息通常放置在/etc/group文件中,每個組信息占用一行,文件格式如下:
groupname:password: gid:user-list
一個用戶可以屬于不同的組,一個組也可以包含多個用戶。用戶信息中的password和gcos-field信息,組信息中的password信息在我們的系統(tǒng)中被忽略。現(xiàn)在要建立一個用戶管理系統(tǒng),將所有的類型都放置在tarena.com.usermgmt包下:
盡量采用JavaBean的方式建立類型User和Group,類型除了包含以上提供的信息外,還要反映出兩個類型之間的關(guān)系,同時這兩個類型的對象能在網(wǎng)絡(luò)上傳輸;
創(chuàng)建類型DataBuilder,通過解析字符串(文件/etc/passwd和/etc/group中的串)創(chuàng)建User和Group對象,DataBuilder類圖為:
?
?
創(chuàng)建類型FileAnalyzer, 讀取文件/etc/passwd和/etc/group的內(nèi)容,使用DataBuilder,將文件內(nèi)容完全反映到內(nèi)存中;
編寫一個Socket的客戶程序UserClient,將3中產(chǎn)生的用戶和組對象傳遞到服務(wù)器上;
編寫一個Socket 的多線程服務(wù)程序UserServer,接收UserClient發(fā)送的對象,并在內(nèi)存中形成所有服務(wù)器上的用戶和組的內(nèi)存映像。
轉(zhuǎn)載于:https://www.cnblogs.com/justdoitba/articles/8064685.html
總結(jié)
- 上一篇: markdownpad2自定义githu
- 下一篇: Redis保存Java Session