软件工程师笔试试题Java.docx
- 文档编号:5083609
- 上传时间:2022-12-13
- 格式:DOCX
- 页数:11
- 大小:19.81KB
软件工程师笔试试题Java.docx
《软件工程师笔试试题Java.docx》由会员分享,可在线阅读,更多相关《软件工程师笔试试题Java.docx(11页珍藏版)》请在冰豆网上搜索。
软件工程师笔试试题Java
软件工程师笔试试题(JAVA)
一、填空题(10分)
1.执行下列代码后的结果是什么?
intx,a=2,b=3,c=4;x=++a+b+++c++;
2.包包含了Collection的接口和类的API
3.main方法的声明格式包括
4.下列程序中构造了一个SET并且调用其方法add(),输出结果是
publicclassA{
publicinthashCode(){return1;}
publicBooleanequals(Objectb){returntrue}
publicstaticvoidmain(Stringargs[]){
Setset=newHashSet();
set.add(newA());
set.add(newA());
set.add(newA());
System.out.println(set.size());
}
}
5.下列程序的运行结果是
classA{
classDog{
privateStringname;
privateintage;
publicintstep;
Dog(Strings,inta){
name=s;
age=a;
step=0;
}
publicvoidrun(Dogfast){
fast.step++;
}
}
publicstaticvoidmain(Stringargs[]){
Aa=newA();
Dogd=a.newDog("Tom",3);
d.step=25;
d.run(d);
System.out.println(d.step);
}
}
二、选择题(20分)
1.欲构造ArrayList类的一个实例,此类继承了List接口,下列哪个方法是正确的?
AArrayListmyList=newObject();
BListmyList=newArrayList();
CArrayListmyList=newList();
DListmyList=newList();
2.paint()方法使用哪种类型的参数?
AGraphics
BGraphics2D
CString
DColor
3.指出正确的表达式
Abyte=128;
BBoolean=null;
Clongl=0xfffL;
Ddouble=0.9239d;
4.指出下列程序运行的结果
publicclassExample{
Stringstr=newString("good");
char[]ch={'a','b','c'};
publicstaticvoidmain(Stringargs[]){
Exampleex=newExample();
ex.change(ex.str,ex.ch);
System.out.print(ex.str+"and");
Sytem.out.print(ex.ch);
}
publicvoidchange(Stringstr,charch[]){
str="testok";
ch[0]='g';
}
}
Agoodandabc
Bgoodandgbc
Ctestokandabc
Dtestokandgbc
5.要从文件"file.dat"文件中读出第10个字节到变量C中,下列哪个方法适合?
AFileInputStreamin=newFileInputStream("file.dat");
in.skip(9);intc=in.read();
BFileInputStreamin=newFileInputStream("file.dat");
in.skip(10);intc=in.read();
CFileInputStreamin=newFileInputStream("file.dat");
intc=in.read();
DRandomAccessFilein=newRandomAccessFile("file.dat");
in.skip(9);intc=in.readByte();
6.容器被重新设置大小后,哪种布局管理器的容器中的组件大小不随容器大小的变化而改变?
ACardLayout
BFlowLayout
CBorderLayout
DGridLayout
7.给出下面代码:
publicclassPerson{
staticintarr[]=newint[10];
publicstaticvoidmain(Stringa[])
{
System.out.println(arr[1]);
}
}
那个语句是正确的?
A编译时将产生错误;
B编译时正确,运行时将产生错误;
C输出零;
D输出空。
8.哪个关键字可以对对象加互斥锁?
Atransient
Bsynchronized
Cserialize
Dstatic
9.下列哪些语句关于内存回收的说明是正确的?
A程序员必须创建一个线程来释放内存;
B内存回收程序负责释放无用内存
C内存回收程序允许程序员直接释放内存
D内存回收程序可以在指定的时间释放内存对象
10.下列代码哪几行会出错:
1)publicvoidmodify(){
2)intI,j,k;
3)I=100;
4)while(I>0){
5)j=I*2;
6)System.out.println("Thevalueofjis"+j);
7)k=k+1;
8)I--;
9)}
10)}
Aline4
Bline6
Cline7
Dline8
三、简答题(40分)
1.请对Structs的架构进行描述。
2.Servlet有性能安全问题吗?
如何使用?
3.为什么会使用同步控制?
其优缺点是什么?
4.Hibernate的组建方式?
如何配置?
映射是如何实现的?
有几种对应关系?
5.应用开发有哪些种模式?
至少写出5种。
并请介绍singleon模式的工作方式。
6.HashMap与Hashtable的区别。
7.EJB的几种类型?
8.在你实施过的项目中哪些是成功的?
你认为成功的要素是什么?
四、编程题(30分)
1.打印输出10行杨晖三角形。
2.有下面一段Server段程序,目的是能够同时服务多个客户,客户的请求是一句话(一个String)。
如果这个请求的内容是字符串"plain"的话,服务器仅将"hello"字符串返回给用户。
否则将用户的话追加到当前目录的文本文件Memo.txt中(路径为"Memo.txt"),并向用户返回"OK"。
注意Server并发的处理多用户,Memo.txt被共享,要求不能出现数据不一致。
Server的程序如下文件Server.java:
publicclassServer{
publicstaticvoidmain(Stringargs[]){
MemoControllermemoController=newMemoController();
try{
ServerSocketss=newServerSocket(1999);
while(true){
Sockets=ss.accept();
try{
UserThreadt=newUserThread(s,memoController);
t.start();
}catch(Exceptione){
e.printStackTrace();
}
}
}catch(Exceptione){
e.printStackTrace();
}finally{
memoController.close();
}
}
}
类UserThread程序如下:
文件UserThread.java:
publicclassUserThreadextendsThread{
Sockets;
MemoControllermemo;
publicUserThread(Sockets,MemoControllermemo){
this.s=s;
this.memo=memo;
}
publicvoidrun(){
try{
BufferedReaderbr=newBufferedReader(newInputStreamReader(s.getInputStream()));
PrintWriterpw=newPrintWriter(newOutputStreamWriter(s.getOutputStream()));
Stringreq=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(Exceptione){
e.printStackTrace();
}
}
}
请根据题目的要求和现有的Server.java,UserThread.java的程序完成类MemoController.java的程序。
答案
一、填空题(10分)
1.x=10,a=3,b=4,c=5
2.java.util
3.(public)(static)(void)(main)(Stringargs[])
4.1
5.26
二、选择题(20分)
1.B
2.A
3.C
4.B
5.A
6.B
7.C
8.B
9.B
10.C
三、简答题(40分)
1.Struts是一种典型MVC架构,其中M(odel)为模型,V(iew)为视图,即jsp展现层,C(ontrl)为控制层,即action层;这种架构的最大优点就是MVC三层分离,便于开发、维护、扩展;模型--视图--控制器(Model-View-Controller,MVC)体系突出了Servlets和JSP的优点,同时也令它们的缺点最小化。
在实现中,用户请求被发送到控制器actionservlet(唯一实例),actionservlet决定请求的性质,并且根据请求的类型传送给合适的action进行处理。
action调用相关模型组件完成操作,处理完毕后,结果会发送回actionservlet,actionservlet选择适合的视图显示它。
2.Servlet/JSP技术由于其多线程运行而具有很高的执行效率。
由于Servlet/JSP默认是以多线程模式执行的,所以,在编写代码时需要非常细致地考虑多线程的安全性问题。
然而,很多人编写Servlet/JSP程序时并没有注意到多线程安全性的问题,这往往造成编写的程序在少量用户访问时没有任何问题,而在并发用户上升到一定值时,就会经常出现一些莫明其妙的问题。
3.为了线程安全要使用同步,优点是保证了数据安全,缺点是降低了性能。
4.Hibernate通过xml配置文件来实现OR映射。
配置是通过编写XML实现的,Hibernate通过配置文件实现JAVABEAN和数据库的映射。
常见的关系有one-to-one,many-to-one,one-to-many,many-to-many。
5.略
6.
(1)Hashtable继承自Dictionary类,而HashMap是Java1.2引进的Mapinterface的一个实现
(2)HashMap允许将null作为一个entry的key或者value,而Hashtable不允许
(3)HashMap把Hashtable的contains方法去掉了,改成containsvalue和containsKey。
因为contains方法容易让人引起误解。
在HashMap中,null可以作为键,这样的键只有一个;可以有一个或多个键所对应的值为null。
当get()方法返回null值时,即可以表示HashMap中没有该键,也可以表示该键所对应的值为null。
因此,在HashMap中不能由get()方法来判断HashMap中是否存在某个键,而应该用containsKey()方法来判断。
(4)最大的不同是,Hashtable的方法是Synchronize的,而HashMap不是,在多个线程访问Hashtable时,不需要自己为它的方法实现同步,而HashMap就必须为之提供外同步。
HashMap的同步问题可通过Collections的一个静态方法得到解决:
MapCollections.synchronizedMap(Mapm)
这个方法返回一个同步的Map,这个Map封装了底层的HashMap的所有方法,使得底层的HashMap即使是在多线程的环境中也是安全的。
7.
会话(Session)Bean,实体(Entity)Bean消息驱动的(MessageDriven)Bean
会话Bean又可分为有状态(Stateful)和无状态(Stateless)两种
实体Bean可分为Bean管理的持续性(BMP)和容器管理的持续性(CMP)两种
8.略
四、编程题(30分)
1.
classyanghui
{
publicstaticvoidmain(Stringargs[])
{
inti,j;
intyhlevel=10;
intyanghui[][];
System.out.println("杨晖三角形:
");
yanghui=newint[yhlevel][];
for(i=0;i yanghui[i]=newint[i+1]; yanghui[0][0]=1; for(i=1;i { yanghui[i][0]=1; for(j=1;j yanghui[i][j]=yanghui[i-1][j-1]+yanghui[i-1][j]; yanghui[i][yanghui[i].length-1]=1; } for(i=0;i { for(j=0;j System.out.print(yanghui[i][j]+""); System.out.println(); } } } 输出结果是: 杨晖三角形: 1 11 121 1331 14641 15101051 1615201561 172135352171 18285670562881 193684126126843691 2. importjava.io.*; publicclassMemoController{ FileOutputStreamfos; OutputStreamWriterosw; BufferedWriterbw; publicMemoController(){ try{ fos=newFileOutputStream("memo.txt",true); osw=newOutputStreamWriter(fos); bw=newBufferedWriter(osw); }catch(FileNotFoundExceptione){}; } publicsynchronizedvoidappend(Strings){ try{ bw.write(s,0,s.length()); bw.flush(); bw.close(); osw.close(); fos.close(); }catch(IOExceptione){} } publicstaticvoidmain(Stringargs[]){ MemoControllermmc=newMemoController(); mmc.append("Iamxubin"); } }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程师 笔试 试题 Java