1、jvm虚拟机:
2、mysql事务
3、复杂sql
4、数据量
5、kafka
6、集合源码 map
7、有序map
8、锁
9、项目描述
10、java8新特性
11、线程池
12、有序map LinkedHashMap
13、动态代理
14、对象类型的判断?
A:instanceof
15、Q:自定义注解 详见:https://www.cnblogs.com/dalaoyang/p/8657030.html
A:创建自定义注解与编写接口很相似,除了它的接口关键字前有个@符号。
@Target是java的元注解(即修饰注解的注解),这里的@Target({METHOD,TYPE})指可以修饰方法、描述类、接口(包括注解类型) 或enum声明。
@Retention是java中的运行时注解,可以划分为三类
1.RetentionPolicy.RUNTIME:注解不仅会被保存到class文件里,在jvm加载class文件之后仍然不会消失。
2.RetentionPolicy.CLASS:注解会被保留到class文件里,但jvm加载class文件时被遗弃,默认的生命周期如此。
3.RetentionPolicy.SOURCE:注解只会保留在源文件中,当java文件变异成class文件shi
@Inherited:允许子类继承父类的注解
@Documented:注解表明制作javadoc时,是否将注解信息加入文档。(添加时表示制作javadoc时将注解会加入其中)
自定义注解
@Documented @Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.METHOD})
public @interface Annotations {
long time() default -1;
}
16、Q:线程池 核心 最大线程数 达到核心之后如何创建 队列
A:https://www.cnblogs.com/waytobestcoder/p/5323130.html
17、Q:mysql数据库 隔离级别是多少
https://www.cnblogs.com/aiseek/p/8175849.html
1.READ UNCIMMITTED(未提交读)
总结:这就是事务还没提交,而别的事务可以看到他其中修改的数据的后果,也就是脏读。
2.READ COMMITTED(提交读)
总结:这就是小华的事务执行到一半,而小明看不到他执行的操作,所以看到的是旧数据,也就是无效的数据
3.REPEATABLE READ(可重复读)
总结:虽然读取同一条数据可以保证一致性,但是却不能保证没有插入新的数据
4.SERIALIZABLE(可串行化)
18、合理创建索引 索引类型
Mysql目前主要有以下几种索引类型:普通索引、唯一索引、全文索引(FULLTEXT)、 单列索引、多列索引、组合索引
19、Q:查看sql有没有执行索引
A:possible_keys
A在select窗口中,执行以下语句:
set profiling =1; -- 打开profile分析工具
show variables like '%profil%'; -- 查看是否生效
show processlist; -- 查看进程
use cmc; -- 选择数据库
show PROFILE all; -- 全部分析的类型
show index from t_log_account; ##查看某个表的索引
show index from t_car_copy; ##查看某个表的索引
-- 使用explain命令查看query语句的性能:
EXPLAIN select * from t_car_copy ; ##查看执行计划中的sql性能
EXPLAIN select * from t_car_copy where org_id = '3';
EXPLAIN select * from t_car_copy where 1=1 and org_id = '3';
20、Q:redis 默认端口号
A:6379
21、redis过期策略、过期数据(底层) 详见:https://blog.csdn.net/weixin_34292959/article/details/86364108
Redis三种Key过期策略
被动(惰性)删除、主动删除、maxmemory
22、Q:mybaties一级 二级缓存区别
A:一级缓存是SqlSession级别的缓存。在操作数据库时需要构造sqlSession对象,在对象中有一个数据结构用于存储缓存数据。不同的sqlSession之间的缓存数据区域是互相不影响的。也就是他只能作用在同一个sqlSession中,不同的sqlSession中的缓存是互相不能读取的。
A:二级缓存是mapper级别的缓存,多个SqlSession去操作同一个Mapper的sql语句,多个SqlSession可以共用二级缓存,二级缓存是跨SqlSession的。
23、开发mybaties插件技术
24、springboot启动流程
25、Q:分布式锁实现方式
A:基于数据库实现分布式锁;
基于缓存(Redis等)实现分布式锁;
基于Zookeeper实现分布式锁;
26、接口,抽象类
27、多态
28、arrayList底层AX_ARRAY_SIZE强转
29、arrayList和hasmap默认大小
30、SimDateFormat线程安全吗
31、spring aop原理
32、spring事务几种5
33、spring ioc以及实现方式
34、mysql统计空列count 1 * 吗 单引号:在进行count()统计某列的记录数的时候,如果采用的NULL值,会别系统自动忽略掉,但是空值是会进行统计到其中的。
35、左连接会走索引吗
36、Java8垃圾回收机制
37、描述秒杀系统设计,不用redis,高并发怎么处理
38、mysql行锁
39、单点登录设计
40、权限设计
41、离职原因
42、jvm内存模型、堆栈
43、集合、hasmap
44、线程池,参数
45、spring mvc注解
46、服务之间如何调用
47、es
48、redis
49、kafka多发、漏发
50、商品秒杀
51、spring cloud组件
52、支付
53、git命令
54、分布式事务
秒杀 锁住库存
redis基本数据类型
springboot启动类注解
mybaties # $区别 mybatis动态order by使用$
线程什么周期
新建(New)、就绪(Runnable)、运
行(Running)、阻塞(Blocked)和死亡(Dead)五种状态
hasmap
lienkhasmap
安全map
运行时和非运行时异常