日期:2014-05-20  浏览次数:20839 次

IBM中国研究院面试题
    前几天接到IBM研究院的面试电话,谈了几句,然后那边给我发了一道编程题,把答案发过去几天后,今天接到复试电话,于是下午过去了一趟,先是又进行了30分钟的笔试,然后进来4个人(据说都是博士),像开批斗会一样的围着我,那会儿太过紧张,以致后面的问题都答得不好!
下面是IBM的笔试题目:
请模拟银行某一时段的服务流程(一小时内完成)
银行有4个服务窗口,其中有三个是普通窗口,一个是VIP窗口。VIP窗口在没有VIP用户时也可以当作普通服务窗口办理业务。银行的服务流程描述如下:
首先到达的客户需要在门口领取一张号码纸,号码纸上写明了前面排队的人数和你的号码。
客户等待自己被服务。如果号码纸的的号码过期,即当前的号码大于号码纸的号码,则号码纸就过期了
如果VIP用户到达后,VIP用户进入VIP窗口办理,如果VIP窗口前面有其他的VIP用户,则排在其他VIP用户之后,如果有普通会员在办理,则服务完成后立刻服务VIP用户。
银行的业务员在服务完一个客户后,会根据号码纸依次通知下一个客户进行服务
以下是数据:
1 普通 09:00 5
2 普通 09:00 6
3 普通 09:00 5
4 普通 09:02 9
5 普通 09:04 5
6 VIP 09:05 7
7 普通 09:10 5
8 普通 09:12 10
9 普通 09:15 5
10 VIP 09:18 5
11 普通 09:18 8
12 普通 09:19 5
13 VIP 09:21 9
14 普通 09:21 5
15 普通 09:26 5
16 普通 09:27 2
17 普通 09:28 5
18 普通 09:29 10
19 普通 09:29 5
20 VIP 09:32 5
21 普通 09:32 6
22 普通 09:32 5
23 VIP 09:33 12
24 VIP 09:40 5
25 普通 09:40 5
26 普通 09:45 5
27 普通 09:46 5
28 普通 09:46 5
29 VIP 09:51 5
30 普通 09:51 5
31 VIP 09:55 5
32 普通 09:58 5


今天的笔试题目只记得一部分(总共7道题):

1.写出下面代码的执行结果:
public class T {


public static void main(String[] args) {
Byte b=new Byte("127");
System.out.println(b.toString()==b.toString());
              
}
}

2.写出下面代码的执行结果:
package com.ibm.bmcc.test;

public class T {


public static void main(String[] args) {
method1();
System.out.println("f");
}

static void method1(){
try{
method2();
System.out.println("a");
}catch (NullPointerException e) {
System.out.println("b");
}finally{
System.out.println("c");
}
System.out.println("d");
}

static void method2(){
System.out.println("e");
throw new IllegalStateException();
}



}
3.用Java实现一个单利模式
4.多线程编程,第一个线程负责对某个数加一,第二个线程负责对这个数减一

有兴趣的朋友可以看一下,面试总结:听着IBM研究院的名字挺吓人的,但是没想到这笔试题都是非常的基础,各位兄弟,还是把基础打牢吧!

------解决方案--------------------
引用:
 Byte b=new Byte("127");
        System.out.println(b.toString()==b.toString());


可有哪位高手能解释一下为什么会输出false呢?


上帝啊,你新开个贴嘛~~

JAVA的字符串是固定的,一旦生成不能更改,而,toString方法每次返回一个新String对象
2次toString方法返回2个对象,==比较的是对象的(JVM)内存地址,固然不同
------解决方案--------------------

public class BankQueueThread {