java软件工程师试题.docx
- 文档编号:15063622
- 上传时间:2023-06-30
- 格式:DOCX
- 页数:80
- 大小:38.98KB
java软件工程师试题.docx
《java软件工程师试题.docx》由会员分享,可在线阅读,更多相关《java软件工程师试题.docx(80页珍藏版)》请在冰点文库上搜索。
java软件工程师试题
Java工程师笔试题
一、问答题(共两题每题5分)
1、在软件开发的形式中,有单独开发和团队开发,请您分析两种开发形式的利弊?
2、除了工资还有什么福利对你具有吸引力?
二、案例分析(共四题每题5分)
1、案例一:
项目经理陈经理所在的项目组接到总监分配的一项紧急任务,要求在2天内完成A项目,陈经理马上召集其下属工程师小张和小黄进行工作分配并分析项目要点和各个要点的主要做法。
时间已经过去了1天半,工程师小张发现,根据陈经理对项目要点的主要做法行不通,但时间已经所剩不多了。
问题一:
如果你是小张,你会怎么做?
为什么?
问题二:
由于项目做法的问题导致项目的进度无法按总监的要求在2天内完成,总监怪罪下来,你认为这是谁的责任,为什么?
2、案例二:
工程师小李和工程师小陈分别在同一个项目组负责软件开发工作,他俩是同时进入公司的,而且被分配在邻座,因此关系非常好。
工程师小李最近发现小陈经常在上班时间做一些与本公司业务无关的工作,并且在一次偶然的机会让小李发现,小陈的薪资比自己的薪资要高一倍多。
问题一:
如果你是小李,你会怎么做,为什么?
问题二:
如果你是小陈,你发现做的事情被小李发现了,你会怎么做,为什么?
技术题
一、基础题,共十题每题2分
1、GC是什么?
为什么要有GC?
2、shorts1=1;s1=s1+1;有什么错?
shorts1=1;s1+=1;有什么错?
Bytea=1,b=1,byec=a+b有什么错?
Shorta=1,b=1,Shortc=a+b有什么错(答对一个给分)
3、Java有没有goto?
4、数组有没有length()这个方法?
String有没有length()这个方法?
5、Overload和Override的区别。
Overloaded的方法是否可以改变返回值的类型?
(答对第一句话即可得满分,或者意思差不多的即可)
6、List,Set,Map是否继承自Collection接口?
7、构造器Constructor是否可被override?
8、当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法?
9、当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递?
(答对第一句即可得满分)
10、EJB中LocalHome的作用是什么?
二、程序测试题(共四小题每题5分)
1、谈谈你对以下程序的看法。
classMyStringextendsString{
publicstaticinti=0;
privatechar[]chars={‘a’,’b’,’c’};
publicMyString(){}
static{
System.out.println(“i=”+(i++));
}
publicStringgetString(){
Strings=“”;
for(charc:
chars){
s+=c;
}
Returns;
}
}
2、请写出以下程序的输出。
classB{
privateintradius=10;
publicvoiddraw(){
System.out.println("B.draw(),radius="+radius);
}
publicB(){
System.out.println("Bconstructor");
draw();
}
}
publicclassAextendsB{
privateintradius=1;
publicvoiddraw(){
System.out.println("A.draw(),radius="+radius);
}
publicA(intradius){
this.radius=radius;
System.out.println("Aconstructor");
}
publicstaticvoidmain(String[]args){
Aa=newA(5);
}
}
3、写出下列程序运行结果。
publicclassTest{
staticTestst=newTest();
staticintx;
staticinty=0;
publicTest(){
x++;
y++;
}
publicTest(intx,inty){
this.x=x;
this.y=y;
}
publicstaticTestgetInstance(){returnst;}
static{
inti=0;
System.out.println("i="+i);
}
voidtest(){
Innerinner2=newInner2();
inner2.display();
}
publicstaticvoidmain(String[]args){
Testtest1=Test.getInstance();
test1.test();
System.out.println("test1:
x="+test1.x+";y="+test1.y);
Testtest2=newTest();
test2.test();
System.out.println("test2:
x="+test2.x+";y="+test2.y);
Testtest3=newTest(0,0);
test3.test();
System.out.println("test3:
x="+test3.x+";y="+test3.y);
}
publicclassInner{
inta=1;
voiddisplay(){System.out.println("display:
a="+a);}
}
publicclassInner2extendsInner{
inta=2;
voiddisplay(){System.out.println("display:
a="+a);}
}
}
4、谈谈你对以下JavaScript函数的看法,能否提高效率?
如果能请给出需要修改的地方,并讲出原因。
functiongetFormAsString(formName){
returnString="";
formElements=document.forms[formName].elements;
for(vari=formElements.length-1;i>=0;--i){
returnString=returnString+"&"+escape(formElements[i].name)+"="+escape(formElements[i].value);
}
returnreturnString;
}
三、编程题(共三题,每题10分)
1、写一个Singleton的类出来。
2、给你一组字符串如:
iu7i8hy4jnb2,让你编程输出里面的数字:
7842
3、给你一组字符如{1,3,4,7,2,1,1,5,2},让你输出里面出现次数最多且数值最大的一个,出现几次
4、编成获取服务器本地ip地址
四、综合附加题(共5每题10分)
1、用Ajax写出客户端与服务器的简单异步调用(假设xmlHttp已被创建可以直接调用)
2、在Oracle数据库中有一表Table1,表中有一字段a,如何删除表中a字段的重复数据,请使用光标与分组的办法?
3、现在Oracle10g中有一表
FLWINR
TCHNUM
TCHINR
TCHNAM
CALMOD
SUBFLWINR
NXTTCHNUM
760
1
C02
分配专业室
Flw1
2
(表名为Table1,其中关键字为FLWINR+TCHNUM+NXTTCHNUM)第一行是表的所有属性,第二行是其中的一条记录,当然假设该表有很多数据。
要求把条件”FLWINR='760'”的查询结果复制到新表中,该新表结构同Table1,命名为Table1_COPY。
请用一句sql语句写出来。
4、假设web服务器是Weblogic有以下的ejb代码及配置文件:
;;;
importjavax.ejb.*;
publicinterfaceHelloextendsEJBObject,Remote{
//thismethodjustget"HelloEJB"fromHelloEJB.
publicStringgetHello()throwsRemoteException;
}
;
importjavax.ejb.*;;;
importjava.util.*;
/**
*Thisinterfaceisextremelysimpleitdeclaresonly
*onecreatemethod.
*/
publicinterfaceHelloHomeextendsEJBHome{
publicHellocreate()throwsCreateException,RemoteException;
}
packagecom.leo;
importjavax.ejb.*;
publicclassHelloEJBimplementsSessionBean{
publicvoidejbCreate(){}
publicvoidejbRemove(){}
publicvoidejbActivate(){}
publicvoidejbPassivate(){}
publicvoidsetSessionContext(SessionContextctx){}
publicStringgetHello(){
returnnewString("Hello,EJB");
}
}
<?
xmlversion="1.0"?
>
<!
DOCTYPEejb-jarPUBLIC"-//SunMicrosystemsInc.//DTDEnterpriseJavaBeans1.2//EN""">
<ejb-jar>
<enterprise-beans>
<session>
<ejb-name>Hello</ejb-name>
<home></home>
<remote></remote>
<ejb-class></ejb-class>
<session-type>Stateless</session-type>
<transaction-type>Container</transaction-type>
</session>
</enterprise-beans>
</ejb-jar>
xmlversion="1.0"encoding="UTF-8"?
>
DOCTYPEweblogic-ejb-jarPUBLIC"-//BEASystems,Inc.//DTDWebLogic8.1.0EJB//EN""">
[CDATA[GeneratedbyXDoclet]]>
要求写一个JavaClient中调用HelloBean的类。
习题解答
习题1(第1章)
一、问答题
1.JamesGosling
2.需3个步骤:
1)用文本编辑器编写源文件。
2)使用javac编译源文件,得到字节码文件。
3)使用解释器运行程序。
3.源文件由若干个类所构成。
对于应用程序,必须有一个类含有publicstaticvoidmain(Stringargs[])的方法,含有该方法的类称为应用程序的主类。
不一定,但至多有一个public类。
4.setclasspath=D:
\jdk\jre\lib\rt.jar;.;
5.java和class
6.javaBird
7.独行风格(大括号独占行)和行尾风格(左大扩号在上一行行尾,右大括号独占行)
二、选择题
1.B。
2.D。
三、阅读程序
1.(a)Person.java。
(b)两个字节码,分别是Person.class和Xiti.class。
(c)得到“NoSuchMethodError”,得到“NoClassDefFoundError:
Xiti/class”,得到“您好,很高兴认识您nicetomeetyou”
习题2(第2章)
一、问答题
1.用来标识类名、变量名、方法名、类型名、数组名、文件名的有效字符序列称为标识符。
标识符由字母、下划线、美元符号和数字组成,第一个字符不能是数字。
false不是标识符。
2.关键字就是Java语言中已经被赋予特定意义的一些单词,不可以把关键字作为名字来用。
true和false不是关键字。
6个关键字:
classimplementsinterfaceenumextendsabstract。
3.boolean,char,byte,short,int,long,float,double。
4.float常量必须用F或f为后缀。
double常量用D或d为后缀,但允许省略后缀。
5.一维数组名.length。
二维数组名.length。
二、选择题
1.C。
2.ADF。
3.B。
4.BE。
5.【代码2】【代码3】【代码4】【代码5】。
6.B。
三、阅读或调试程序
1.属于操作题,解答略。
2.属于操作题,解答略。
3.属于操作题,解答略。
4.【代码1】:
4。
【代码2】:
b[0]=1。
5.【代码1】:
40。
【代码2】:
7
四、编写程序
1.publicclassE{
publicstaticvoidmain(Stringargs[]){
System.out.println((int)'你');
System.out.println((int)'我');
System.out.println((int)'他');
}
}
2.publicclassE{
publicstaticvoidmain(Stringargs[]){
charcStart='α',cEnd='ω';
for(charc=cStart;c<=cEnd;c++)
System.out.print(""+c);
}
}
习题3(第3章)
一、问答题
1.boolean
2.不可以
3.boolean
4.不是必须的
5.结束while语句的执行
6.可以
二、选择题
1.A。
2.C。
3.C。
三、阅读程序
1.你,苹,甜
2.Jeep好好
3.x=-5,y=-1
四、编程序题
1.publicclassXiti1{
publicstaticvoidmain(Stringargs[]){
doublesum=0,a=1;
inti=1;
while(i<=20){
sum=sum+a;
i++;
a=a*i;
}
System.out.println("sum="+sum);
}
}
2.publicclassXiti2{
publicstaticvoidmain(Stringargs[]){
inti,j;
for(j=2;j<=100;j++){
for(i=2;i<=j/2;i++){
if(j%i==0)
break;
}
if(i>j/2){
System.out.print(""+j);
}
}
}
}
3.classXiti3{
publicstaticvoidmain(Stringargs[]){
doublesum=0,a=1,i=1;
do{sum=sum+a;
i++;
a=(1.0/i)*a;
}
while(i<=20);
System.out.println("使用do-while循环计算的sum="+sum);
for(sum=0,i=1,a=1;i<=20;i++){
a=a*(1.0/i);
sum=sum+a;
}
System.out.println("使用for循环计算的sum="+sum);
}
}
4.publicclassXiti4{
publicstaticvoidmain(Stringargs[]){
intsum=0,i,j;
for(i=1;i<=1000;i++){
for(j=1,sum=0;j
if(i%j==0)
sum=sum+j;
}
if(sum==i)
System.out.println("完数:
"+i);
}
}
}
5.publicclassXiti5{
publicstaticvoidmain(Stringargs[]){
intm=8,item=m,i=1;
longsum=0;
for(i=1,sum=0,item=m;i<=10;i++){
sum=sum+item;
item=item*10+m;
}
System.out.println(sum);
}
}
6.publicclassXiti6{
publicstaticvoidmain(Stringargs[]){
intn=1;
longsum=0;
while(true){
sum=sum+n;
n++;
if(sum>=8888)
break;
}
System.out.println("满足条件的最大整数:
"+(n-1));
}
}
习题4(第4章)
一、问答题
1.封装、继承和多态。
2.当类名由几个单词复合而成时,每个单词的首字母使用大写。
3.名字的首单词的首字母使用小写,如果变量的名字由多个单词组成,从第2个单词开始的其它单词的首字母使用大写。
4.属性
5.行为
6.用类创建对象时。
没有类型
7.用类创建对象时。
8.一个类中可以有多个方法具有相同的名字,但这些方法的参数必须不同,即或者是参数的个数不同,或者是参数的类型不同。
可以。
9.可以。
不可以。
10.不可以。
11.一个类通过使用new运算符可以创建多个不同的对象,不同的对象的实例变量将被分配不同的内存空间。
所有对象的类变量都分配给相同的一处内存,对象共享类变量。
12.代表调用当前方法的对象。
不可以。
二、选择题
1.B。
2.D。
3.D。
4.D。
5.CD。
6.【代码1】【代码4】。
7.【代码4】。
三、阅读程序
1.【代码1】:
1,【代码2】:
121,【代码3】:
121。
2.sum=-100。
3.27。
4.【代码1】:
100,【代码2】:
20.0。
5.上机实习题目,解答略。
6.上机实习题目,解答略。
四、编程题
publicclassCPU{
intspeed;
intgetSpeed(){
returnspeed;
}
publicvoidsetSpeed(intspeed){
this.speed=speed;
}
}
HardDisk.java
publicclassHardDisk{
intamount;
intgetAmount(){
returnamount;
}
publicvoidsetAmount(intamount){
this.amount=amount;
}
}
publicclassPC{
CPUcpu;
HardDiskHD;
voidsetCPU(CPUcpu){
this.cpu=cpu;
}
voidsetHardDisk(HardDiskHD){
this.HD=HD;
}
voidshow(){
System.out.println("CPU速度:
"+cpu.getSpeed());
System.out.println("硬盘容量:
"+HD.getAmount());
}
}
publicclassTest{
publicstaticvoidmain(Stringargs[]){
CPUcpu=newCPU();
HardDiskHD=newHardDisk();
cpu.setSpeed(2200);
HD.setAmount(200);
PCpc=newPC();
pc.setCPU(cpu);
pc.setHardDisk(HD);
pc.show();
}
}
习题5(第5章)
一、问答题
1.不可以。
2.是。
3.不继承。
4.声明与父类同名的成员变量。
5.子类重写的方法类型和父类的方法的类型一致或者是父类的方法的类型的子类型,重写的方法的名字、参数个数、参数的类型和父类的方法完全相同。
重写方法的目的是隐藏继承的方法,子类通过方法的重写可以把父类的状态和行为改变为自身的状态和行为。
6.不可以。
7.abstract类。
8.上转型对象不能操作子类新增的成员变量,不能调用子类新增的方法。
上转型对象可以访问子类继承或隐藏的成员变量,可以调用子类继承的方法或子类重写的实例方法。
9.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 软件工程师 试题