1.说一个最熟悉的排序算法,思想,复杂度。
2.计算机网络,tcp连接工作流程。三次握手。
3.服务器有很多连接,要查看当前连接我们服务器的连接的连接状态,怎样查。当前服务器有多少连接,这些连接是什么状态。
-----netstat命令和awk来查看web服务器的并发连接数以及TCP连接状态。
4.linux命令、当前有很多线程,服务器很卡,想知道哪个线程的原因。
----top、ps命令。
5.怎么理解面向对象。做一些项目的时候面向过程和面向对象语言都可以达成,为什么要使用面向对象。
-----封装:可扩展性,继承:重用性和扩展性,多态:可扩展性。
6.什么场景使用接口,什么场景使用抽象类。从编程思想的角度说接口和抽象类的区别。
7.集合包内用过什么类,ArrayList和LinkedList区别。怎样线程安全。其他包下的集合concurrent包。
8.线程池。threadLocal。(没答上)
----为线程创建变量副本。get(); 通过ThreadLocalMap内的Entry<ThreadLocal,value>
9.动态代理的实现方式。aop动态代理的方式。
10.jdbc包里有哪些类。jdbc连接过程。statement和preparedStatement。、
11.java内存结构。
12.内存溢出OOM,如果出现内存溢出,怎样找到哪一段代码、哪个类造成的。
13.JDK命令行,jmap,jstament......jdk的bin目录下面的工具
14.java NIO/AIO/BIO这些。
15.java开源的框架。像网络方面的,我说的是springboot,介绍一下这个框架是干嘛的,还有基本原理。
16.数据库访问框架。
17.缓存的框架。
18.数据库索引。如何实现一个索引。
19.数据库事务。ACID。
20.数据库读写分离。。。
21.大数据框架。。。的项目经历。
最后介绍项目,项目中遇到的问题。
基础知识拉给,实践少。