JAVA开发工程师测试题
单项选择题:
1. 下面关于Java的说法哪些是错误的?
A. Java是一种完全面向对象的程序设计语言 B. Java支持goto语句
C. Java提供了许多机制来保证程序的健壮性和安全性 D. 同一个Java程序可以在不同硬件或操作系统上运行 答案:B
2. Java是一种编译型语言还是解释型语言?
A. Java是一种编译型语言 B. Java是一种解释型语言
C. Java是一种兼有编译和解释的语言,Java通过解释型方式将源文件变为目标文件,再通过编译型方式将目标文件变为可执行文件,这样可提高Java程序的运行速度
D. Java是一种兼有编译和解释的语言,Java通过编译型方式将源文件变为目标文件,再通过解释型方式将目标文件变为可执行文件 答案:D
3. 用JSDK编译源代码文件Hello.java的命令是什么?
A. java Hello.java B. javac Hello.java C. compile Hello.java D. build Hello.java 答案:B
4. 用JSDK运行类Hello的二进制码文件的命令是什么?
A. java Hello.class B. java hello.class C. java Hello D. java hello 答案:C
5. 若要编写一个类Hello,下列说法中哪些是错误的?
A. 源代码文件必须叫做Hello.java或者hello.java,否则编译出错 B. 编译后生成的二进制码文件为Hello.class C. 运行的命令为java Hello
D. 若将文件Hello.class改名为hello.class,那么用命令java hello也可以运行 答案:D
6. 下面哪些是Java关键字?
A. NULL B. true C. sizeof
D. implements 答案:D
7. 关于Java的变量,下面的说法中哪些是错误的?
A. 方法中的临时变量在使用之前必须初始化
B. 常量必须在声明时初始化
C. 对象的实例变量会自动初始化为初始值 D. 可以使用中文字符串作为变量名 答案:B
8. 下面哪些不是Java的基本数据类型?
A. byte B. char C. String D. boolean 答案:C
9. 下列语句中正确的有哪些?
A. short y = 5,000; B. byte w = 3.1415926; C. int x = 300;
D. long u = 6000000000; 答案:C
10. 下面的代码输出什么结果?
byte a = (byte)0410; System.out.println(a); A. 0 B. -102 C. 264 D. 8 答案:D
11. 变量a为byte类型,变量b为short类型,那么a+b的运算结果是什么类型?
A. byte B. short C. int D. long 答案:C
12. 下面一段代码的输出是什么?
int x=10, y=11; int z = x+++y;
System.out.println(\"x=\"+x+\" y=\"+y+\" z=\"+z); A. x=11 y=11 z=21 B. x=11 y=11 z=22 C. x=10 y=12 z=21 D. x=10 y=12 z=22 答案:A
13. 下面一段代码,如果b1与b2相等输出\"b1 equals b2.\",横线上应该使用什么运算符?
boolean b1, b2; ……
if(b1___b2) System.out.println(\"b1 equals b2.\"); A. &&
B. ^ C. | D. = = 答案:D
14. 下面一段代码执行结束后,y的值为多少?
int x = 0; int y = 1; do { if (x<5) y*=x; else y+=x; }while(++x<10); A. 35 B. 45 C. 65 D. 95 答案:A
15. 下面一段代码运行结束后,b的值为多少?
int b = 10;
for(int a=1;a<=4;a++) { switch(a) { case 1: b+=a; break; case 2: b-=a; break; case 3: b+=a; case 4: b-=a; } } A. 10 B. 6 C. 5 D. 4 答案:C
16. 第6行的语句和第8行的语句分别跳转到什么位置?
1 test: for (i=1; i<10; i++) { 2 int x = 0; 3 while (x<10) { 4 x++; 5 if (x == i) 6 continue test; 7 else if(x==9) 8 break test; 9 } 10 }
11 x = j;
A. 第6行跳到第3行while的条件判断语句x<10,第8行跳到第10行 B. 第6行跳到第1行for的更新语句i++,第8行跳到第11行 C. 第6行跳到第1行for的更新语句i++,第8行跳到第10行
D. 第6行跳到第3行while的条件判断语句x<10,第8行跳到第11行 答案:B
17. 下面哪条语句是合法的?
A. int[] ia = new int [15]; B. float fa = new float [20]; C. char[] ca = “Some String”; D. int ia [][] = (4, 5, 6) (1, 2, 3); 答案:A
18. 类中成员的可见性按从高到低排列依次为?
A. private, protected, friendly, public B. public, friendly, protected, private C. public, protected, friendly, private D. private, friendly, protected, public 答案:C
19. 给定下面的代码,哪个选项中的代码是正确的覆盖?
class BaseClass {
private float x = 1.0f ;
protected float getVar ( ) ( return x;) }
class Subclass extends BaseClass {
private float x = 2.0f;
________________//覆盖父类getVar方法的声明 }
A. Float getVar ( ) { return x;}
B. Public float getVar ( ) { return x;} C. Float double getVar ( ) { return x;} D. Public float getVar (float f ) { return f;} 答案:B
20. 关于下面一段代码的说法中,正确的是?
class Ellipse { public void draw() { System.out.println(\"Ellipse\"); } }
class Circle extends Ellipse { public void draw() { System.out.println(\"Circle\");} }
public class Test { public static void main(String[] args) { Ellipse g = new Circle (); g.draw(); }
}
A. 编译错误,因为g的类型为Ellipse,与Circle类型不符 B. 抛出异常,因为g的类型为Ellipse,与Circle类型不符 C. 没有错误,输出\"Ellipse\" D. 没有错误,输出\"Circle\" 答案:D
21. 下面的代码声明一个抽象绘图类,横线上应该填写什么内容?
_______ class Drawing { public _______ void drawDot(int x, int y); public _______ void drawHLine(int x1, int x2, int y){ for ( x = x1; x <= x2; x++) drawDot(x,y); } }
A. abstract abstract 空白 B. abstract abstract abstract C. abstract 空白 abstract D. 空白 abstract abstract 答案:A
22. 下面的代码中,横线上填写什么内容才没有错误?
class Test1{ private static int classIndex = 0; private ______ int index; public static void main(String[] args) { Test1 t = new Test1(); System.out.println( ________ ); } public ______ Test1() { index = ++classIndex; } }
A. static index static B. static classIndex 空白 C. 空白 index 空白
D. 空白 classIndex 空白 答案:D
23. 下面的代码中,横线上应该填写什么内容?
_________ MyInterface { public void fun1(); }
public class Test1 __________ MyInterface{ public static void main(String[] args){ Test1 t = new Test1(); t.fun1(); }
public void fun1() { System.out.println(\"fun1\"); } }
A. class extends B. interface extends C. interface implement D. interface implements 答案:D
24. 下面的代码中有什么错误?
1 interface MyInterface { 2 int var = 0; 3 public void fun1(); 4 }
5 public class MyClass implements MyInterface{ 6 public static void main(String[] args){ 7 MyInterface t = new Test1(); 8 t.var = 1; 9 t.fun1(); 10 } 11 public void fun1() { 12 System.out.println(var); 13 } 14 }
A. 第2行,变量var必须声明为public static final的 B. 第7行,不能创建接口MyInterface类型的变量 C. 第8行,不能为常量var赋值
D. 第11行,方法fun1必须声明为public static final的 答案:C
25. 如何将一个类放到包里?
A. 在类的源文件开始处写上包名
B. 在类的源文件开始处写上“package”关键字,后面跟包名 C. 在类的源文件开始处写上包名,后面跟“package”关键字 D. 将包名作为源文件名 答案:B
多项选择题:
1. Sun发布的Java运行环境包括哪两个部分?
A. 源代码编辑器 B. Java编译器 C. Java虚拟机
D. Java类库(Java应用程序界面) 答案:CD
2. 下面哪些特点说明Java是一种纯粹的面向对象语言?
A. 不存在全局变量和全局函数 B. main函数是类的方法
C. Java程序运行起来后一切皆是对象 D. Java语言是结构中立的 答案:ABC
3. Java语言可以应用于以下哪些场合?
A. 编写Windows下的硬件驱动程序 B. 编写Linux下的硬件驱动程序 C. 编写嵌入式应用 D. 编写Web应用 答案:CD
4. 编写Java程序时,如果一个对象没有用了应该如何处理?
A. 必须用delete语句回收对象占用的内存
B. 可以不用处理,Java会自动定时回收没用的对象所占用的内存 C. 调用对象的finalize方法回收对象占用的内存和资源 D. 如果对象占用了其他资源,应该先释放掉 答案:BD
5. 下面哪些数据类型转换可能会损失精度?
A. int到double B. char到float C. int到float D. long到double 答案:CD
6. Java中的继承有什么特点?
A. 子类继承父类的构造函数 B. 一个类可以继承自多个类
C. 所有类缺省为Object类的子类 D. 单继承性 答案:CD
7. 要在横线所在位置声明一个内部类,下面的选项中哪些声明是正确的?(多选题)
public class OuterClass { private double d1 1.0; __________________ }
A. static class InnerClass { static double methoda() {return d1;} } B. private class InnerClass { public double methoda() {return d1;} } C. protected class InnerClass { static double methoda() {return d1;} } D. public abstract class InnerClass { public abstract double methoda(); } 答案:BD
8. 下面哪些说法是正确的?
A. 匿名内部类可以在方法内部声明 B. 匿名内部类的构造函数可以有参数
C. 匿名内部类如果是除Object类外的某个类的子类,还可以实现多个接口
D. 匿名内部类如果是除Object类外的某个类的子类,至多只能再实现一个接口
答案:AB
9. 下面的语句中正确的是?
A. import java.util.Date; B. import java.*.*; C. import java.util.*;
D. import java.lang.System.out; 答案:AC
10. 环境变量classpath有何作用?
A. 虚拟机会从classpath开始按照包层次对应的目录搜寻所用到的类 B. 编译器会从classpath开始按照包层次对应的目录搜寻所用到的类 C. classpath指出了Java API类库所在的目录 D. classpath指出了Java虚拟机所在的目录 答案:AB
11. 想终止Java程序的运行,可以调用什么方法?(多选题)
A. Runtime.exit(0);
B. Runtime.getRuntime().halt(0); C. Runtime.getRuntime().exit(0); D. System.exit(0); 答案:CD
12. Java集合框架中为什么既定义了许多类又定义了许多接口?(多选题)
A. 一个接口有多种不同的类来实现,即一种功能有多种方法来实现 B. 一个类实现多个不同的接口,将多种功能集合到一起 C. 接口定义功能,类提供具体实现 D. 因为Java只支持单一继承 答案:AC
13. 实现Set接口的两个类采用的是什么方法实现的?(多选题)
A. HashSet采用哈希表来实现Set接口
B. TreeSet采用有序的平衡二叉树来实现Set接口 C. HashSet采用维护有序数组的方法来实现Set接口 D. TreeSet采用二叉树来实现Set接口 答案:AB
14. 实现Map接口的两个类采用的是什么方法实现的?(多选题)
A. HashMap采用哈希表来实现Map接口
B. HashMap采用维护有序数组的方法来实现Map接口 C. TreeMap采用有序的平衡二叉树来实现Map接口 D. TreeMap采用二叉树来实现Map接口 答案:AC
15. Java的输入输出操作采用流的形式,以下哪些操作可以通过流进行?(多选题)
A. 文件读写 B. 网络数据传输 C. 线程间数据交换
D. 键盘输入和屏幕输出 答案:ABCD
16. 对象流中可以写入哪些类型的数据?
A. 原始数据类型 B. 对象
C. 实现了序列化接口的对象 D. 数组 答案:AC
17. 对象序列化机制有哪些应用?
A. 将对象保存到文件 B. 将对象通过网络传输 C. 对象的类型转换 D. 对象深克隆 答案:ABD
18. 面板类JPanel有什么作用?
A. 面板可以作为绘制图形的底板容器
B. 面板既是组件的容器,又能作为一个组件被安排到更大的容器中 C. 面板的实际作用是使得容器可以嵌套容器
D. 每个面板可以有自己的布局管理器,使得一个窗口中可有多种布局方式 答案:ABCD
19. 下面哪些标准对话框类是J2SDK提供的?
A. JFileChooser B. JOptionPane C. JFontChooser D. JColorChooser 答案:ABD
20. 布局管理器的作用是什么?
A. 当容器大小变化时自动调整容器中各组件的大小和位置 B. 使各组件在不同平台上排列和显示都正常 C. 安排程序窗口在屏幕上的位置和大小
D. 多窗口程序中安排各个窗口的大小和位置 答案:AB
因篇幅问题不能全部显示,请点此查看更多更全内容