话不多说,直接进入主题:
以下面试题是针对 2-6 年 Java 开发人员,快来围观,不喜勿喷。
一、数据结构与算法基础
-
说一下几种常见的排序算法和分别的复杂度。
-
用 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 垃圾