一、数据结构与算法基础
·说一下几种常见的排序算法和分别的复杂度。
·用Java写一个冒泡排序算法
·描述一下链式存储结构。
·如何遍历一棵二叉树?
·倒排一个LinkedList。
·用Java写一个递归遍历目录下面的所有文件。
二、Java基础
·接口与抽象类的区别?
·Java中的异常有哪几类?分别怎么使用?
·常用的集合类有哪些?比如List如何排序?
·ArrayList和LinkedList内部的实现大致是怎样的?他们之间的区别和优缺点?
·内存溢出是怎么回事?请举一个例子?
·==和equals的区别?
·hashCode方法的作用?
·NIO是什么?适用于何种场景?
·HashMap实现原理,如何保证HashMap的线程安全?
·JVM内存结构,为什么需要GC?
·NIO模型,select/epoll的区别,多路复用的原理
·Java中一个字符占多少个字节,扩展再问int,long,double占多少字节
·创建一个类的实例都有哪些办法?
·final/finally/finalize的区别?
·Session/Cookie的区别?
·String/StringBuffer/StringBuilder的区别,扩展再问他们的实现?
·Servlet的生命周期?
·如何用Java分配一段连续的1G的内存空间?需要注意些什么?
·Java有自己的内存回收机制,但为什么还存在内存泄露的问题呢?
·什么是java序列化,如何实现java序列化?(写一个实例)?
·String s=new String(“abc”);创建了几个String Object?
三、JVM
·JVM堆的基本结构。
·JVM的垃圾算法有哪几种?CMS垃圾回收的基本流程?
·JVM有哪些常用启动参数可以调整,描述几个?
·如何查看JVM的内存使用情况?
·Java程序是否会内存溢出,内存泄露情况发生?举几个例子。
·你常用的JVM配置和调优参数都有哪些?分别什么作用?
·JVM的内存结构?
·常用的GC策略,什么时候会触发YGC,什么时候触发FGC?