2013网易技术类笔试题(java开发方向+移动平台开发)

时间:2021-07-03 14:39:59

今天晚上参加了网易的笔试,好不容易进了笔试,结果考得跟屎一样。

说说今天的考场情况吧。在广州大学城华工参加的笔试,晚上6:30开始到8:30。观察了一下周边的考场,人数不多,很安静。跟腾讯那混乱的场面,网易做得好多了。这里我想是因为网易在网上审核阶段就已经很认真地筛选了一部分人,我身边的好几个技术不错的同学都被刷了,所以,提醒以后网申网易的同学,一定要认真对待网申。看了看考场外的名单,同我一个方向的只有十个人,其他可能是分配到了其他考场吧,觉得不可能那么少人呀,因为这样分配可以有效的错开应聘相同岗位的同学,避免抄袭。这一点又比腾讯做得好多了。我今晚的笔试,左右两边是HR管培生方向的,大家都没有办法作弊。总的感觉网易的笔试很正规,公平公正。有高考的感觉。我还留意到,监考的挂着智联招聘的工作证,应该是委托智联招聘办的笔试。

说一下今晚的题目吧。我看能记得起多少。不过坑爹的是,笔试题目是纯技术的,没有网上分享的一些题目有什么文学题、推理题。害我浪费时间去准备。 ̄□ ̄||

第一部分:计算机基础(选择题都是多选题)

1、选择题:按照e1、e2、e3、e3、的顺序进栈,出栈的顺序可能是下面的哪种?

选项记不清了,但是很容易,只要从A到D去验证答案的顺序是否正确就行。我全选。这样的题目其他公司也考过很多次。

2、中缀表达X=A+B*(C-D)/E式转后缀表达式。

选项四个,但是貌似只有一个正确的。有些选项是把中序进行变形,应该是移项之后再求后缀的。

3、问以下排序算法哪些是不稳定的。

       A 快速排序     B堆排序   C哈希排序  D冒泡排序 E  合并排序 

排序算法稳定性讨论:http://blog.csdn.net/kavensu/article/details/8039202

答案是:ABC(我选漏了B,悲剧呀)

4、(填空题)一个四叉树、有n个结点,每个结点都有四个指向它的四个孩子的指针,那么在这4n个指针中,空指针有多少个______。

5、(写程序)实现斐波纳契数列,写一个算法求数列的第n项的值。给出算法复杂度,尽量高效。

我是这样实现的,不知道是不是最优。

/**
* 输出Fibonacci数列的第n个数。
* @param n
* @return
*/
public static int Fibonacci(int n){
if(0<n && n<3){
return 1;
}else{
return Fibonacci(n-1)+Fibonacci(n-2);
}
}


第二部分:程序设计

这些题目有些是读程序的,我记不住那么多。考了很多操作系统方面的,java的多线程、IO操作、集合框架是重点呀。

1、网易的邮箱有@126.com、@136@.com、@yeah.net 。用户名长度6~18,以字母开头,不区分大小写,其他可以是任意字母或数字。以下正则表达式哪个能正确检查账号的正确性。

选项记不清。但是不难,大家应该也可以写出来。

2、以下程序输出什么?

byte a = 5;
int b = 10;
int c = a>>2+b>>2;
System.out.println(c);

 运行一下,结果是0。记住,>>运算符的优先级比+低,也就是c = 5>> (2+10) >> 2;  

3、说说HashMap和TreeMap的区别? 还有不是很记得是哪两个类的区别了,反正也是集合框架里面的。

4、关于I/O流操作的。给出了四种情况,然后使用I/O流体系内提供的类写出正确的实现组合。题目提供了很多操作流的类,我不一一写出了,附上一张网上找的图片。

        1) 文件的路径:D:\file\test.txt ,读取改文件,并从该文件中按行获取内容(好像是这样表述的);

        2)文件的路径:D:\file\test.data  ,是字节数据,读取该文件并按行输出内容;

3)str是很长的字符串……忘记了……

4)…………

2013网易技术类笔试题(java开发方向+移动平台开发)

倒数第二题:实现序列化接口Serialize的时候,如果不指定serialVersionUID 的值,编译时就会出现警告,为什么?什么情况下需要修改serialVersionUID 的值?

 参考:序列化运行时使用一个称为 serialVersionUID 的版本号与每个可序列化类相关联,该序列号在反序列化过程中用于验证序列化对象的发送者和接收者是否为该对象加载了与序列化兼容的类。如果接收者加载的该对象的类的 serialVersionUID 与对应的发送者的类的版本号不同,则反序列化将会导致 InvalidClassException。可序列化类可以通过声明名为 "serialVersionUID" 的字段(该字段必须是静态 (static)、最终 (final) 的 long 型字段)显式声明其自己的 serialVersionUID:

  ANY-ACCESS-MODIFIER static final long serialVersionUID = 42L;   如果可序列化类未显式声明 serialVersionUID,则序列化运行时将基于该类的各个方面计算该类的默认 serialVersionUID 值,如“Java(TM) 对象序列化规范”中所述。不过,强烈建议 所有可序列化类都显式声明 serialVersionUID 值,原因计算默认的 serialVersionUID 对类的详细信息具有较高的敏感性,根据编译器实现的不同可能千差万别,这样在反序列化过程中可能会导致意外的 InvalidClassException。因此,为保证 serialVersionUID 值跨不同 java 编译器实现的一致性,序列化类必须声明一个明确的 serialVersionUID 值。还强烈建议使用 private 修改器显示声明 serialVersionUID(如果可能),原因是这种声明仅应用于立即声明类 -- serialVersionUID 字段作为继承成员没有用处。

6、最后一题(题目好长):一个系统有多个定时任务,设计一种数据结构用来存储这些任务。考虑定时任务的添加、删除和触发。有10000个任务的时候,分析这种数据结构的性能。(大概是这样的意思)。

我写了一个散列表。类似于HashMap的结构。我的理解是,在添加、删除和触发的操作中,触发更重要一些。因为定时要准确,触发的延时就决定了定时的准确性。而触发操作我理解成是查找操作,找需要唤醒的那个定时。而哈希查找性能是最理想的。不知道我这样的理解是否正确,求指导。


其他的题目我都不记得了。