第一章 单元测试
1、判断题:
Java语言最大的优势在于,它能够在所有的计算机上运行,即“一次编写,处处运行”。
选项:
A:对
B:错
答案: 【对】
2、判断题:
高级语言编写的程序不能直接被计算机识别,必须经过转换才能被执行。
选项:
A:对
B:错
答案: 【对】
3、单选题:
解释执行Java字节码文件的是哪个命令?
选项:
A:javap
B:javac
C:javadoc
D:java
答案: 【java】
第二章 单元测试
1、单选题:
int A = 55;
char B = ‘E’;
System.out.println(A + B);
选项:
A:65
B:124
C:55
D:175
答案: 【124
】
2、单选题:
short c = 8;
byte d = 16;
System.out.println(“c | d =” + (c | d));
选项:
A:12
B:-8
C:24
D:1
答案: 【24】
3、单选题:
short a = -128;
short b = 128;
System.out.println(“a & b = ” + (a & b));
选项:
A:1
B:0
C:127
D:128
答案: 【128】
4、判断题:
char型变量中不能存贮一个中文汉字。
选项:
A:错
B:对
答案: 【错】
5、单选题:
下列哪个选项是合法的标识符?
选项:
A:1first
B:_name
C:class
D:123
答案: 【_name】
6、单选题:
下列哪个赋值语句是不正确的?
选项:
A:double f=11.1E10f;
B:float d = 3.14f ;
C:float f = 11.1;
D:double d = 5.3E12;
答案: 【float f = 11.1;】
7、单选题:
给出下列代码,哪行在编译时可能会有错误?
① public void modify(){
② int i, j, k;
③ i = 100;
④ while ( i > 0 ){
⑤ j = i * 2;
⑥ System.out.println (” The value of j is ” + j );
⑦ k = k + 1;
⑧ }
⑨ }
选项:
A:8
B:4
C:7
D:6
答案: 【7
】
第三章 单元测试
1、单选题:
class Count {
public int count;
public Count(int c) {
count = c;
}
public Count() {
count = 1;
}
}
public class Test {
public static void increment(Count c, int times) {
c.count++;
times++;
}
public static void main(String args[]) {
Count myCount = new Count();
int times = 0;
for (int i = 0; i < 3; i++)
increment(myCount, times);
System.out.println(“myCount.count=” + myCount.count + ” times=” + times);
}
}
程序的运行结果正确的是()
选项:
A:myCount.count=3 times=0
B:myCount.count=4 times=0
C:myCount.count=4 times=1
D:myCount.count=3 times=1
答案:
2、单选题:
关于构造方法constructor,下列说法正确的是()
选项:
A:class中的constructor不可省略
B:一个class只能定义一个constructor
C:constructor在一个对象被new时执行
D:constructor必须与class同名,且区分返回值的类型。
答案:
3、单选题:
给出程序的运行结果()
class Person {
String name;
int age;
Person(){
System.out.println(“Person()”);
}
void Person(){
System.out.println(“method()”);
}
public void tell() {
System.out.println(“姓名:” + name + “,年龄:” + age);
}
}
public class ClassTest02 {
public static void main(String[] args) {
Person person = new Person();
person.name = “张三”;
person.age = 30;
person.tell();
}
}
选项:
A:method()
姓名:张三,年龄:30
B:Person()
姓名:张三,年龄:30
C:姓名:张三,年龄:30
D:Person()
method()
姓名:张三,年龄:30
答案:
4、单选题:
以下声明合法的是( )
选项:
A:private class student{}
B:public final static void speed(){}
C:default s;
D:default double d;
答案:
5、单选题:
以下代码运行输出是()
class Man {
private String name = “Jack”;
int age = 30;
}
public class ManTest {
public String tel;
public static void main(String[] args) {
Man m = new Man();
System.out.println(m.name);
}
}
选项:
A:没有输出
B:运行出错
C:输出:Jack
D:编译出错
答案:
6、单选题:
给出以下4个重载的方法show,调用show方法时,下面哪个说法是错误的()
(1)show(int a ,int b,int c)
(2)show(int a ,int b,double c)
(3)show(int a ,double b,double c)
(4)show(double a,double b,int c)
选项:
A:调用show(1.0,2,3); 没有一个可行方法
B:调用show(1,2,3); 1,2,3,4方法都是可行方法,所有参数完全匹配
C:调用show(1,2.0,3); 3,4都是可行方法,没有最佳可行方法,编译器会报错
D:调用show(1.0,2.0,3.0); 没有一个可行方法
答案:
7、单选题:
Java中方法参数的使用情况错误的说法是()
选项:
A:一个方法不能让对象参数引用一个新的对象。
B:一个方法不能修改一个基本数据类型的参数(数值型或布尔型),是值的拷贝。
C:Java程序设计语言都是采用按值传递。
D:一个方法不可以改变一个对象参数的状态。
答案:
8、单选题:
下面的程序中,哪行会报错?
public class StaticTest {
int age;
String name;
static int totalFee = 500;
public void showName() {
System.out.print(this.name);
}
public static void showTotalFee() {
line 1: System.out.print(totalFee);
line 2: showName();
}
public static void main(String[] args) {
line3: StaticTest.showTotalFee();
}
}
选项:
A:line 2
B:line 3
C:line 1
答案:
第四章 单元测试
1、单选题:
下面程序的运行结果是____ int x=30; int[] numbers=new int[x];x=60; System.out.println(numbers.length);
选项:
A:50
B:20
C:60
D:30
答案:
2、单选题:
数组越界访问会发生什么错误?
选项:
A: java.lang.Exception
B: java.lang.IndexOutOfBoundsException
C: java.io.IOException
D: java.lang.ArrayIndexOutOfBoundsException
答案:
3、单选题:
关于数组,以下说法错误的是()
选项:
A:当二维数组声明时,int[][] numbers=new int[10][];数组的长度就确定了。
B:数组内容的复制可以通过循环实现,也可以通过System.arraycopy实现。
C:使用符号=对数组对象赋值时是将对象引用指向同一个数组,而不是将数组内容进行复制。
D:数组是对象,它作为参数传递时的特点和对象是一致的。
答案:
4、单选题:
String s = new String(“xyz”);创建了几个String Object?
选项:
A:1
B:3
C:2
D:0
答案:
5、多选题:
创建数组正确的是:
选项:
A:int[] ia = new int [15];
B:Int ia [][] = (4, 5, 6) (1, 2, 3)
C:float fa = new float [20];
D:char[] ca = “Some String”;
E:Object oa = new float[20];
答案:
第五章 单元测试
1、单选题:
下面的程序中,哪行会报错?
public class StaticTest {
int age;
String name;
static int totalFee = 500;
public void showName() {
System.out.print(this.name);
}
public static void showTotalFee() {
line 1: System.out.print(totalFee);
line 2: showName();
}
public static void main(String[] args) {
line3: StaticTest.showTotalFee();
}
}
选项:
A:line 3
B:line 2
C:line 1
答案:
2、单选题:
下面关于import, class和package的声明顺序哪个正确?
选项:
A:class, import, package
B:import, package, class
C:package, import, class
D:package, class, import
答案:
3、单选题:
已知A类被打包在packageA , B类被打包在packageB ,且B类被声明为public ,且有一个成员变量x被声明为, protected控制方式 。C类也位于packageA包,且继承了B类 。则以下说话正确的是( )
选项:
A:C类的实例不能访问到B类的实例
B:A类的实例能够访问到B类一个实例的x成员
C:C类的实例可以访问到B类一个实例的x成员
D:A类的实例不能访问到B类的实例
答案:
4、单选题:
以下程序正确的输出是( )
package test;
public class FatherClass {
public FatherClass() {
System.out.println(“FatherClass Create”);
}
}
package test;
import test.FatherClass;
public class ChildClass extends FatherClass {
public ChildClass() {
System.out.println(“ChildClass Create”);
}
public static void main(String[] args) {
FatherClass fc = new FatherClass();
ChildClass cc = new ChildClass();
}
}
选项:
A:FatherClass Create
ChildClass Create
FatherClass Create
B:ChildClass Create
ChildClass Create
FatherClass Create
C:ChildClass Create
FatherClass Create
FatherClass Create
D:FatherClass Create
FatherClass Create
ChildClass Create
答案:
5、单选题:
以下抽象类的定义中,错误的是?
选项:
A:abstract class Demo1{}
B:abstract class Demo4{ public static final String CZBK = 高等教育
C:abstract class Demo2{ public abstract String fun(String a); }
D:abstract class Demo3{ public String fun(){ return
答案:
6、单选题:
阅读下列的程序
public class Test3 {
public static void main(String[] args) { _________________________ _________________________ } }
class Outer {
static class Inner {
public void method () {
System.out.println( } } }
下列选项中,可以正确输出method()方法的是
选项:
A:Outer o = new Outer(); o.method();
B:Outer.Inner oi = new Outer.Inner(); oi.method()
C:Inner I = new Inner(); i.method();
答案:
7、判断题:
在java中一个类被声明为final类型,表示该类不能被继承,意味着它不能再派生出新的子类。
选项:
A:对
B:错
答案:
8、单选题:
自定义的类是否可以继承String类?
选项:
A:不确定
B:是
C:否
答案:
第六章 单元测试
1、单选题:
Error和Exception的区别是:
选项:
A:error发生后程序会退出执行,exception发生后有可能继续执行。
B:error发生后程序会出错,exception发生后不影响程序执行。
C:只要设计合理,error和exception都可以被捕获。
D:error只程序执行出错,exception则是逻辑不完善。
答案:
2、单选题:
关于java异常类型的说法,错误的是:
选项:
A:
Java提供了两类主要的异常:runtimeException和checkedException
B:checkedException主要是指IO异常、SQL异常等,JVM要求必须对其进行catch处理,所以,不管我们是否愿意,都是要写一大堆的catch块去处理可能出现的异常。
C:
如果不对运行时异常进行catch处理,程序也不会终止。
D:runtimeException出现的时候程序会由虚拟机接管,NullPointerException就属于此类。
答案:
3、单选题:
哪个关键字可以抛出异常?
选项:
A:
static
B:transient
C:throw
D:finally
答案:
4、单选题:
下列程序的执行,说法错误的是
(C)
public
class
MultiCatch
{
public
static
void
main(String
args[])
{
try
{
int
a=args.length;
int
b=42/a;
int
c[]={1};
c[42]=99;
System.out.println(“b=”+b);
}
catch(ArithmeticException
e)
{
System.out.println(
“除
0
异常:
”
+e);
}
catch(ArrayIndexOutOfBoundsException
e)
{
System.out.println(
“数组超越边界异常:
”
+e);
}
}
}
A
、程序将输出第
15
行的异常信息
下列程序的执行,说法错误的是:
public class MultiCatch
{
public static void main(String args[])
{
try
{
int a=args.length;
int b=42/a;
int c[]={1};
c[42] = 99;
System.out.println(“b=”+b);
}
catch(ArithmeticException e)
{
System.out.println(“除0异常:”+e);}
catch(ArrayIndexOutOfBoundsException e)
{
System.out.println(“数组超越边界异常:”+e);
}
}
}
选项:
A:程序第10行出错
B:程序输出b=12
C:程序将输出第15和18行的异常信息
D:程序将输出第15行的异常信息
答案:
5、单选题:
对于
catch
子句的排列,下列哪种是正确的
(B
)
A
、父类在先,子类在后
B
、子类在先,父类在后
C
、有继承关系的异常不能在同一个
try
程序段内
D
、先有子类,其他如何排列都无关
对于
catch
子句的排列,下列哪种是正确的
(B
)
A
、父类在先,子类在后
B
、子类在先,父类在后
C
、有继承关系的异常不能在同一个
try
程序段内
D
、先有子类,其他如何排列都无关
对于catch子句的排列,下列哪种是正确的:
选项:
A:父类在先,子类在后
B:有继承关系的异常不能在同一个try程序段内
C:子类在先,父类在后
D:先有子类,其他如何排列都无关
答案:
第七章 单元测试
1、单选题:
Java反射框架主要提供以下功能,哪一个是错误的?
选项:
A:在运行时能构造任意一个类的对象;
B:在运行时能调用任意一个对象的方法;
C:在运行时不能判断任意一个类所具有的成员变量和方法;
D:在运行时能判断任意一个对象所属的类;
答案:
2、单选题:
关于Java反射机制,下面哪个说法是错误的?
选项:
A:Java反射机制可以动态地创建对象并调用其属性,这样的对象的类型在编译期是已知的。
B:运用反射会使我们的软件的性能降低,复杂度增加,所以还要慎重的使用它。
C:Java的反射机制就是增加程序的灵活性,避免将程序写死到代码里。
D:Class对象可以通过java.lang.Object中的getClass方法获取
答案:
3、多选题:
有以下代码:
package com;
public class Test {
public static void main(String[] args) {
Test test = new Test();
//here
}
}
在here处加上以下什么语句,可以获得Class对象?(多选)
选项:
A:Class c = Class.forName(“com.Test”);
B:Class c = test.getClass();
C:Class c = test.class;
D:Class c = Class.forName(“Test”);
E:Class c = Test.class;
F:Class c = new Class();
答案:
4、判断题:
如果要访问对象的私有变量,就必须先修改访问权限,通过Constructor类的setAccessible方法实现。
选项:
A:错
B:对
答案:
5、单选题:
关于注解的说明,以下错误的是?
选项:
A:注解@Inherited 允许子类继承父类中的注解
B:public @interface Author{} 这行代码表示自定义一个注解Author
C:注解@Deprecated 的作用是声明方法是过时的,当编程人员调用方法时将会提示警告。
D:注解只可添加于包、类、构造方法上,不能添加到成员变量中。
答案:
第八章 单元测试
1、多选题:
public class InheritThread extends Thread {
private String name;
public InheritThread (String name) {
this.name = name;
}
public void run() {
System.out.println(“Greetings from thread ‘” + name + “‘!”);
}
}
public static void main(String args[])
{
InheritThread greetings = new InheritThread (“Inherited”);
greetings.start();
System.out.println(” Main Thread has been ended”);
}
以上代码执行的结果可能是:
选项:
A:
Main Thread has been ended
B:
Greetings from thread Inherited
Main Thread has been ended
C:
Main Thread has been ended
Greetings from thread Inherited
答案:
2、多选题:
线程有 新建( New )、就绪(Runnable)、运行(Running)、阻塞( Blocked )和死亡( Dead )5种状态,哪些情况会导致线程进入阻塞状态?
选项:
A:线程调用sleep()方法
B:线程调用join方法
C:线程在等待某个通知
D:线程调用了一个阻塞式IO方法
答案:
3、多选题:
关于线程执行过程说法正确的是:
选项:
A:在多核处理器中,多个线程可能同时在执行。
B:线程的获得的cpu执行时间和线程优先级有关系
C:sleep的时间到达后,线程会被立即唤醒并分配cpu执行。
D:线程进入dead状态后,可以再次调用start方法使其进入待调度状态。
答案:
4、单选题:
当编译并运行下面程序时会发生什么结果()public class Bground extends Thread{
public static void main(String argv[]){
Bground b = new Bground();
b.run();
} public void start(){
for (int i = 0; i <10; i++){
System.out.println(“Value of i = ” + i);
}
}}
选项:
A:编译错误,指明run方法没有定义
B:编译通过但无输出
C:编译通过并输出0到9
D:运行错误,指明run方法没有定义
答案:
5、单选题:
下面哪些是正确的描述了关键字synhronized( )
选项:
A:保证两个或多个线程同时启动和结束
B:
允许两个进程并行运行但其之间相互通信 |
C:保证两个或多个进程同时启动和结束
D:保证任何时候只有一个线程访问一个方法或对象
答案:
请先
!