初级Java工程师笔试题
说明: 共100分,考试时间为180分钟


一、选择题: 
(每题1分,共68分,包含复选题和单选题,复选题已做标记,其余为单选题)


1.下面哪一种修饰词能使一个类中的成员变量仅仅具有包可见性: 
A、protected B、public 
C、private D、以上皆不对


2.符合对象(object)和类(class)关系的是: 
A、人和老虎 B、书和汽车 
C、楼和凉亭 D、汽车和交通工具


3.关于选择结构下列那个说法正确? 
A、if语句和else语句必须成对出现 B、if语句可以没有else语句对应 
C、switch结构中每个case语句中必须用break语句 D、switch结构中必须有default语句


4.return语句: 
A、可以让方法返回数值 B、方法都必须含有 
C、方法中可以有多句return D、不能用来返回对象


5.throws的作用: 
A、没有意义 B、表示后面的是方法的输出值 
C、表示方法可能会抛出意外 D、方法的标志,每个方法都必须有


6.下列那个说法正确? 
A、不需要定义类,就能创建对象 B、对象中必须有属性和方法定义 C、属性必须是简单对象 D、属性可以是简单变量,也可以是一个对象


7.关于方法的说法哪个正确? 
A、方法中的形参BCD可以和方法所属类定义的属性(变量)同名 
B、方法必须有形参 
C、同类不同的方法中不能有同名的自变量?否则会有不可预测的结果 
D、没有返回值的方法可以用void来表示,也可以不加


8.下列那个是正确? 
A、一个程序可以包含多个源文件 B、一个源文件中只能有一个类 
C、一个源文件中可以有多个公共类 D、一个源文件只能供一个程序使用


9.下列那个说法正确? 
A、Java允许一个子类有多个父类 
B、某个类是一个类的子类,它仍有可能成为另一个类的父类 
C、一个父类只能有一个子类 
D、继承关系最多不能超过四层 
10.关于构造方法的说法哪个正确? 
A、一个类只能有一个构造方法 B、一个类可以有多个不同名的构造方法 
C、构造方法与类同名 D、构造方法必须自己定义,不能使用父类的构造方法


11.下列那个说法正确? 
A、子类只能覆盖父类的方法,而不能重载 
B、子类只能重载父类的方法,而不能覆盖 
C、子类不能定义和父类同名同形参的方法,否则,系统将不知道调用哪个方法 
D、重载就是一个类中有多个同名但有不同形参和方法体的方法


12.关于抽象类下列哪个说法正确? 
A、抽象类中不可以有非抽象方法 
B、某个非抽象类的父类是抽象类,则这个子类必须重载父类的所有抽象方法 
C、抽象类无法创建对象 
D、接口和抽象类是同一回事


13.哪个(些)是java关键字? (复选题) 
A、run B、default 
C、implement D、import


14.被声明为private、protected及public的类成员,在类外部: 
A、只能访问声明为public的成员 B、只可能访问到声明为protected和public的成员 
C、都可以访问 D、都不能访问


15.关于抽象方法,下列描述正确的是? 
A、可以有方法体 B、可以出现在非抽象类中 
C、是没有方法体的方法 D、抽象类中的方法都是抽象方法


16.关于main()方法的说法哪个正确? 
A、main()方法只能放在公共类中 
B、main()方法的头定义可以根据情况任意更改 
C、一个类中可以没有main()方法 
D、所有对象的创建都必须放在main()方法中


17.关于main方法的说法哪个正确? 
A、main方法只能放在公共类中 
B、一个编译单元中允许一个以上的类具有主方法 
C、main方法的头定义可以根据情况任意更改 
D、所有对象的创建都必须放在main方法中


18.下列那个声明是正确的? 
A、 abstract final class Hh {} B、 abstract private move(){} 
C、 protected private number; D、 public abstract class Car{}


19.关于对象成员占用内存的说法哪个正确? 
A、同一个类的对象共用同一段内存 
B、同一个类的对象是用不同的内存段,但静态成员共享相同的内存空间 
C、对象的方法不占用内存 
D、以上都不对


20.关于this和super,下列说法正确的是? 
A、都可以在main()方法中使用 B、都是指一个内存地址 
C、不能用在main()方法中 D、意义相同


21.关于方法的形参,下列说法正确的是? 
A、必须定义多个形参 B、至少有一个 
C、可以没有 D、只能是简单变量


22.关于接口下列哪个说法正确? 
A、实现一个接口必须实现接口的所有方法 B、一个类只能实现一个借口 
C、接口间不能有继承关系 D、接口和抽象类是一回事


23.关于接口下列哪个说法正确? 
A、一个类不能同时实现多个接口 B、接口中只能有方法声明,不能有数据成员 
C、接口间不能有继承关系 D、接口中的数据成员都是静态常量


24.有整型数组: 
int[] x={12,35,8,7,2};,则调用方法Arrays.sort(x)后,数组x中的元素值依次是? 
A、 2 7 8 12 35 B、 12 35 8 7 2 
C、 35 12 8 7 2 D、 8 7 12 35 2 
25.下列那个说法正确? 
A、子类即可以重载父类的方法,又可以覆盖父类的方法 
B、子类只能重载父类的方法,而不能覆盖 
C、子类不能定义和父类同名同形参的方法,否则,系统将不知道调用哪个方法 
D、子类只能覆盖父类的方法,而不能重载


26.下列那个说法是正确的? (复选题) 
A、程序执行到break语句时一定会结束所有的循环 
B、程序执行到continue语句时会结束当前循环 
C、break语句和continue语句都可以和标签协同使用 
D、continue语句和break语句的作用相同


27.while循环和do-while循环的区别是? 
A、没有区别,这两个结构在任何情况下效果一样 
B、while循环比do-while循环执行效率高 
C、while循环是先循环后判断,所以循环体至少被执行一次 
D、do-while循环是先循环后判断,所以循环体至少被执行一次 
28.关于类和对象的描述正确的是(复选题) 
A、类是对一组对象的抽象 
B、对象是现实世界的一个实体 
C、父类的属性包含子类的属性 
D、封装是把过程和数据包围起来,外部对数据的访问只能通过已定义的界面


29.在Java中,基本的数据类型是? 
A、String B、Byte C、Integer D、boolean


30.下面说法正确的是? 
A、当运行Javac命令对一个Java源程序(.java)进行编译时,必须写出该源文件的完整的文件名,包括扩展名.java 
B、当运行Javac命令对一个Java源程序(.java)进行编译时,不必写出该源文件的扩展名.java 
C、当用Java命令解析运行一个class文件时,必须写出该class文件的扩展名.class 
D、无论运行Javac还是Java命令,后面的源文件都必须给出文件扩展名


31.下面的标识符错误的是? 
A.、$us B、 _b 
C、const D、jack


32.下面关于C++和Java中char数据类型的正确描述是:(复选题) 
A、C++和Java中char变量中都不能存放一个汉字 
B、C++和Java都采用unicode编码 
C、在C++和Java中char变量中,变量ch和CH不是同一个变量 
D、C++和Java中char类型都是基本类型


33.public class Foo{ 
public static void main(String args[]){ 
String s; 
System.out.println(“s=”+s); 


程序运行的结果是? 
A、 s=s B、s=null 
C、 编译错误 D、null


34.public class Foo{public static void main(String args[]){ 
try{return;} 
finally{ System.out.println(“Finally”);} 

程序运行的结果是? 
A、什么也没有 
B、Finally 
C、编译错误


35.下面那个变量声明不正确的? 
A、IloveJava 
B、$20 
C、piggy@msl 
D、Hello_world


36.下面关于JAVA的优点说法错误的是? 
A、JAVA是纯面向对象的语句,还有众多的API支持,所以JAVA开发各种各样的应用 
程序变的非常容易且易于维护。 
B、JAVA使用的是Unicode作为标准字符,这使得JAVA程序在不同的语言平台上都能 
被编译和运行。 
C、JAVA引进来的EXCEPTION处理机制,使得JAVA程序更安全、更稳定、更随机应变 
D、垃圾回收机制是JAVA的内在特性,垃圾回收机制的调度是有程序员负责的


37.下面关于JVM说法不准确的是? 
A、 JVM目前已有针对不同的平台开发了多个相应的版本。 
B、所以的JAVA程序编译成字节码后都需要被调度到相应版本的JVM中才能执行。 
C、各个版本的JVM对内存的管理都是通过GC机制实现的 
D、JVM机制的引入才使我们的程序很容易的动态内存管理及多线程、JavaBean等服务。


38.下面关于JDK工具的说法不正确的?(复选题) 
A、我们可以通过JAVAC工具实现对JAVA程序的编译并能通过-d参数指定字节码文件 
的位置。 
B、-classpath无论对java及javac工具都有引进其它类的作用。 
C、javadoc工具可以把我们程序用所有注释部分自动生成html文档. 
D、appletview工具可以用来运行我们的applet小程序。


39.下面关于int在java程序中长度的说法精确的是? 
A、1 bytes 
B、2 bytes 
C、4 bytes 
D、8 bytes


40.下面代码中那一个不能够创建一个数组? 
A 、float []f[] = new float[6][6]; 
B 、float f[][] = new float[][6]; 
C、float [][]f = new float[6][6]; 
D、float [][]f = new float[6][];


41.给出如下声明? 
String s1=new String(“Hello”); 
String s2=new String(“there”); 
String s3=new String(); 
下列选现中( )是合法的 
A、s3 = s1 + s2 B、s3 = s1 – s2 C、s3 = s1 & s2 D、s3 = s1 && s2 
42.给出下面代码段: 
boolean m = true; 
if(m = false) 
System.out.println(“False”); 
else 
System.out.println(“True”);


运行的结果是? ( ) 
A 、False B、True 
C、 None D、 An error will occur when running


43.下面的程序编译运行的结果是: 
public class Something { 
public static void main(String[] args) { 
Other o = new Other(); 
new Something().addOne(o); 

public void addOne(final Other o) { 
o.i++; 


class Other { 
public int i; 

A、编译时出错 
B、运行时出错 
C、正确运行


44.下面代码如何使成员变量m 被函数fun()直接访问? 
class Test{ 
private int m; 
public static void fun() { 
// some code… 


A、将private int m 改为protected int m 
B、将private int m 改为 public int m 
C、将private int m 改为 static int m 
D、将private int m 改为 int m


45.面哪几个函数是public void example(){…}的重载函数?(复选题) 
public void example( int m){…} 
public int example(){…} 
public void example2(){…} 
public int example ( int m, float f){…} 
46.下面的代码段中,执行之后i 和j 的值是什么? 
int i = 1; 
int j; 
j = i++; 
A、1, 1 
B、1, 2 
C、2, 1 
D、2, 2


47.已知如下的命令执行 java MyTest a b c请问哪个语句是正确的? 
A、args[0] = “MyTest a b c” 
B、args[0] = “MyTest” 
C、args[0] = “a” 
D、args[1]= ‘b’


48.如下代码正确的结果是: 
public class Test 

long a[] = new long[10]; 
public static void main ( String arg[] ) { 
System.out.println ( a[6] ); 


没有输出 
输出0 
编译时出错 
运行时出错


49.下面代码输出的结果是:(复选题) 
public class Test 

public static void main(String arg[]) 

int i = 5; 
do { 
System.out.println(i); 
} while (–i>5) 
System.out.println(“finished”); 





finished


50.在如下源代码文件Test.java中, 哪个是正确的类定义?(复选题)


public class test { 
public int x = 0; 
public test(int x) 

this.x = x; 

}


public class Test{ 
public int x=0; 
public Test(int x) { 
this.x = x; 

}


public class Test extends T1, T2 { 
public int x = 0; 
public Test (int x) { 
this.x = x; 

}


public class Test extends T1{ 
public int x=0; 
public Test(int x){ 
this.x = x; 

}


51.class J_Test{ 
public static void main(String args[]) 

int i= 99; 
mb_operate(i); 
System.out.print(i+100); 
} // End of method: main 
static void mb_operate(int i) 

i+=100; 
} // End of method: mb_ operate 
} // End of class: J_Test 
上面程序的输出是什么? ( ) 
A、 99 B、 199 C、 299 D、 99100 
下面代码运行的结果是: 
String s = new String(“Bicycle”); 
int iBegin = 1; 
char iEnd = 3; 
System.out.println(s.substring(iBegin, iEnd)); 
A、Bic 
B、ic 
C、icy 
D、error:no method matching substring(int,char) 
53.class J_StringBuffer{ 
public static void main(String args[]){ 
StringBuffer a = new StringBuffer(“A”); 
StringBuffer b = new StringBuffer(“B”); 
mb_operate(a, b); 
System.out.println(a + “.” + b); 
} // End of method: main


static void mb_operate(StringBuffer x, StringBuffer y){ 
x.append(y); 
y=x; 
} // End of method: mb_operate 
} // End of class: J_StringBuffer 
上面程序的输出是什么? 
A、A.B 
B、A.A 
C、AB.AB 
D、AB.B


54.认真阅读下段例程, 
1) class Super{ 
2) public float getNum(){return 3.0f;} 
3) } 
4) 
5) public class Sub extends Super{ 
6) 
7) } 
下面语句,哪句放在第6行会引起编译错误? 
A、public float getNum(){return 4.0f;} 
B、public void getNum(){} 
C、public void getNum(double d){} 
D、public double getNum(float d){return 4.0d;}


55.在Q2_2类哪个是合法的覆盖(override)? 
public clsss Q2_1 

public void method(int k){}; 

class Q2_2 extends Q2_1 


A、public void method(int i){}; 
B、public void method(int j,int k){} 
C、public float method(int k){}; 
D、private void method(int k){};


56.在Q2_2类中下面选项哪个没有形成合法的覆盖(override)? (复选题) 
public class Q2_1 

protected void method(int k ,char c){}; 

class Q2_2 extends Q2_1 


A、public void method(int i,char c){} 
B、public void method(char c, long n){} 
C、public float method(int k,char c){return 3.2F;} 
D、protected void method(int k,char c){}


57.下面的类中,哪个不是合法的重载(overload)? 
public class Q1 

public void method(int i){} 

A、private void method(int i,int j){} 
B、public void method(int k){} 
C、private float method(float f){} 
D、public String method(int i,int j){} 
E、public float method(float f){}


58.看下面的代码,选择正确的结论: 
class SuperClass 

int i=8 ; 
SuperClass() 

add(1); 

void add(int j) 

i=i+j; 


class SubClass extends SuperClass 

int i=8; 
void add(int j) 

i=i+2*j; 


public class MainClass 

public static void main(String args[]) 

SuperClass a=new SubClass(); 
System.out.println(a.i); 


A 、编译时出现错误 B、运行时出现错误 
C、输出 10 D、输出 8


59.阅读以下例程, 
int i=1,j=10; 
do{ 
if(i++>–j) continue; 
}while(i < 5); 
此段程序执行后,i和j的值是: 
A、 i=6 j=5 
B、 i=5 j=5 
C、 i=6 j=4 
D、 i=5 j=6 
E、 i=6 j=6


60.对垃圾回收机制叙述正确的是:(复选题) 
A、垃圾回收总是在程序结束时由虚拟机启动 
B、一个对象在没有reference时会立即被回收 
C、垃圾回收时机是没有保证的 
D、程序员不能主动唤起垃圾回收


61.以下语句中有语法错误的是: 
A、 for(;;;); 
B、 for (int i=0;i < 100;i++){}; 
C、 if (a < 0) a++; 
D、 ; ; ;


62.选择程序的标准输出结果 
public class WhatIsX 

public static void f(StringBuffer x) 

x=x.append(x); 

public static void main(String[] args) 

StringBuffer x=new StringBuffer(“1″); 
f(x); 
System.out.println(x); 


A、1 
B、11 
C、2 
D、0


63.请问下面程序代码中,最后的a,b变量所存放的数值是什么? 
int x,a=5,b=3; 
x=a+++b– 
A、x=8,a=5,b=3 
B、x=8,a=6,b=2 
C、x=7,a=5,b=2 
D、x=9,a=6,b=3


64.下面程序代码运行完毕后,变量值会多少? 
class A 

public static void main(String args[]) 

int x=5; 
switch(x) 

case 5: x++; 
System.out.println(x); 
case 2+4: 
System.out.println(x); 
default: 
x+=2; 
System.out.println(x); 


A、5 
B、6 
C、7 
D、5,6 
E、6,7 
F、6,6


65.public class Test{ 
public static void main(String[] args){ 
String foo=args[1]; 
String bar=args[2]; 
String baz=args[3]; 


java Test Red Green Blue 
baz的值是多少? 
A、baz has value of “”


B、baz has value of null


C、baz has value of “Red”


D、baz has value of “Blue”


E、baz has value of “Green”


F、the code does not compile


G、the program throw an exception


66. int index=1; 
int foo[]=new int[3]; 
int bar=foo[index]; 
int baz=bar+index;


结果是多少?


A、baz has a value of 0


B、baz has value of 1


C、baz has value of 2


D、an exception is thrown


E、the code will not compile


67.定义一个类名为“MyClass”的类,并且该类可被一个工程中的所有类访问,那么该类的正确声明应为: 
A、private class MyClass extends Object 
B、class MyClass extends Object 
C、public class MyClass 
D、private class MyClass extends Object


68.下面的哪段代码将不会出现编译错误? 
A、int i = 0; 
if(i){ 
System.out.println(“Hi”); 

B、String a = “1″; 
boolean b = true; 
if( a = = b) 

System.out.println(” so true”); 

C、int i = 1; 
int j = 2; 
if(i = = 1 &| j = =2 ) 
System.out.println(“ok”);} 
D、int i = 1; 
int j = 2; 
if(i = = 1|| j = =2 ) 
System.out.println(“ok”);}


答案: 
题号 1 2 3 4 5 6 7 8 9 10 
答案 D D B A C D A A B C 
题号 11 12 13 14 15 16 17 18 19 20 
答案 D C B D B C C B D B C 
题号 21 22 23 24 25 26 27 28 29 30 
答案 C A D A A BC D ABD D A 
题号 31 32 33 34 35 36 37 38 39 40 
答案 C CD C B C D C CD C B 
题号 41 42 43 44 45 46 47 48 49 50 
答案 A B C C AD C C C BD ABD 
题号 51 52 53 54 55 56 57 58 59 60 
答案 B B D B A BC B D D CD 
题号 61 62 63 64 65 66 67 68 
答案 A B B F G B C D
aspx