人人网Java开发工程师笔试题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
人人网Java开发工程师笔试题
填空题(10题)
1、JAVA面向对象三大特征:继承、封装、多态
2、Sleep()和wait()的区别:
sleep()方法是使线程停止一段时间的方法。
在sleep 时间间隔期满后,线程不一定立即恢复执行。
这是因为在那个时刻,其它线程可能正在运行而且没有被调度为放弃执行,除非(a)“醒来”的线程具有更高的优先级(b)正在运行的线程因为其它原因而阻塞。
wait()是线程交互时,如果线程对一个同步对象x 发出一个wait()调用,该线程会暂停执行,被调对象进入等待状态,直到被唤醒或等待时间到。
3、类被JVM回收的标志
4、重写JAVA equals方法,还要同时重写hashCode()方法
5、String,StringBuilder,StringBuffer的区别
String是固定长度的字符串,如果要发生变化必须重新生成新的实例;
String 字符串常量
StringBuffer 字符串变量(线程安全)
StringBuilder 字符串变量(非线程安全)
6、增加数据库一列的SQL语法:ALTER TABLE table_name ADD column_name TYPE;
7、JSP内置对象及方法request、__、__、__(列出3个即可)
Request,response,out,session,page, application, exception, config, pageContext
8、List,Set,Map是否继承Collection接口?
List,Set是,Map不是
9、数据库事务正确执行的基本要素:原子性(Atomicity)、一致性(Consistency)、隔离性
(Isolation)、持久性(Durability)。
10、10,100,32,45,58,126,3,29,200,400,0利用除商留余法构造存于长度为13的数据的
HASH
不是很明白题目的意思,下面是加法hash,可以存于长度为prime的数据hash
static int additiveHash(String key, int prime)
{
int hash, i;
for (hash = key.length(), i = 0; i < key.length(); i++)
hash += key.charAt(i);
return (hash % prime);
}
选择题(5题)
单选多选不定
1、int I = 42;
long l = 42;
double d = 42.0;
下面为true的是
A、(I == l)
B、(I == d)
C、(l == d)
D、i.equals(d)
E、d.equals(l)
F、i.equals(l)
G、l.equals(42L)
(FG)
2、对于abstract声明的类,下面说法正确的是
A、可以实例化
B、不可以被继承
C、子类为abstract
D、只能被继承
E、可以被抽象类继承
(E)
3、
4、
5、下面代码执行后结果为
Int x = 8, y = 2, z;
z = ++x*y;
Z = x/y++
A、x =16 , y = 2
B、x =16 , y = 3
C、x =18 , y = 2
D、x =18 , y = 3
(D)
(中间两题忘了,不难,是单选)
问答题(5题)
1、int I = 0;I = i++; I = i++;是线程安全的吗?如果不是,那它在JVM中是如何实现的?JDK
中有哪个类可以实现这个目标又是线程安全的?这个类线程安全的原理是什么?
AtomicInteger,一个提供原子操作的Integer的类。
在Java语言中,++i和i++操作并不
是线程安全的,在使用的时候,不可避免的会用到synchronized关键字。
而AtomicInteger 则通过一种线程安全的加减操作接口。
(参考:/n/10512/这位仁兄估计是参加了早上那场笔试)
2、int a[100] = { 1 2 2 3 ……}, 数组元素都为正整数,且a[i+1] >= a[i], 请快速输出a[i] = i的
数。
3、int a[100] = { 1 2 3 3 4 3 2 ……}, 数组中所有元素都为正整数,求a[i] + a[t] = a[x], I, t, x 均
小于等于n,求最大的a[x].
4、用java扫描指定文件夹下面所有以.txt, .log结尾的文件,并将其绝对路径输出。
5、简述你所熟悉的设计模式。
模拟一个应用场景,并说出你所使用的设计模式的优缺点(单
例模式除外)。
附录:
网友总结的上次人人网笔经、面经
By neoxung@ITEYE 2010-04-06 【笔试】
拿到是JAVA研发工程师基础笔试题,总体感觉是针对应届毕业生,考题比较基础但面比较宽泛。
大致记录如下:
1.一个部门1/2为系统工程师,2/5为软件工程师,1/4两者都是,那么两者都不是的比例?---集合覆盖
2.某设计运动员射击10次,总中90环,如果每次射击为0-10环,列出其成绩所有可能值的表达式。
---缺失的10环的10次分配
3.高度为h的满树其总结点数为?中序遍历为?---树
4.针对10,100,32,45,58,126,3,29,200,400,0利用除商留余法构造存于长度为13的数据的HASH。
---实在不会
5.简述进程与线程的区别。
---"本质的区别在于每个进程有它自己的变量的完备集,线程则共享相同的数据"
6.简述网络三次握手的过程。
---网络基础
7.关于ICMP的特性。
8.根据子网掩码判断已知的IP地址是否在当前子网内。
9.Linux系统开启新进程的命令?进程间通信的方法。
10. shell编程。
11.仅仅提交更新部分的数据而不是全部数据违反了数据库的什么规则?---数据库
12.第一范式的特性。
13.增加数据表一列的SQL语法。
14.非主键索引为什么能提高搜索效率但会降低更新效率?
15.编写代码将任一字符串按照某子串进行分割,并将处理后的内容反向输出。
例如"A B C",按照" "分割,最终输出"C B A" ---考察得基础而全面,设计API,正则,StringBuilder等内容16.编写代码删除某文件目录下的所有子目录和文件,并输出目录的名字,路径以及文件的内容。
---同样是对文件系统API及异常的考察
17.
Cpp代码
1.int x = 999;
2.int countx = 0;
3.while(x){
4. countx++;
5. x=x&(x-1);
6.}
7.return countx;
---countx最终返回什么内容?
18.列举平常经常浏览的网站以及关注的技术。
19.简述三年的职业规划。
【面试】
前面的笔试已经看出多是考察的基本功,针对社招的有经验者面试官除了扫一遍考题外主要注重以往做过什么项目,用过什么技术,担当什么样的角色,是否积累了相关行业的从业经验。
个人感觉人人比较看重求职者的综合素质和技能,最好什么都会并对互联网行业工作性质比较适应这样基本就能进门了,如果再对分布式、缓存与服务器集群,负载均衡有实践经验就有资本要价了。
如果通过了技术面试官的筛选,接下来更高级别的面试官主要对个人未来的职业规划比较关注,他们希望了解求职者对互联网、SNS、人人网有怎么样的认知并相对性地有怎样的职业规划,这一般需要互联网行业的实际工作经验才能回答好,我就是因为缺乏对互联网行业的认知所以回答的不很到位,比较可惜。
【其他】
实话实说千橡的办公环境、休息区都还是挺不错的,和不同级别的面试官聊后也感觉工作氛围是比较开放的,唯一不能避免的就是行业造成的加班(不过通常也不严重,平均7点半)。
特别要说的是面试作为一场博弈有不少细节还是要注意,求职者与面试官其实都是为了同一个目的坐在一起,所以交谈中会不由自主地往对方靠,比较显而易见的例子就是面试官对求职者的启发,同时面试官也是普通的人,细心的求职者可以通过所掌握的信息迎合他的喜好,这点不好多说,总之就是要做到细心观察、多交互、恰当应对。