Core Java試題
選擇填空題:全部為多選題,只有全部正確才能得分。
1.?編譯java程序的命令是__B_;運行java程序的命令是____A____;產生java文擋的命令是_____D___;查詢java類型是否是serializable類型的命令是___C_____;產生java安全策略文件的命令是____E____;產生類型歸檔文件.jar的命令是____F____。
A. java ??B. Javac C. serialver
D.javadoc E.policytool ?F.jar
2.?在一個java原文件中,import, class, package語句的順序是___F____。
A.?import class package
B.?class import package
C.?package class import
D.?import package class
E.?class package import
F.?package import class
3.?下面敘述正確的有_________CDE___________。
A.?在一個java原文件中只能定義一個class
B.?在一個java原文件中只能定義一個interface
C.?在一個java原文件中可以定義多個class
D.在一個java原文件中可以定義多個interface
E.?在一個java原文件中可以定義多個class和interface
F.?在一個java原文件中只能定義public class
G.?java原文件的前綴一定是所包含類型的名字
4.?java程序中程序運行入口方法main的簽名正確的有____AB____。
A.?public static void main(String args[])
B.?static public void main(String[] args)
C.?public void static main(String[] args)
D.?public void main(String args[])
5.?java程序中程序入口方法main的參數代表命令行輸入參數,命令行參數從__A___開始。
A. 0???????????? B.-1C.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有效標識符的有________ADF________。
A.?For???????????? B.boolean?????? C.23age
D. _id????? E.my name????? F. $this_is_a_long_variable_name
8.?以下不是java關鍵字的有____D____。
A. super?????? C.this?????? D.NULL????? E.true
9.?以下能作為char類型的字面值的有___BD__。
A. “e”?????????? B.’f’??????? C. ‘\u12'????? D.’\u0012'
10.??byte變量的取值范圍是____B____。
A. 0 - 65535??? B.-128 –127 C .-256 – 255??? D.0 - 32767
11.?以下正確的有____AC____。
A. int i = 32;????????? B.float f = 45.32;????????? C. double d=3.2;
12.?以下返回true的表達式有_____AC___。A. “george” == “george”???????? ???????????? B.”george” = “george”
C. “george”.equals(new String(“george”)) ?? D. “george” == new String(“george”)
13.?根據以下程序選擇正確答案____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.運行時有異常C.編譯運行都正確
14.?下面集合定義正確的有____BD____。
A. String strs[] = { ‘a’ ‘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循環實現從1到100的累加。
1)?for
2)?while
3)? do-while
16.?以下switch表達語句正確的有___AC_____。
A.?public void switchTest(char c){
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){…}
}
17.?在面向對象編程中,一個類型由____C____、____D____和_____F___組成。面向對象的特性包括____G____、___I_____和___J_____。在java中訪問權限的限制由嚴格到寬松依次是___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
18.?以下方法申明正確的有_________AD_______。
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)
19.?Java方法的參數傳遞對于基本數據類型如int, byte等,參數傳遞是____C____;對自定義數據類型,參數傳遞是___A_____。
A. by reference? ?? B.by pointer????? C. by value????? D.by address
20.?如下程序:
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.259?????? D.339
21.?下面程序出錯的有____2____行。
1. class Student{
2.? private String name; private int age;
3.?public Student(){}
4.?public void setName(String name){ this.name=name; }
5.?void setAge(int age){ this.age= age; }
6.?}
7.?public class StudentTest{
8.???public void static main(String[] args){
9.?Student s = new Student();
10.??s.name = “Hellen”;
11.?s.setAge(20);
12.??}
13.?}
22.?方法重載(overloading)必須滿足____BCE____。
A.在不同class中定義的方法B.在同一類型中定義的方法
C.方法名必須相同D.返回類型必須相同
E.參數一定不同F.參數可以相同
23.?對于構造方法(constructor)描述正確的有____AC____。
A.構造方法沒有返回類型B.構造方法一定是public的方法
C.果我們沒有顯示定義構造方法,系統會提供一個缺省的
D.構造方法不能重載
24.?在java語法中允許___B_____繼承,___A_____方法不能被繼承,____CD____被繼承,顯示調用父類型的構造方法是通過調用____E____來完成的。
A. constructor??? B. single??? C. methods??? D. fields?? E. super
25.?以下對于方法覆蓋(overriding)的說法正確的有____BCDGH____。
A.方法覆蓋發生在同一類中B.方法的覆蓋發生在子類型中
C.方法名一定要一樣D.參數一定要一樣
E.返回類型可以不一樣F.訪問權限只能一樣
G.如有異常,子類型中拋出的異常與父類型中的一致或是其子類型
H.靜態方法可以被靜態方法覆蓋
26.?請看以下程序:
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; //Vehicle v =new car
v.drive();
}
}
以下描述正確的有___C_(多態)____。
A.對于語句v=c;會導致編譯錯誤B.對于語句v=c;會導致運行錯誤
C.運行輸出:
Vehicle: drive
Car: drive
Car: drive
D.運行輸出:
Vehicle: drive
Car: drive
Vehicle: drive
27.?程序:
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”會輸出___C_____。
Class c = Class.forName("Static Test");
A.永遠都不會輸出B.創建st1和st2時
C.第一次將StaticTest類型裝載進內存時D.顯示調用print方法時
28.?以下描述正確的有___ABCD_____。
A. final class不能被繼承B.final變量不能被S修改
C.final成員變量可以在構造方法中賦值
D.final方法不能被覆蓋(overriden)
29.?以下描述正確的有___BCDE_____。
A.abstract class一定有abstract method(s)
B.abstract class可以沒有abstract method(s)
C.定義abstract class的目的是為了被繼承
D.interface中定義的方法全是abstract methods
E.interface中定義的變量全部是final static變量
30.?inner class的類型有____ABCD____。
A.member inner class???????? B.static inner class
C.local inner class??????????? D.anonymous inner class
E.public inner class??????????? F.global inner class
31.?一個匿名的內置類有可能__ABD______。
A.繼承其他的類B.實現了某一接口
C.定義了構造方法D.可以使用成員變量
32.?如果你想將一組對象按一定順序存取,在不考慮并發訪問的情況下會使用____C____,反之則會使用____A____;如果你想存儲一組無序但唯一的對象,你會使用____B____;如果你想按關鍵字對對象進行存取,在不考慮并發訪問的情況下會使用___D_____,反之則會使用_____E___。
A.Vector??????????? B.HashSet??????????? C.ArrayList
D.HashMap???????? E.Hashtable
33.?程序代碼:
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);
}
}
可能產生的結果是_____A___:
A.編譯不成功B.無法運行
C.程序運行輸出為:
Release resources.
Exception thrown
Release resources.
34.?_____A___又叫做unchecked exception。Checked Exception通常繼承___B_____。在方法簽名上指定可能有異常產生用關鍵字____E____,在程序中產生異常用關鍵字____D____。獲得異常的簡單描述信息調用方法_____C___,獲得詳細的異常棧信息調用方法___F_____。
A. RuntimeException??????? B. Exception?????? C. getMessage
D. throw? E.throws?????????? F.printStackTrace
35.?在圖形編程中,將不同的控件按區域排列用___D_____布局管理器;讓控件自動排列并保持大小用____C____布局管理器;讓控件按相同大小排列用_____B___布局管理器;一次只有一個控件可見的布局管理器是_____A___。
A. CardLayout????????? B. GridLayout
C. FlowLayout????????? D. BorderLayout
36.?圖形編程通常按_____CABD_____順序。
A.設置布局管理器(Layout manager)????? B.向容器中增加控件
C.選擇容器D.為控件設置事件處理器
37.?完成如下代碼,按照FlowLayout的布局方式向JFrame中添加一JButton:
JFrame frame = new JFrame(“Simple GUI”);
FlowLayout fl = new FlowLayout();
frame._getContentPane().setLayout(fl);
JButton btn = new JButton(“OK”);
frame.getContPane().add(btn);
38.?事件處理方式采用了observer(觀察者)設計模式,事件編程模式三要素是____A____、____B____和____C____。其中,____B____通常繼承java.util.EventObject, _____C___通常繼承java.util.EventListener。
A.Event source?????????? B.Event object
C.Event listener????????? D.Helper????????? E.Model
39.?JButton是____B____事件的事件源,它通過方法_____A___注冊事件偵聽器, 事件偵聽器必須實現接口_____C___,當事件發生時偵聽器的方法____E____被調用,在此方法中調用____B____的方法____D____可以獲得事件源。
A. addActionListener??????? B. ActionEvent
C.ActionListener???????? D.getSource??????? E.actionPerformed
40.?JFrame的卻省布局管理器是__B____, JDialog的卻省布局管理器是__B____, JPanel的卻省布局管理器是___A_____。
A. FlowLayout??????????? B.BorderLayout
C.GridLayout???????????? D.GridBagLayout
41.?在swing編程中,用作提示信息的控件是___F_____,作單行文本編輯的控件是____D____,用作多行文本編輯的控件是__A______,可編輯HTML等類型文檔的控件是_____E___,在界面上顯示多條記錄并可多重選擇的控件是____B____,從下拉框中選擇記錄的空間是____C____。
A. JTextArea?????? B. JList??????? C. JComboBox
D. JTextField?????? ?????????? F. JLabel
42.?swing圖形界面通常都會有菜單控件,所有的菜單都加到____C____;菜單的類型是___E_____;在菜單上會有選項類型___ABDE_____。
A.?JMenuItem?????????? B.JCheckBoxMenuItem
C.JMenuBar?????????? D.JRadioBoxMenuItem??????? E.JMenu
43.?一個applet如果使用了swing控件,這個applet必須繼承________;控制applet生命周期的方法有________個,它們是________。applet是嵌入在html頁面的java程序,放置________標簽中,它的屬性包含________。Applet要調用html頁面里提供的定制參數,調用方法________,要在瀏覽器的狀態欄顯示信息調用方法________。
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.?創建線程(Thread)的方式有兩種,一種是繼承類____B____,另一種是實現接口____C___。啟動線程的方法是___D_____。線程啟動后運行的是____A____里的代碼。
A.run?? B.Thread????? C.Runnable??????? D.start
45.?完成以下代碼創建并啟動線程:
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 = ____new Thread()____;
t.__start(tt)______;
}
}
46.?判斷一個線程是否被中斷,調用方法_____C___;中斷一個線程,調用方法___A_____;等待一個線程退出,調用方法___B_____;一個線程放棄執行權利調用方法___D_____。
A. interrupt????? B.join????????? C.isInterrupted??????? D.yield
47.?并發控制是多線程編程的難點。一個線程要等待某個條件的滿足調用方法___B_____;通知某一個處于等待狀態線程的方法是____A____,通知多個的是____D____;處于等待狀態的線程當前調用的方法或程序塊用關鍵字____C____來限制。
A.notify ?B.wait ?C.synchronized ?D.notifyAll
48.?對原始數據的讀寫,采用流____A____和____H____,為了提高性能,采用流____F____和____I____;對各種基本數據類型和String類型的讀寫,采用流____B____和___G_____;讀寫文本類型采用____C____和____J____,方便讀寫文本行采用流____E____和____K____;對象讀寫采用流___L_____和____M____;能指定字符編碼的I/O流類型是___D_____和____N____。
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.?在當前工作目錄下有一個用GBK編碼的文本文件conf.txt,完成如下代碼塊能正確讀該文件的每一行:
FileInputStream fis = ___new FlieInputStream(“conf.txt”)_____________;
InputStreamReader isr = _____new InputStreamReader(fis,”GBK”)___________;
BufferedReader br = _new BufferReader(isr);
String line =br.readline();
50.?一個File對象是文件或目錄在內存中的表示,File類型中定義了方法__D____來判斷一個文件是否存在,定義方法____A____創建一個新文件,定義方法___C_____刪除一個文件,定義方法______B__改變文件名,定義方法___F_____創建一級目錄,定義方法___E_____同時創建一個目錄層次。對原始數據類型文件的操作用文件I/O流_____H___和_____K___;對文本文件操作用文件I/O流_____G___和____J____;同時對一個文件進行讀寫操作用文件流____I____。
A.createNewFile???? B.renameTo? C.delete??????? D.exists
E.mkdirs?????????? F.mkdir??????????? G.FileReader
H.FileInputStream?? I.RandomAccessFile? J.FileWriter
K.FileOutputStream
51.?在unix服務器www.openlab.com.cn上提供了基于TCP的時間服務應用,該應用使用port為13。創建連接到此服務器的語句是_____A___。
A.?Socket s = new Socket(“www.openlab.com.cn”, 13);
B.?Socket s = new Socket(“www.openlab.com.cn:);
C.?Socket s = accept(“www.openlab.com.cn”, 13);
52.?創建一個TCP服務程序,該程序運行在port為6868,完成以下代碼,實現一個多線程的服務程序:
___ServerSocket_____ ss = new __ServerSocket(“6868”)______;
while(true){
Socket clientRequest = ss.__accept()______;
service(clientRequest);
}
53.?創建一個tcp客戶程序的順序是__DACBE______。
A.?獲得I/O流
B.?關閉I/O流
C.?對I/O流進行讀寫操作
D.?建立socket
E.?關閉socket
54.?創建一個tcp服務程序的順序是____BCADEGF____。
A.?創建一個服務線程處理新的連接
B.?創建一個服務器socket
C.?從服務器socket接受客戶連接請求
D.?在服務線程中,從socket中獲得I/O流
E.?對I/O流進行讀寫操作,完成與客戶的交互
F.?關閉socket
G.?關閉I/O流
55.?可以通過使用URL和URLConnection類型來完成基于HTTP/FTP的遠程通訊,完成以下代碼讀取Tarena網站www.tarena.com.cn的首頁內容:
URL tarenaFirstPage = _new URL(“http://www.tarena.com.cn”)_______;
InputStream is = tarenaFirstPage.__openStream()______;
BufferedReader br = ___new_BufferedReader(new InputStream(is))____;
String line = null;
while((line = br.readLine()) != null) System.out.println(line);
56.?Java UDP編程主要用到的兩個類型是___B_____和____D____。發送和接收信息的方法是____F____。
A.UDPSocket???????????? B.DatagramSocket
C.UDPPacket???????????? D.DatagramPacket
E.read/write????????????? F.send/receive