昨天下午2点中科软件公司来到传智博客招聘,招6个人左右。
2点多一点的时候来了一个中年人,发了一套试卷给我们,是用英语的,这对我刚刚过四级的来说相当吃力啊,内容基本上都是se部分的,搞了小半年的javaee了,忽然来个se部分的,心里还真没底。
很容易做的做完就忘了,只有那些思考了的才记住了,有几个题目自己平时不大注意,笔试的时候就有点傻了。
有一题是这样的,
public class test {
public static int[] a=new int[]{1,2,3,4,5};
public int foo(int[] b){
a[1]=b[2]+a[3];
b[1]=a[1]+a[2];
return a[1]+b[1];
}
public static void main(String[] args) {
new test().foo(a);
}
}
考的是java数组参数的传递,我只记住了java只有值传递,然后就现场各种推,只记住数组只有一个,但对数组的引用有两个,
还有一题是考多线程的
public class syn {
syn(){
z();
}
private void z() {
syn z1=this;
syn z2=this;
synchronized (z1) {
try {
z2.wait();
System.out.println("1111");
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
System.out.println("2222");
}
System.out.println("3333");
}
}
public static void main(String[] args) {
new syn();
}
}
依稀还记得java的多线程安全是由对象锁搞定的,我对这题很模糊,多线程真的忘的差不多了,但我觉得这里只可能考死锁,所以我选择了什么都不会输出这一选项。
最后一个是写一个单例的实现,我正好前几天看过,就买一送一,两种实现方式都写上去了,希望有加分。