面试题
一、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");
String 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<Integer> l = new LinkedList<Integer>();
l.add(1);
l.add(2);
l.add(1);
l.add(3);
删除列表l中所有为1的元素,下面三种方式是否正确:
A. l.remove(new Integer(1))        (只能移除一个)
B.for(Integeri:l){
if(i == 1) l.remove(i);
}
(ConcurrentModificationException)
C. Iterator<Integer> it = l.iterator();
while(it.hasNext()){
() == 1) it.remove();
}
(正确)
8、描述jmap,jstack的作用,如果有使用jmap,jstack解决问
题的经历,请简单描述。(加分题)
(答案:都是java内置的性能调试工具,jmap用来查看堆内存使用状况,jstack主要用来查看某个Java进程内的线程堆栈信息)
二、线程题
1、说明死锁的产生原因和解决方式
2、说明Synchronized的使用场景
3、有如下servlet,甲乙两人访问该servlet会得到几种结果,分
别是什么?
public class TestServlet extends HttpServlet {
private int a = 1;
public void doGet(HttpServletRequest request, HttpServletResponse response){
a = a + 1;
PrintWriter out = Writer();
out.print(a);
}
}
java后端开发培训
三、算法题
1、有一个链表X,如果不知道头指针,现在需要删除链表中的一
个已知节点Xn(既不是头也不是尾),请用伪代码实现?2、有一个整型数组A,超过一半的元素都是同一个数字,如何最
快速的出该数字,请用伪代码实现
四、数据库
1、用数据库连接池有什么好处?并描述其工作原理?
2、请分别描述下数据的水平切分和垂直切分,以及这两种数据切
分方式的使用场景?(加分题)
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。