一 jvm和jmm
1.类加载过程
2.常用的类加载器 tomcat中涉及的加载器
3.能否自己写个类叫java.lang.string
4.jvm内存划分
5.垃圾回收算法以及常用的收集器cms,g1
6.何时触发yonggc和fullgc
7.oom分析,常用的分析工具以及命令
8.jmm的理解
9.内存屏障,指令重排序,happy-befor原则
二 jdk源码和集合框架
1.介绍下object里常用的方法
2.为何重写equal一定重写hash方法,hash方法是否可以写死返回一个常量,为什么
解决hash冲突的方法
3.什么是是不可变对象,为何String是不可变对象,常量池概念,string常用的方法,如何实现split方法
collection和map
list:arraylist linkedlist 区别
set: hashset sortset 如何实现有序
queue
map:
hashmap 实现原理 1.7,1.8有啥区别和改进 是否安全,多线程环境下如何保证安全,有几种方式
concurrenthashmap 实现原理 1.7,1.8区别,1.7中为何采用分段锁技术,如何进行分段
三 框架原理
spring
1.spring介绍
spring开源,轻量级框架,分层架构,各个模块介绍,不仅仅介绍ioc,aop
2.spring 2.5,3.0,4,5各个版本有什么改进,新增了什么内容
spring boot,spring cloud
3.spring bean执行初始化的三种方式
4.如何解决bean的循环依赖
5.factorybean和beanfactory有什么区别
6.什么是aop和ioc,spring aop实现原理
hibernate
1.n+1问题,如何避免
2.对象的几种状态
3.一级缓存和二级缓存,使用场景
4.hibernate 执行原理
5 hibernate 一些高级特性,级联操作等
6.sessionfactory是否是线程安全,如何实现的
mybatis
1.mybatis 和hibernate有什么区别,mybatis的运行原理
2.mybatis中#和$ 区别,如何防止sql注入
3.开发过程中,mybatis一般都会写一个dao与一个xml映射文件对应,这个mapping映射原理?dao接口里的方法是否可以重载
4.mybatis是否支持延迟加载,实现原理是什么,与hibernate延迟加载是否有区别
5.mybatis 里的一级缓存和二级缓存
四 数据库
1.常用的数据库,oracle和mysql区别
2.什么是事务,作用,隔离级别,spring中事务如何使用的,传播行为 nested和required_new的区别
3.什么是索引,都有哪些索引,索引的作用,索引的数据结构,优缺点
4.mysql存储引擎,myIsam和Innodb
5.数据优化,了解的分库分表实际操作经验
五.rpc 框架 和mq
1.用过的rpc框架有哪些,dubbo接触过吗,实现原理
2.dubbo里涉及的一系列问题:通信框架,注册中心,序列化框架等等
3.常见的mq,涉及的一些名词术语,consumer,provider,broker,消息交互方式等
六锁和多线程
1. synchronized用法,原理 ,与lock有啥区别,分别在什么场景使用
2.volatile ,threadlocal 用法,常见的使用场景
3countdownlatch,CyclicBarrier ,semophone用法 ,适用场景,cas的了解,如何解决aba问题
4. 创建线程的方法,线程的状态 join,yield用法,守护线程的理解
5.线程池运行原理,如何创建一个线程池,常用的阻塞队列,有什么区别,以及使用场景,从性能上分析一下arrayblockqueue和linkedblockqueu
七. 通信