一、常见问题:
1、HashMap的put原理:hash计算,判断并初始化table大小16,找到数组地址,判断有无元素key是否相等,判断结构为链表还是红黑树,插入并判断是否需要扩容;
2、springboot的工作原理及核心注解:自身配置、导入配置、包扫描;
3、jdk8新特性:Stream流、Lamda表达式、时间工具包、元空间、接口的默认方法、可重复注解等等;
4、Redis的数据类型及应用;
5、线程和线程池的使用及常用参数,线程销毁时的任务处理;
6、MySQL的优化、执行计划命令;
7、简单算法
8、常用jar包:rt.jar、spring-tx.jar
代码质量管理:jenkins+sonar
系统及代码管理:git、svn、maven
代码规范:sonar
代码生成:mybatis-plus
单元测试: assert 断言, mockmvc 发起请求
框架: spring , springmvc , struts , springboot , mybotis , hibernate
数据库: mysql ,
中间件: dubbo分布式,redis缓存,tomcat系列, websocket消息
前端:静态页面及图表的实现,html , jsp , JS , jquery, VUE
常用的设计模式及使用场景
工厂模式,单例模式,观察者模式,策略模式,建造者模式
数据库的事务隔离,索引的分类及原理:
数据结构和算法:HashMap由数组+链表+红黑树;
链表查询慢,链表长度达到8转红黑树,数组0 . 75 扩容2倍 。
JVM 的内存模型和工作原理:
1、数组和链表:同一类型的数据集合,数组是连续的内存,链表指针链;
数组查询快增删改慢,链表正好相反;
2、ArrayList和LinkedList:一个基于数组,一个基于链表;
ArrayList初始化为空数组,添加第一个元素时容量置为10,超过扩容1.5倍;
数组和链表的区别:内存使用、查询复杂度,以及其他了解;
ArrayList和LinkedLis的实现原理及应用场景;
JVM的了解:内存模型,类加载机制和顺序,垃圾回收机制及常见算法;
dubbo的了解和使用;
Tomcat的了解和优化;
SQL的了解和常用的优化方式;
数据库索引的分类、原理及使用场景;
数据库事务的特性和隔离级别详解;
数据库引擎的分类及实现原理;
Spring的IOC和AOP原理、实现方式和应用场景;
Spring的事务管理实现及应用;
Spring是如何解决循环依赖的;
SpringMVC的工作原理及对请求的处理流程;
多线程hashmap安全问题。
jvm调优方式,垃圾回收器,回收器的触发时机;
redis用途,持久化,和数据库强一致性保持。
XSS攻击和SQL注入。
红黑树的了解