编辑切换为居中
添加图片注释,不超过 140 字(可选)
一、数据结构与算法基础
-
· 说一下几种常见的排序算法和分别的复杂度。
-
· 用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?
四、多线程/并发
-
· 如何创建线程?如何保证线程安全?
-
· 如何实现一个线程安全的数据结构
-
· 如何避免死锁
-
· Volatile关键字的作用?
-
· HashMap在多线程环境下使用需要注意什么?为什么?
-
· Java程序中启动一个线程是用run还是start?
-
· 什么是守护线程?有什么用?
-
· 什么是死锁?如何避免
-
· 线程和进程的差别是什么?
-
· Java里面的Threadlocal是