1、面试题
一、Java
1、 请列出3个以上常见的exception并用java实现产生exception对应的代码?
2、 接口和抽象类的区别
3、 说明下“java.lang.OutOfMemoryError: PermGen space”和“java.lang.OutOfMemoryError: Java heap space”怎么产生的,和解决方法?
4、 请描述下TCP和UDP,并说明他们的区别?
5、 请描述下同步和异步,并说明他们的区别?
6、 String a="123";String b="123"; String c=new String("123"); Str
2、ing d=new String("123");
(AABA)
1) a==b A.True B.False
2) a.equals(b) A.True B.False
3) c==d A.True B.False
4) c.equals(d) A.True B.False
请选折输出1、2、3、4对应的值?
7、 List l = new LinkedList();
l.add(1);
l.add(2);
l.add(1);
l.add(3);
删除列表l中所有为1的元素,下面三种方式是否正确:
3、
A. l.remove(new Integer(1)) (只能移除一个)
B.for(Integeri:l){
if(i == 1) l.remove(i);
}
(ConcurrentModificationException)
C. Iterator it = l.iterator();
while(it.hasNext()){
if(it.next() == 1) it.remove();
}
(正确)
8、 描述jmap,jstack的作用,如果有使用jmap,jstack解决
4、问题的经历,请简单描述。(加分题)
(答案:都是java内置的性能调试工具,jmap用来查看堆内存使用状况,jstack主要用来查看某个Java进程内的线程堆栈信息)
二、线程题
1、 说明死锁的产生原因和解决方式
2、 说明Synchronized的使用场景
3、 有如下servlet,甲乙两人访问该servlet会得到几种结果,分别是什么?
public class TestServlet extends HttpServlet {
private int a = 1;
public void doGet(HttpServletRequest request, Http
5、ServletResponse response){
a = a + 1;
PrintWriter out = response.getWriter();
out.print(a);
}
}
三、算法题
1、 有一个链表X,如果不知道头指针,现在需要删除链表中的一个已知节点Xn(既不是头也不是尾),请用伪代码实现?
2、 有一个整型数组A,超过一半的元素都是同一个数字,如何最快速的找出该数字,请用伪代码实现
四、数据库
1、 用数据库连接池有什么好处?并描述其工作原理?
2、 请分别描述下数据的水平切分和垂直切分,以及这两种数据切分方式的使用场景?(
6、加分题)
3、 请说明数据库中索引的工作方式
五、Linux
1、请列出你经常使用命令并举例描述基本用法?
2、如何快速查看进程的cpu和内存使用情况?
3、有日志a.log有如下内容:
a1|113|114
b1|222|222
a1|113|222
请使用linux命令过滤出“b1”对应的行?
4、 还是上面的日志a.log,请使用命令过滤出“a1”行中第三列值大于200的行?(加分题)
六、JavaScript
1、JavaScript创建对象及对象方法的几种方式。
2、实现一个简单的Hashtable,包括基本方法:get、put、remove。