某公司Java工程师面试题笔试题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、问答题(共两题每题5分)
1、在软件开发的形式中,有单独开发和团队开发,请您分析两种开发形式的利弊?
2、除了工资还有什么福利对你具有吸引力?
二、案例分析(共四题每题5分)
1、案例一:项目经理陈经理所在的项目组接到总监分配的一项紧急任务,要求在2天内完成A项目,陈经理马上召集其下属工程师小张和小黄进行工作分配并分析项目要点和各个要点的主要做法。时间已经过去了1天半,工程师小张发现,根据陈经理对项目要点的主要做法行不通,但时间已经所剩不多了。
问题一:如果你是小张,你会怎么做?为什么?
问题二:由于项目做法的问题导致项目的进度无法按总监的要求在2天内完成,总监怪罪下来,你认为这是谁的责任,为什么?
2、案例二:工程师小李和工程师小陈分别在同一个项目组负责软件开发工作,他俩是同时进入公司的,而且被分配在邻座,因此关系非常好。工程师小李最近发现小陈经常在上班时间做一些与本公司业务无关的工作,并且在一次偶然的机会让小李发现,小陈的薪资比自己的薪资要高一倍多。
问题一:如果你是小李,你会怎么做,为什么?
问题二:如果你是小陈,你发现做的事情被小李发现了,你会怎么做,为什么?
技术题
一、基础题,共十题每题2分
1、GC是什么?为什么要有GC?
2、short s1 = 1; s1 = s1 + 1;有什么错?short s1 = 1; s1 += 1;有什么错?Byte a=1,b=1,bye c=a+b有什么错?Short a=1,b=1,Short c=a+b有什么错(答对一个给0.5分)
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、谈谈你对以下程序的看法。
class MyString extends String{
public static int i = 0;
private char[] chars = {…a‟,‟b‟,‟c‟};
public MyString(){}
static{
System.out.println( “i = ” + ( i++ ) );
}
public String getString(){
String s = “”;
for( char c : chars ){
}
Return s;
}
}
2、请写出以下程序的输出。
class B {
private int radius = 10;
public void draw() {
System.out.println(“B.draw(), radius = ” + radius); }
public B() {
System.out.println(“B constructor”);
draw();
}
}
public class A extends B {
private int radius = 1;
public void draw() {
System.out.println(“A.draw(), radius = ” + radius); }
public A(int radius) {
this.radius = radius;
System.out.println(“A constructor”);
}
public static void main(String[] args) {
A a = new A(5);
}
}
3、写出下列程序运行结果。
public class Test {
static Test st=new Test();
static int x ;
static int y=0 ;
public Test(){
x++;
y++;
}
public Test(int x,int y){
this.x=x;
this.y=y;
}
public static Test getInstance(){ return st ;}
int i=0;
System.out.println(“i=”+i);
}
void test() {
Inner inner2 = new Inner2();
inner2.display();
}
public static void main(String[] args) {
Test test1=Test.getInstance();
test1.test();
System.out.println(“test1:x=” + test1.x+”;y=”+test1.y);
Test test2=new Test();
test2.test();
System.out.println(“test2:x=” + test2.x+”;y=”+test2.y);
Test test3=new Test(0,0);
test3.test();
System.out.println(“test3:x=” + test3.x+”;y=”+test3.y);
}
public class Inner {
int a= 1;
void display() { System.out.println(“display: a = ” + a); }
}
public class Inner2 extends Inner {
int a=2;
void display() {System.out.println(“display: a= ” +a); }
}
}
4、谈谈你对以下JavaScript函数的看法,能否提高效率?如果能请给出需要修改的地方,并讲出原因。function getFormAsString( formName ){
returnString = “”;
formElements = document.forms[formName].elements;
for ( var i = formElements.length-1 ; i >= 0; –i ){
returnString = returnString + “&” + escape( formElements[i].name ) + “=” +
escape( formElements[i].value) ;
}
return returnString;
}
三、编程题(共三题,每题10分)