完美世界2014校园招聘笔试
只是简单了参加了一下笔试,地点是在清华。没有面试机会。这种游戏公司招人要求都有点高。
###一、单项选择题
#####1. 某工作站无法访问www.wanmei.com的服务器,使用ping命令对该服务器的IP地址进行测试,响应正常;但是对服务器域名进行测试时出现超时错误,可能出现的问题是(B)
- A. 线路故障
- B. 路由故障
- C. 域名解析故障
- D. 服务器网卡故障
如果能ping通,那么说明DNS解析是正常的。就好比去访问facebook,肯定ping不通,因为DNS被污染了。同理,线路故障和网卡故障也会导致ping不通。一般服务器前面还会再增加一层负载均衡服务器,一般是Nginx或者Apache,会在这里做域名正则匹配,如果转发到错误的IP上面,有可能导致超时错误。
#####2. 小明每次可以上1级、2级或者3级台阶、请问小明上6级台阶总共共有多少种方法(B)
- A. 23
- B. 24
- C. 25
- D. 26
#####3. 师徒四人西天取经,途中必需跨过一座桥、四个人从桥的同一端出发,你得帮助他们到达另一端,天色很暗,而他们只有一只手电筒。一次同时最多可以有两人一起过桥,而过桥的时候必须持有手电筒,所以就得有人把手电筒带来带去、来回桥两端。手电筒不能同丢的方式来传递。四个人的步行速度各不同,若两人同行则以较慢者的速度为准。大师兄需花1分钟过桥,二师兄需花2分钟过桥,三师兄需5分钟过桥, 师父需花10分钟过桥,请问他们最短在多少分钟内能过桥?(B)
- A. 16
- B. 17
- C. 18
- D. 19
#####4. 以下说法不正确的是:(A)
- A. 死锁的充分条件是互斥、占有且等待、非剥夺、循环等待,且缺一不可。
- B. Raid5至少需要3块磁盘。
- C. 地址空间和资源(例如打开文件句柄)在进程间相互独立,而同一进程的线程可以共享。
- D. 局部性原理主要包括时间局部性和空间局部性。
#####5. 权值为9,5,2,7的四个叶子构成的哈夫曼树,其带权路径长度是:(B)
- A. 23
- B. 44
- C. 46
- D. 50
#####6. 程序执行后,count的值将会是:(B)
public class CrazyCount {
private static volatile int count = 0;
public static void main(String[] args) {
for (int i = 0; i < 1000; i++) {
new Thread(new Runnable() {
public void run() {
count++;
}
}).start();
}
}
}
- A. 无效值,因为对count的代码修改没有同步
- B. 1到1000中的一个值
- C. 正好1000
- D. 至少1000
// 在JVM中,每个线程都可以有自己的栈空间,volatile的作用是保证栈空间中的值和内存中的一致,并不会保证变量的原子性。保证原子性需要使用synchronized关键字,为cout++保证线程安全。
// 另:虽然1000个线程并行执行,但是保证了count++的线程安全之后,最终结果肯定是1000
#####7. 各处如下代码:
public class Test {
public static void main(String[] args) {
int x = 5;
boolean b1 = true;
boolean b2 = false;
if ((x == 4) && !b2)
System.out.print("1");
System.out.print("2");
if ((b2 = true) && b1)
System.out.print("3");
}
}
输出结果是:(D)
- A. 2
- B. 3
- C. 12
- D. 23
- E. 123
- F. 编译出错
- G. 运行时程序抛出异常
#####8. 编译运行下面的代码会出现哪种情况?(C)
public class Test {
public void myMethod(Object o) {
System.out.println("My Object");
}
public void myMethod(String s) {
System.out.println("My String");
}
public static void main(String args[]) {
Test t = new Test();
t.myMethod(null);
}
}
- A. 不能编译通过
- B. 编译通过,输出”My Object”
- C. 编译通过,输出”My String”
- D. 编译通过,但运行时报错
#####9. 以下代码运行时输出的结果是什么?(B) class C { C() { System.out.print(“C”); } } class A { C c = new C(); A() { this(“A”); System.out.print(“A”); } A(String s) { System.out.print(s); } } class B extends A { B() { super(“B”); System.out.print(“B”); } public static void main(String[] args) { new B(); } }
- A. BB
- B. CBB
- C. BAB
- D. 以上都不是
#####10. 栈是一种:(A)
- A. 存取受限的线性结构
- B. 存取不受限的线性结构
- C. 存取受限的非线性结构
- D. 存取不受限的非线性结构
#####11. java中一个char对象可以表示的数值范围是:(B)
- A. 0到255
- B. 0到65535
- C. -256到255
- D. -32768到32767
- E. 平台相关
// Java中char为16位,4个字节,使用Unicode编码
#####12. 以下描述正确的是:(B)
- A. Java支持多重继承,一个类可以实现多个接口;
- B. Java只支持单重继承,一个类可以实现多个接口;
- C. Java只支持单重继承,一个类只可以实现一个接口;
- D. Java支持多重继承,但一个类只可以实现一个接口。
#####13. 下列关于集合类描述错误的包括:(C)
- A. ArrayList和LinkedList均实现了List接口
- B. ArrayList的访问速度比LinkedList快
- C. 添加和删除元素时,ArrayList的表现更佳
- D. HashMap实现Map接口,它允许任何类型的键和值对象,并允许将null用作键或值
#####14. 执行如下程序代码后,c的值是:(A)
a = 0; c = 1;
do {
--c;
a = a - 1;
} while (a > 0);
- A. 0
- B. 1
- C. -1
- D. 死循环
#####15. 下列关于修饰符混用的说法,错误的包括:(D)
- A. abstract不能与final并列修饰同一个类
- B. abstract类中可以有private的成员
- C. abstract方法必须在abstract类中
- D. static方法中能处理非static的成员变量
###二、填空题
#####1. 下面二叉树的中序遍历结果是:
#####2. 请至少列举出5个常用的设计模式:
#####3. 一个1300字节的IP包,包长度为20字节,进入一个MTU为500的网络中,请问该IP包被拆成()段, 其中每段的长度分别是()。
#####4. 完美世界的个性账号注册时要求账号由6-16位小写英文字母及数字组成且首位为字母,请写出验证账号合法的正则表达式()。
#####5. 请给出以下程序的输出: class Value { public int i = 15; } public class Test { public static void main(String argv[]) { Test t = new Test(); t.first(); } public void first() { int i = 5; Value v = new Value(); v.i = 25; second(v, i); System.out.println(v.i); } public void second(Value v, int i) { i = 0; v.i = 20; Value val = new Value(); v = val; System.out.println(v.i + “ “ + i); } }
###三、简答题
#####1. 列举HTTP 1.1所支持的方法。 OPTIONS、HEAD、GET、POST、PUT、DELETE、TRACE、CONNECT
#####2. 什么是反射?反射的作用是什么? 反射就是可以在程序运行时刻动态获得类的信息,动态调用类的方法。 反射的作用是,可以动态的获得对象的内部接口,可以动态对一个对象进行操作。
#####3. 方法equals()和方法hashCode()有什么联系?它们各自有什么作用?实现这两个方法的时候有些什么要求? equals()和hashCode()均继承自Object对象。equals()是通过比较两个对象的内存地址来判断时候相等,可以重写这个函数来进行内容判断。hashCode()用来实现Set等,可以简单的认为是使用物理内存地址来实现,这是一个native方法,会因为平台不同而不同。equals()需要自反性、对称性、传递性、一致性、对任何不适null的x,x.equals(null)一定返回false。
###四、编程题
#####1. 用java实现一个方法,从指定的mymap中删除所有值为value的对象,并返回删除的对象个数 int removeValue(Map<Integer, Integer> mymap, int value);
int removeValue(Map<Integer, Integer> mymap, int value) {
int count = 0;
List<Integer> list = new LinkedList<Integer>();
Iterator<Entry<Integer, Integer>> iter = mymap.entrySet().iterator();
Entry<Integer, Integer> entry;
while (iter.hasNext()) {
entry = iter.next();
if (entry.getValue() == value) {
list.add(entry.getKey());
}
}
//
count = list.size();
for (int i = 0; i < list.size(); i++) {
mymap.remove(list.get(i));
}
return count;
}
清华的一家飞机,也不知道是何来历。
原文链接:完美世界2014校园招聘笔试,转载请注明来源!
–EOF–