JAVA工程师笔试题
- 格式:doc
- 大小:56.00 KB
- 文档页数:6
软件工程师笔试考题(JAVA部分)
姓名: 日期: 电话:
院校: 专业:
一、填空题(每空3分,共15分)
1、执行下列代码后的结果? int x,a=2,b=3,c=4; x=++a+b+++c++; x= ,a= ,b= ,c=
2、执行下列代码后的输出结果是
class A{
public static void main(String args[]){
System.out.println(args.length);
}
}
3、执行以下程序后的输出结果是
class A{
public static void main(String[] args){
boolean flag; int i=0;
do{
flag = false;
System.out.println(i++);
flag = i<10;
continue;
}while((flag)?true:false);
}
}
4、Math.round(11.5)等于多少? Math.round(-11.5)等于多少________
5、面向对象的语言特征__________
二、选择题(每空3分,共12分)
1.下面那个是Runable接口的方法?
A. run
B. start
C. yield
D. stop
2.下面列出的那个不是java的保留字?
A. if
B. goto
C. while
D. case
E. then
3.十进制变量i的值为12,那么八进制的变量i的值为:
A. O08
B. O10
C. O12
D. O14
E. O16
4.You have the following code. Which numbers will cause "T est2" to be printed?(多选题)
switch(x){
case 1:
System.out.println("T est1");
case 2:
case 3:
System.out.println("T est2");
break;
}
A. 0
B. 1
C. 2
D. 3
E. 4
三、问答题(每空4分,共16分)
1、谈谈final, finally, finalize的区别
2、简述String与StringBuffer的区别
3、简要说明Overload和Override的区别。
Overloaded的方法是否可以改变返回值的类型? 4,char型变量中能不能存贮一个中文汉字?为什么?
四、程序阅读题(求以下程序的执行结果)(每题8分,共16分)
第一题:
public class Example{
String str=new String("good");
char[]ch={'a','b','c'};
public static void main(String args[]){
Example ex=new Example();
ex.change(ex.str,ex.ch);
System.out.print(ex.str+" and ");
System.out.print(ex.ch);
}
public void change(String str,char ch[]){ str="test ok";
ch[0]='g';
}
}
Output is:
第二题:
publicclass Test2 {
staticboolean foo(char c) {
System.out.print(c);
returntrue;
}
publicstaticvoid main(String[] argv) {
int i = 0;
for (foo('A'); foo('B') && (i < 2); foo('C')) {
i++;
foo('D');
}
}
}
Output is:
五、指出下列代码的问题(每题8分,共8分)
第一题:
public class Something {
public static void main(String[] args) {
Something s = new Something();
System.out.println("s.doSomething() returns " + doSomething()); }
public String doSomething() {
return"Do something ...";
}
}
Ans:
六、编程题(第一题15分,第二题18分,共33分)
第一题:用JA V A实现冒泡算法,对3,1,6,2,9,0,7,4,5进行由小到大排序,并输出。
第二题:有下面一段Server段程序,目的是能够同时服务多个客户,客户的请求是一句话(一个String)。
如果这个请求的内容是字符串"plain"的话,服务器仅将"hello"字符串返回
给用户。
否则将用户的话追加到当前目录的文本文件Memo.txt中(路径为"Memo.txt"),并向用户返回"OK"。
注意Server并发的处理多用户,Memo.txt被共享,要求不能出现数据不一致。
Server的程序如下文件Server.java:
public class Server{
public static void main(String args[]){
MemoController memoController = new MemoController();
try{
ServerSocket ss = new ServerSocket(1999);
while (true){
Socket s = ss.accept();
try{
UserThread t = new UserThread(s, memoController);
t.start();
}catch(Exception e){
e.printStackTrace();
}
}
}catch(Exception e){
e.printStackTrace();
}finally{
memoController.close();
}
}
}
类UserThread程序如下文件UserThread.java:
public class UserThread extends Thread{
Socket s;
MemoController memo;
public UserThread (Socket s, MemoController memo){
this.s = s;
this.memo = memo;
}
public void run(){
try{
BufferedReader br = new BufferedReader(new
InputStreamReader(s.getInputStream()));
PrintWriter pw = new PrintWriter(new
OutputStreamWriter(s.getOutputStream()));
String req = br.readLine();
if (req.equals("plain")){
pw.println("hello");
}else{
memo.append(req);
pw.println("OK");
}
pw.flush();
pw.close();
br.close();
s.close();
}catch(Exception e){
e.printStackTrace();
}
}
}
请根据题目的要求和现有的Server.java, UserThread.java的程序完成类MemoController.java 的程序。