阿里B2B北京专场java开发面试题(2011.10.29)
?
笔试(只记下来了几道)
1、写出以下代码的输出结果:
public class DispatchTest { public static void main(String[] args) { Base b = new Sub(); System.out.println(b.x); } } class Base { int x = 10; public Base() { this.printMessage(); x = 20; } public void printMessage() { System.out.println("Base.x = " + x); } } class Sub extends Base { int x = 30; public Sub() { this.printMessage(); x = 40; } public void printMessage() { System.out.println("Sub.x = " + x); } } 2、这段代码大多数情况下运行正常,但是某些情况下会出问题。什么时候会出现什么问题?如何修正?
public class MyStack {private List<String> list = new ArrayList<String>();public synchronized void push(String value) {synchronized (this) {list.add(value);notify();}}public synchronized String pop() throws InterruptedException {synchronized (this) {if (list.size() <= 0) {wait();}return list.remove(list.size() - 1);}}}3、画出最熟悉的三个设计模式的类图
4、写代码分别使得JVM的堆、栈和持久代发生内存溢出(栈溢出)
?
第一面(只记得这么多了)
1、笔试题第四题实现又口述了下
2、有个每秒钟5k个请求,查询手机号所属地的笔试题(记得不完整,没列出),如何设计算法?请求再多,比如5w,如何设计整个系统?
3、比较熟悉什么技术?我说jvm和oracle,就让我画jvm的体系结构,画了之后说各个部分的职责,并扯到运行期优化。
?
第二面(没有技术细节,都是泛泛的,但是我回答的比较保守,只觉得能滔滔不绝的说上半小时才敢说看过或了解)
1、是否愿意去杭州
2、熟悉各种技术框架么?源码读过么?
3、数据库了解什么?mysql了解么
4、前台技术,看我用的ExtJS,就问是否了解JQuery
5、进现在的公司,觉得对技术是否有提升?
?
第三面,此面没有技术问题
第四面HR(感觉这面问题回答的有点扯,毕竟是这么几年来首次面HR,之前面过2、3个公司,要么很早就挂了,要么感觉流程太长,自己不愿意面下去)
1、愿意去杭州发展么?我说要考虑,hr就问主要考虑什么问题
2、从技术角度来说,你觉得你跟你同学比怎么样
3、你的父母怎么看待你的
?
1 楼 makemyownlife 2012-02-04 您好 向您问一下 这里的这段代码大多数情况下运行正常,但那些情况不正常 我看了半天也没找出来 能否指教一二。 2 楼 yueyemaitian 2012-02-06 makemyownlife 写道您好 向您问一下 这里的这段代码大多数情况下运行正常,但那些情况不正常 我看了半天也没找出来 能否指教一二。提示一点,notify是可以唤醒wait处的线程,也可以唤醒synchronized处的线程 3 楼 zxwu 2012-02-07 yueyemaitian 写道makemyownlife 写道您好 向您问一下 这里的这段代码大多数情况下运行正常,但那些情况不正常 我看了半天也没找出来 能否指教一二。
提示一点,notify是可以唤醒wait处的线程,也可以唤醒synchronized处的线程
if (list.size() <= 0)
while (list.size() <= 0) 4 楼 yueyemaitian 2012-02-08 zxwu 写道yueyemaitian 写道makemyownlife 写道您好 向您问一下 这里的这段代码大多数情况下运行正常,但那些情况不正常 我看了半天也没找出来 能否指教一二。
提示一点,notify是可以唤醒wait处的线程,也可以唤醒synchronized处的线程
if (list.size() <= 0)
while (list.size() <= 0)
呵呵,是的 5 楼 feikiss 2012-03-16 yueyemaitian 写道makemyownlife 写道您好 向您问一下 这里的这段代码大多数情况下运行正常,但那些情况不正常 我看了半天也没找出来 能否指教一二。
提示一点,notify是可以唤醒wait处的线程,也可以唤醒synchronized处的线程
是说如果list的size为0时,这时同时过来两条pop请求,然后两个线程都在等待,然后另一线程进行了push操作,就会将这两个pop请求的线程均唤醒,然后问题就该出现了,不知我理解正确不。。。