阿里地区B2B北京专场java开发面试题(2011.10.29)
阿里B2B北京专场java开发面试题(2011.10.29)
提示一点,notify是可以唤醒wait处的线程,也可以唤醒synchronized处的线程
提示一点,notify是可以唤醒wait处的线程,也可以唤醒synchronized处的线程
if (list.size() <= 0)
while (list.size() <= 0)
提示一点,notify是可以唤醒wait处的线程,也可以唤醒synchronized处的线程
if (list.size() <= 0)
while (list.size() <= 0)
呵呵,是的
提示一点,notify是可以唤醒wait处的线程,也可以唤醒synchronized处的线程
是说如果list的size为0时,这时同时过来两条pop请求,然后两个线程都在等待,然后另一线程进行了push操作,就会将这两个pop请求的线程均唤醒,然后问题就该出现了,不知我理解正确不。。。
笔试(只记下来了几道)
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请求的线程均唤醒,然后问题就该出现了,不知我理解正确不。。。