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.-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有效标识符的有________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