Java软件工程师企业测评测试题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Java软件工程师企业测评测试题
一、选择题:(每题2分)
1.名为HelloWorld.java的Java应用程序如下:(B)
将这个程序放在C:\Test下,然后在命令行窗口中,进入到C:\Test路径执行如下指令:javac helloworld.java将得到什么结果?
A.编译出错。
B.编译成功,生成名为HelloWorld.class的文件。
C.编译成功,生成名为helloworld.class的文件。
D.找不到名为helloworld.java的文件。
2.下面的程序名为Student.java:B
使用如下指令编译:javac Student.java。
将会得到什么结果?
A.将会顺利通过编译,并将产生一个Student.class的类文件。
B.编译时在//3处出错。
C.编译时在//2处出错。
D.编译时在//1处出错。
3.关于下面的类描述中正确的是:C
A.编译出错
B.编译通过,运行出错
C.编译通过,运行时输出“I am an int”????
D.编译通过,运行时输出“I am a string”
4.关于下述程序:C
描述正确的是?
A.编译通过,运行时打印出5。
B.编译通过,运行时打印出23。
C.编译不通过,在//2处有错误,因为此处f必须是一个int类型的变量。
?
D.编译不通过,在//1处有错误,不能这样定义变量
5.关于下述程序:
描述正确的是?编译通过,运行17.0/0=5.666? 17/0=5
A.编译出错
B.编译通过,运行时//1、//2处均出现异常
C.编译通过,运行时//1处得到一个无穷大值,//2处将出现异常
D.编译通过,运行时//1处出现异常,//2处将得到一个无穷大值
6.关于下述程序:D
描述正确的是?
A.编译出错。
B.编译通过,执行的时候在//2处报错。
C.编译通过,执行时在//3处打印出3.234,在//4处打印出3.234。
D.编译通过,执行时在//3处打印出1.2342.0,在//4处打印出3.234。
8.下述程序:C
编译运行后在//1和//2处分别打印出什么值?
A. 2和2
B. 3和3
C. 3和4
D. 4和3
9.关于下述三个接口:A
正确的是?
A.接口IC不能通过编译,因为它继承了两个接口。
B.接口IC不能通过编译,因为它定义了一个和IA中一样的方法methodA()。
C.接口IC不能通过编译,因为它继承了两个接口,并且还定义了一个和IA一样的methodA()方法。
D.接口IC能够顺利通过编译。
10.下述语句执行结果为:A
A. arr[0] 是0
B. arr[9] 是0
C. arr[10]是0
D. arr[0] 是null
11.关于break和continue语句,下面哪些说法是错误的?AD
A.break只能用于循环语句中。
B.continue只能用于循环语句中。
C.在循环语句中,break语句将终止循环;而continue是略过当前循环中剩余的语句进入下一次循环。
D.在循环语句中,continue语句将终止循环;而break是略过当前循环中剩余的语句进入下一次循环。
12.下面哪些标识符是合法的?ABD
A. IAMAClass
B. $byte
C. const
D. _year
13.关于垃圾收集的哪些叙述是对的?B
A.程序开发者必须自己创建一个线程进行内存释放的工作。
B.垃圾收集将检查并释放不再使用的内存。
C.垃圾收集允许程序开发者明确指定并立即释放该内存。
D.垃圾收集能够在期望的时间释放被java对象使用的内存。
14.下面的程序的输出结果是:()B
A.SuperClass/SubClass/SuperClass()/SubClass()/
B.SuperClass/ SuperClass()/SubClass /SubClass()/
C.SubClass / SuperClass / SubClass()/SuperClass()/
D.SubClass/ SubClass()/SuperClass / SuperClass()/
15.下面程序的运行结果是:( A )
A. g(SubClass)/SubClass.f()/
B. g(SuperClass)/SuperClass.f()/
C. g(SuperClass)/SubClass.f()/
D. g(SubClass)/SuperClass.f()/
16.取出字符串String target = "IbmSunJavaBeaWeblogicOracle..."中的子串“Java”的语句是:(B )
A. target.substring(5,10);
B. target.substring(6,10); java
C. target.substring(5,9);
D. target.substring(6,9); jav
17.下列描述正确的是:( B )
A.hashCode返回是对象在内存唯一的标识,对象不同,hashCode返回值一定不同。
B.hashCode方法可以重写,但重写的逻辑要和equals保持一致性。
C.语句System.out.println("java"=="java");打印出的结果为“false”。
D.HashSet容器在存放某一类的对象时,改变该类的hashCode方法可能会影响到HashSet容器的效率
18.属于Collection容器的方法是:( AC)
A. iterator
B. hasNextElement
C. toArray
D. next
19.下列三条输出语句输出的结果为:( C )
A. 156.0/-167.0/-124/
B. 157.0/-167.0/-123/
C. 157.0/-166.0/-124/
D. 156.0/-166.0/-123/
20.下面的程序会有编译错误,更正的方法为:( ABC )
A. 将变量s1声明为static
B. 将变量s1声明为public
C. 将变量s1声明为final
D. 将内部类InnerClass声明为static
21.已有接口定义:B
下面的类定义不会有编译错误的是:
22.下面的程序输出的结果为:
A. 24
B. 23
C. 25
D. 22 ???
二、简答题:(每题4分)
1.简述单例模式的思路,并且写出一种实现方案:
2.接口,抽象类,具体类如何搭配使用
3.简述java的异常处理机制
4.写出private、public、protected以及Default各自的访问范围:
5.用简短的语言解释下列词汇
a)JVM
b)垃圾回收机制
c)多态
d)动态绑定
e)关键字synchronized(同步代码块)
三、编程题(每题8分)
1.写一个类,当该类的实例创建时即启动一个线程,按照指定格式每隔5秒循环打印出当前的时间(提示:使用Runnable接口或内部类创建线程。
(结合run接口和thread)
public class ThreatDemo implements Runnable{
public ThreatDemo(){
Thread t=new Thread(this);
t.start();
}
public void run() {
while (true){
Date date=new Date();
SimpleDateFormat s=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try{
Thread.sleep(5000);
}catch(InterruptedException e){
e.printStackTrace();
}
System.out.println(s.format(date));
}
}
public static void main(String[] args) {
ThreatDemo fg = new ThreatDemo();
System.out.println("打印当前时间——>");
}
}
2.写一个程序统计输入字符串中以“,”分隔的各种单词出现的次数。
例如:输入的字符串为“java,java,j2ee,ibm,j2ee,ibm,j2me,java”,则该程序的输出结果应该为:
j ava3个;j2ee2个;ibm2个;j2me1个。
public static void main(String[] args) {
String str = "java,java,j2ee,ibm,j2ee,ibm,j2me,java";
String s[] = str.split(",");
int a[] = new int[s.length];
for(int i = 0;i<s.length;i++){
String temp = new String((String) s[i]);
for(int j = 0;j<s.length;j++){
if(temp.equals(s[j]))a[i]++;
}
}
Set<String> set = new HashSet<String>();
for(int i = 0;i<s.length;i++){
set.add(s[i]+a[i]);
}
Iterator<String> iter = set.iterator();
while(iter.hasNext()){
System.out.println(iter.next()+"个");
}
}
}
3.已知在文件路径“c:\temp\targe t.bmp”,写出Java程序将该文件同名拷贝到路径“c:\bak”下。
注意:由于文件较大,应考虑到程序的效率问题。
public class CopyDemo {
public static void main(String[] args) throws Exception {
File f1=new File("d:"+File.separator+"demo.txt");
File f2=new File("c:"+File.separator+"demo.txt");
InputStream input=null;
input=new FileInputStream(f1);
OutputStream out=null;
out=new FileOutputStream(f2);
if(input!=null&&out!=null){
i nt temp=0;
w hile((temp=input.read())!=-1){ 1.f2必须有所考文件名吗是的2.c盘不需要提前创建所拷贝的文件是的3.d盘中所要考文件输入内容能否被写入c盘呢,可以 4.f1中的文件名必须与f2中的文件名一致吗可以不一样。
out.write(temp);
}
S ystem.out.println("拷贝完成!");
}else{
S ystem.out.println("拷贝失败!");
}
input.close();
out.close();
}
}
4.写出一段程序,从备选字符串“red”、“green”、“blue”、“black”、“white”中随机选出3个不同的字符串,并打印到控制台。
public class Color {
public static void main(String[] args) {
String str="red,green,blue,black,white";
Random r=new Random();
String[] s=str.split(",");
Set set=new HashSet();
for(int i=0;i<s.length;i++){
set.add(r.nextInt(5));
if(set.size()==3)
break;
}
Iterator i=set.iterator();
while(i.hasNext()){
//System.out.println(i.next());
System.out.println(s[(Integer)i.next()]);
}
}
}
11。