从简单到复杂,再到整合,最后思想,逐渐深入
1,java的基础数据结构,数据结构最低的只有数组和引用
java常用的变量,问深了会问该变量占用的空间
java的集合,collection和map相关的知识,主要问list的子类的异同。set的特点,也就是哪种场景下使用list和set。map的底层实现,还有就是hashmap和concurrenthashmap的异同。
java中安全的集合你使用过哪些,有什么特点,主要会是copyonwritearraylist及currenthashmap,及quene
2,线程及多线程的数据安全
线程的基本实现方式,thread和runnable,安全包的calleable。
线程池的实现原理,java线程池的核心概念及种类,重写线程池的关键点,分业务场景不同而定
多线程访问共享数据时的数据安全,锁的各种概念及对应的实现
线程间的通信,怎么保证线程安全
3,网络的相关问题
常用的网络协议,各自的特点。
java实现socket的通信,tcp及udp的不同,高效实现socket的通信的方法
涉及到io的相关知识,aio,bio,nio。熟悉的nio框架有netty或者mina等
4,几乎都会涉及代理
java的动态代理的实现机制,及实现方法,面向接口的动态代理
非接口的cglib的代理,相关机制及实现方法
spring基于代理的功能的实现方法及原理,ioc和aop的概念及相关原理
5,java中的引用
强引用,new出来的对象,正常的垃圾回收机制
软引用,softreference,依赖于jvm的空间,扫描到并且空间不足,会被垃圾回收
弱引用,weakreference,垃圾扫描到就回收
虚引用,phantoreference,,随时都有可能被垃圾回收
6,jvm的构成及各部分的功能
主要分为,堆,栈,本地方法区,方法区,讲一些你熟悉的
jvm的垃圾回收机制,新生代,老年代,永久代,各个区域的划分及实现回收的过程
涉及到类加载器,一个项目的启动会依次加载那些类加载器,各个加载器的功能及内容
7,设计思想
常用的设计模式,一般会让写一个最简单的单例模式,要写出安全的单例模式,切记,安全的单例模式你可以写出3中最好
java的特点,封装,继承,多态,你是怎么在项目中应用的
怎么在项目中融合设计模式,切记不要为了设计模式而设计
8,数据库的要求
基本的数据库技术要求
大数据的分库分表设计
nosql的使用等