1.请看以下代码,关于这段代码描述正确的是:( )
public class Account{
private String cardId;
public String getCardId() {
return cardId;
}
public void setCardId (String cardId) {
this. cardId = cardId;
}
}
A.Account类符合JavaBean的规则
B.Account类不符合JavaBean的规则,因为没有无参数构造方法
C.Account类不符合JavaBean的规则,因为没有实现序列化接口
D.Account类不符合JavaBean的规则,因为方法名getCardId应改为getcardId
正确答案:C
2.运行下面程序:
public class Foo {
public static void main(String[] args) {
StringBuffer a=new StringBuffer(“A”);
StringBuffer b=new StringBuffer(“B”);
operator(a,b);
System.out.println(a+”,”+b);
}
public static void operator(StringBuffer x,StringBuffer y){
x.append(y);
y=x;
}
}
输出的结果是:()。
A.A,B
B.A,A
C.B,B
D.AB,B
正确答案:D
3.下面的程序可以输出1~100内前10个3的倍数:
for (int i = 1, count = 0; i < 100; i++) {
if (i % 3 == 0) {
System.out.println(i);
(空白处)
}
}
下列选项中,空白处可以填入的代码是()。
A. if (count++ >= 10) {
break;
}
B. if (++count >= 10) {
break;
}
C. if (count++ >= 10) {
continue;
}
D. if (++count >= 10) {
continue;
}
正确答案:B
4.运行下面程序:
String[] strArr = { “aaa”, “b”, “cc” };
Arrays.sort(strArr, new Comparator<String>() {
public int compare(String o1, String o2) {
return o2.compareTo(o1);
}
});
System.out.println(Arrays.toString(strArr));
输出的结果是:()。
A.[aaa, b, cc]
B.[cc, b, aaa]
C.[b, cc, aaa]
D.[aaa, cc, b]
正确答案:B
5. 对数组int[] arr = { 52, 93, 16, 67, 36, 92, 26, 12, 25, 92 }用插入排序法由小到大进行排序,经过3轮排序后,数组arr的值为:()。
A. {12,16,25,52,93,26,67,36,92,92}
B. {12,16,25,67,36,92,26,52,93,92}
C. {16,52,67,93,36,92,26,12,25,92}
D. {16,36,52,67,93,92,26,12,25,92}
正确答案:C
6.下列代码的输出结果是:()。
public class StaticFoo {
int num;
static int x;
public static void main(String[] args) {
StaticFoo foo1 = new StaticFoo ();
foo1.num++;
foo1.x++;
StaticFoo foo2 = new StaticFoo ();
foo2.num++;
foo2.x++;
StaticFoo foo3 = new StaticFoo ();
foo3.num++;
foo3.x++;
StaticFoo.x++;
System.out.print(foo3.num+”,”);
System.out.println(foo3.x);
}
}
A.3,3
B.1,3
C.3,4
D.1,4
正确答案:D
7.下列代码编译和运行的结果是()
public class Foo {
public static void main(String[] args) {
java.util.List<A> list = new java.util.ArrayList<A>();
list.add(new B());
list.add(new C());
for (A a : list) {
a.x();
a.y();
}
}
}
interface A {
void x();
}
class B implements A {
public void x() {}
public void y() {}
}
class C extends B {
public void x() {}
}
A.代码运行没有输出
B.运行时抛出异常
C.代码a.y();行,编译错误
D.代码java.util.List<A> list = new java.util.ArrayList<A>();行,编译错误
正确答案:C
8.请看下列代码:
class ClassA {}
class ClassB extends ClassA {}
class ClassC extends ClassA {}
public class Test{
public static void main(String[] args) {
ClassA p0 = new ClassA();
ClassB p1 = new ClassB();
ClassC p2 = new ClassC();
ClassA p3 = new ClassB();
ClassA p4 = new ClassC();
<插入代码>
}
}
可以在<插入代码>处,填入的代码正确的是()
A.p0 = p1;
B.p1 =p2;
C.p2 = p4;
D.p2 = (ClassC)p1;
正确答案:A
9. 运行下面的语句:
System.out.println(Math.round(3.5) + ” ” + Math.floor(3.5) + ” ”
+ Math.ceil(3.5) + ” ” + Math.round(-3.5) + ” ”
+ Math.floor(-3.5) + ” ” + Math.ceil(-3.5));
输出的结果是:()。
A. 4 3.0 4.0 -3 -3.0 -4.0
B. 4 3.0 4.0 -4 -3.0 -4.0
C. 4 4.0 3.0 -4 -4.0 -3.0
D. 4 3.0 4.0 -3 -4.0 -3.0
正确答案:D
10. 下列赋值语句中,正确的是()。
A. byte b1 = 10, b2 = 20;
byte b=b1+b2;
B. byte b1 = 10, b2 = 20;
byte b=~b1;
C. byte b1 = 10, b2 = 20;
byte b=b1>>1;
D. byte b1 = 10;
byte b=++b1;
正确答案:D
11.类Super及Sub定义如下:
public class Super {
private void f() {
System.out.println(“Super.f()”);
}
public void g() {
f();
}
public void k() {
f();
}
}
public class Sub extends Super {
private void f() {
System.out.println(“Sub.f()”);
}
public void k() {
f();
}
}
运行下列语句:
Super obj = new Sub();
obj.g();
obj.k();
输出的结果是:()。
A. Sub.f()
Sub.f()
B. Sub.f()
Super.f()
C. Super.f()
Sub.f()
D. Super.f()
Super.f()
正确答案:C
12.下列代码的输出结果是()
public static void main(String[] args) {
String test = “a1b2c3”;
String[] tokens = test.split(“\d”);
for (String s : tokens)
System.out.print(s + ” “);
}
A.a b c
B.1 2 3
C.a1b2c3
D.a1 b2 c3
正确答案:A
13.运行下列程序:
String str = “**java***java*****java*”;
String str1 = “java”;
int index = 0;
while ((index = str.indexOf(str1, index)) != -1) {
System.out.print(index+””);
index += str1.length();
}
控制台输出的结果是:()。
A. 1 8 17
B. 2 9 18
C. 5 12 21
D. 6 13 22
正确答案:B
14.运行下面程序:
public class Foo{
public static void main(String[] args) {
try {
test();
System.out.println(“condition 1”);
} catch (ArrayIndexOutOfBoundsException e) {
System.out.println(“condition 2”);
} catch (Exception e) {
System.out.println(“condition 3”);
} finally {
System.out.println(“finally”);
}
}
public static void test() {
String str = “cc”;
str.compareTo(“abc”);
}
}
输出的结果是:()。
A.condition 1
finally
B.condition 2
finally
C.condition 1
condition 3
finally
D.condition 1
condition 2
finally
正确答案:A
15.下列代码的作用说法不正确的是:()。
class Card implements java.io.Serializable{}
A.开启序列化功能,使得Card类的对象可以存储到文件中
B.开启序列化功能,使得Card类的对象可以在网络上传输
C.使得Card类的子类的对象可以被序列化
D.导致Card的子类的对象不可以被反序列化
正确答案:D
16. try{}里有一个return语句,那么紧跟在这个try后的finally{}里的代码执行的情况是:()。
A.会执行,在return前执行
B.会执行,在return后执行
C.不会执行
D.会抛出异常
正确答案:A
17. 关于Java 异常,下列说法错误的是()。
A.异常是定义了程序中遇到的非致命的错误,而不是编译时的语法错误
B.try……catch语句中对try 内语句监测,如果发生异常,则把异常信息放入Exception类的对象中
C.throws 用来表示一个方法有可能抛出异常给上一层,则在调用该方法时必须捕捉异常,否则无法编译通过
D.Main方法不可以使用 throws 抛出异常
正确答案:D
18. 下列关于IDE开发环境Eclipse,说法错误的是:()。
A. Eclipse可以通过插件(plugin)的方式扩展其功能。
B. Eclipse联盟是由IBM公司捐资组建的。
C. Eclipse使用了SWT图形界面技术。
D. Eclipse的运行不需要有JRE的支持。
正确答案:D
19. 运行下列代码:
int[] oneArr = { 2, 11, 26, 27, 37, 44, 48, 60 };
int[] twoArr = { 19, 35, 49, 55, 58, 75, 83, 84, 91, 93 };
int[] threeArr = new int[oneArr.length + twoArr.length];
int p = 0, q = 0;
while (p < oneArr.length && q < twoArr.length) {
threeArr[p + q] =
oneArr[p] < twoArr[q] ? oneArr[p++] : twoArr[q++];
}
if (p < oneArr.length) {
System.arraycopy(oneArr, p, threeArr, p + q, oneArr.length – p);
}
else if (q < twoArr.length) {
System.arraycopy(twoArr, q, threeArr, p + q, twoArr.length – q);
}
System.out.println(Arrays.toString(threeArr));
输出的结果是:()。
A. [2,11,26,27,37,44,48,60,19,35,49,55,58,75,83,84,91,93];
B. [2,11,19,26,27,35,37,44,48,49,55,58,60,75,83,84,91,93];
C. [19,35,49,55,58,75,83,84,91,93,2,11,26,27,37,44,48,60];
D. [2,19,11,35,26,49,27,55,37,58,44,75,48,83,60,84,91,93];
正确答案:B
20.运行下面的程序:
int a = 100;
int b = 200;
a = a + b;
b = a – b;
a = a – b;
System.out.println(“a=” + a + “, b=” + b);
输出的结果是:()。
A. a=100, b=300
B. a=100, b=200
C. a=200, b=100
D. a=300, b=200
正确答案:C
21. 关于Java线程说法错误的是()。
A.创建线程的有2种方式,方式1是继承Thread类,方式2是实现 Runnable 接口
B.解决线程安全使用问题 synchronized关键字,使得同一时间只有一个线程执行该关键字限定的代码段
C.线程间通信所使用的方法有,wait,notify,notifyAll,它们都是 Thread 的方法
D.Java线程包括5个状态,线程的创建,可运行,运行,阻塞和消亡
正确答案:C
22. 如下方法声明中,错误的是()。
A.public void say(){ System.out.print(“Hi”); }
B.public void say() { System.out.print(“Hi”); return; }
C.public int say(){ System.out.print(“Hi”); return; }
D.public int say(){ System.out.print(“Hi”); return 0; }
正确答案:C
23.下列代码的输出结果是()。
boolean b=true?false:true==true?false:true;
System.out.println(b);
A.true
B.false
C.null
D.空字符串
正确答案:B
24.执行下列语句:int num=~3+2; 变量num的值为()。
A.-3
B.3
C.-2
D.-1
正确答案:C
25. 关于String 和 StringBuffer 下面说法正确的是()。
A.String操作字符串不改变原有字符串的内容
B.StringBuffer连接字符串速度没有String 快
C.String 可以使用append方法连接字符串
D.StringBuffer 在java.util包中
正确答案:A
26.运行下面的语句:
String s=””;
if(s==s+0){
System.out.println(“Hello World”);
}
编译,运行的结果是:()。
A.Hello World
B.无输出
C.编译错误
D.抛出运行时异常
正确答案:B
27. 在Java语言中,下列说法正确的是:()。
A. Java访问修饰符按照访问范围由低到高的排列顺序是public,default,protected,private
B. private可以用于外部类的声明
C. 一个Java源文件中声明为public的外部类只能有一个
D. protected声明的方法不可以被子类重写
正确答案:C
28. IO 包中,唯一代表磁盘本身的对象类是()。
A.FileInputStream
B.File
C.InputStream
D.BufferedReader
正确答案:B
29. 下面关于final说法错误的是:()
A. final修饰类时,该类不能被继承。
B. final修饰方法时,该方法不能被重写。
C. 当引用到使用static final 修饰的常量时,将采用编译期绑定的方式。
D. 当使用final和abstract共同修饰一个类时,final应至于abstract之前。
正确答案:D
30. 下列选项中的类,能正确实现java.lang.Runnable接口和java.lang.Clonable接口的是()。
A.public class Session implements Runnable, Clonable {
public void run();
public Object clone();
}
B.public class Session implements Runnable, implements Clonable {
public void run() { / do something */ }
public Object clone() { / make a copy */ }
}
C.public class Session implements Runnable, Clonable {
public void run() { / do something */ }
public Object clone() { /* make a copy */ }
}
D.public class Session extends Runnable, Clonable {
public void run() ;
public Object clone();
}
正确答案:C
31. 下列属于不合法Java标识符的是()。
A._avaj
B.5save
C.Avaj
D.$80
正确答案:B
32.分析如下代码,输出结果为()。
public static void main(String[] args) {
int i = 0;
boolean re = false;
re = ((++i) + i == 2) ? true : false;
System.out.println(“i=” + i + “,re=”+re);
}
A.i=1,re=true
B.i=0,re=true
C.i=1,re=false
D.i=0,re=false
正确答案:A
33. 下面关于interface,叙述错误的是:()
A.一个interface可以继承多个interface
B.接口中的方法可以由private修饰
C.interface中可以定义static final 常量
D.interface中可以无任何方法定义
正确答案:B
34.请看下列代码:
public static void main(String[] args) {
<插入代码>
System.out.println(s);
}
如果程序输出的结果是4247,那么在<插入代码>处应该填入代码是()。
A.String s = “123456789”;
s = (s-“123″).replace(1,3,”24”) – “89”;
B.StringBuffer s = new StringBuffer(“123456789”);
s.delete(0,3).replace( 1,3, “24”).delete(4,6);
C.StringBuffer s = new StringBuffer(“123456789”);
s.substring(3,6).delete( 1 ,3).insert( 1, “24”);
D.StringBuilder s = new StringBuilder(“123456789”);
s.substring(3,6).delete( 1 ,2).insert( 1, “24”);
正确答案:B
35. 下面关于数组的声明语句中,有编译错误的是:()。
A. int[] arr = new int[]{1,2,3};
B. int[] arr = null;arr = {1,2,3,4,5};
C. int[][] arr = new int[][]{{1,2,3},{4,5},{6}}
D. int[][] arr = new int[2][];
正确答案:B
36. 下列赋值语句中,会有编译错误的是()。
A. int a = 8888888888;
B. char b = 1000+300;
C. byte c = 100+30;
D. int d = ‘a’+’b’+’c’;
正确答案:AC
37. 下面的方法属于StringBuffer的是:()。
A. size
B. insert
C. delete
D. length
正确答案:BCD
38.查看如下代码:
class A {
protected int method (int a, int b) {
return 0;
}
}
下列选项中,可以在 A 的子类中使用的是()。
A. public int method (int a, int b) { return 0; }
B. private int method(int a, int b) { return 0; }
C. private int method(int a, long b) { return 0; }
D. public short method(int a, int b) { return 0; }
正确答案:AC
39.查看如下代码:
public class Foo {
public void method(String str,int age){}
}
下列选项中,和 Foo 类中 method 方法重载的方法是()。
A.public int method(String str,int age){}
B. public void method(int year,String s){}
C. public int method(int year,String s){}
D. public int method(String str){}
正确答案:BCD
40. 下列异常类是RuntimeException的子类的是:()。
A. ArrayIndexOutOfBoundsException
B. NullPointerException
C. NumberFormatException
D. ClassNotFoundException
正确答案:ABC
41.IO类实现了打开并读取一个文本文件,每次读取一行内容。 将每行作为一个String字符串放入String数组里面返回。阅读代码并完成以下5题:
public class IO {
public String[] read(InputStream in) throws IOException {
String[] arr = new String[1];
String[] temp = null;
空白处1
String line =””;
while (( 空白处2 ) != null) {
arr[arr.length – 1] = line;
空白处3
for (int i = 0; i < arr.length; i++) {
temp[i] = arr[i];
}
空白处4
for (int i = 0; i < arr.length; i++) {
arr[i] = temp[i];
}
}
arr = new String[temp.length – 1];
for (int i = 0; i < arr.length; i++) {
arr[i] = temp[i];
}
br.close();
return arr;
}
public static void main(String[] args) throws IOException {
String[] arr = new IO().read(new FileInputStream(“data.txt”));
System.out.println(arr);
空白处5
System.out.println(str);
}
}
}
(1). 下列选项中,能填入空白处1的代码是( )
A.BufferedReader br = new BufferedReader(new InputStreamReader(in));
B.BufferedReader br = new BufferedReader(new FileReader(in));
C.FileReader br=new FileReader(in);
D.InputStreamReader br=new InputStreamReader(in);
正确答案:A
(2). 下列选项中,能填入空白处2的代码是( )
A.line = br.read();
B.line = br.readLine();
C.line = br.readString();
D.line = br.readUTF();
正确答案:B
(3). 下列选项中,能填入空白3的代码是( )
A.temp = new String[arr.length + 1];
B.temp = new String[arr.length];
C.temp = new String[arr.length-1];
D.temp = new String[arr.length/2];
正确答案:A
(4). 下列选项中,能填入空白处4的代码是( )
A.arr = new String[temp.length/2];
B.arr = new String[temp.length-1];
C.arr = new String[temp.length+1];
D.arr = new String[temp.length];
正确答案:D
(5). 下列选项中,能填入空白处5的代码是( )
A.for (arr: String str) {
B.for (arr[]:String str){
C.for (String str : arr) {
D.for (String str : arr[]) {
正确答案:C
42.阅读理解
public class A {
public A() {
System.out.print(“A “);
}
public A(String s) {
System.out.print(s);
}
public void fun() {
System.out.println(“A.fun()”);
}
}
public class B extends A {
public B() {
System.out.print(“B “);
}
public B(String s) {
super(s);
}
public void fun() {
System.out.println(“B.fun()”);
}
public void sun(){
System.out.println(“B.sun()”);
}
public static void Main() {
A a = new B();
a.fun();
}
}
(1).下列关于上述代码中构造方法的描述,错误的是()。
A.实例化对象 a 时,将默认调用父类的无参构造方法
B.类 B中使用 super 关键字,是为了调用父类的含有一个参数的构造方法
C.实例化对象 a 时,父类A和子类B的构造方法都会被调用到
D.实例化父类对象时,调用父类 A 的构造方法;实例化子类对象时,则只调用子类B的构造方法
正确答案:D
(2).该代码运行后,输出为:()。
A.A B A.fun()
B.A B B.fun()
C.B A A.fun()
D.B A B.fun()
正确答案:B
(3).如果 main 方法中如此调用:
public static void main(String[] args)
{
A a = new B(“Hello,”);
a.fun();
}
其他代码不变,该代码运行后,输出为:()。
A.A A.fun()
B.B A.fun()
C.Hello,A.fun()
D.Hello,B.fun()
正确答案:D
(4).如果 main 方法中如此调用:
public static void main(String[] args)
{
A a = new A();
a.sun();
}
其它代码不变,下列说法正确的是:()。
A.运行输出结果为:A B.sun()
B.运行输出结果为:A B B.sun()
C.运行输出结果为:B A B.sun()
D.编译错误
正确答案:D
(5).下列关于上述代码的描述,正确的是()。
A.如果将A类定义成public abstract class A,那么方法fun必须定义成抽象方法
B.如果将A类定义成public abstract class A,那么A类中必须有一个抽象方法
C.如果将A类中的方法fun定义成public abstract void fun(),那么A类必须是抽象类
D.如果将A类定义成public abstract class A,那么A类应然可以实例化对象
正确答案:C