1.多线程实现方式
2.cookie和session区别
3.数据加密
4.接口并发
5.常用的集合类
6.遍历集合方式
7.接口和抽象类
8.#和$区别
9.防止sql注入
10.springMvc实现过程
11.单点登录流程与实现方式
12.解释spring的ioc和aop
13.常用的linux命令
14.springboot优势
15.redis存取数据和基本用法
16.注解开发流程,例子:日志处理
17.spring事务
18.怎么处理高并发
19.同步机制,锁
20.常用的排序方法,常用设计模式
参考 https://www.cnblogs.com/guangxiang/p/11555231.html
21.mybatis和hibernate区别
①MyBatis上手较为容易,Hibernate上手复杂
②Hibernate是orm框架->Java中ORM的原理: 先说ORM的实现原理,其实,要实现JavaBean的属性到数据库表的字段的映射,任何ORM框架不外乎是读某个配置文件把JavaBean的属 性和数据库表的字段自动关联起来,当从数据库Query时,自动把字段的值塞进JavaBean的对应属性里,当做INSERT或UPDATE时,自动把 JavaBean的属性值绑定到SQL语句中。
③Hibernate对jdbc有一层封装,相比于Hibernate,MyBatis对JDBC的封装程度没那么深,对开发人员的要求较高,但对大型数据库的优化和适配性较强,所以适用于处理大量数据。
22.正向代理和反向代理区别
23.数据库索引分类 ->https://www.cnblogs.com/guangxiang/p/11547039.html
MySQL索引分类:
主键索引(primary key)
唯一索引(unique)
常规索引(index/key)
全文索引(fulltext 只有MyISAM类型表可以用)
MySQL的索引类型有普通索引(normal),唯一索引(unique)和全文索引(full text),合理使用索引可大大提升数据库的查询效率,那么这三种类型的索引都有哪些区别呢?
normal:这是最基本的索引,它没有任何限制,MyIASM中默认的BTREE类型的索引,是我们大多数情况下用到的索引。
unique:表示唯一的,不允许重复的索引,如果该字段信息保证不会重复。例如身份证号用作索引时,可设置为unique。
full text : 表示全文搜索的索引,仅可用于 MyISAM 表。 FULLTEXT 用于搜索很长一篇文章的时候,效果最好。用在比较短的文本,切记对于大容量的数据表,生成全文索引是一个非常消耗时间非常消耗硬盘空间的做法。
总结,索引的类别由建立索引的字段内容特性来决定,通常normal最常见。
在实际操作过程中,应该选取表中哪些字段作为索引?
为了使索引的使用效率更高,在创建索引时,必须考虑在哪些字段上创建索引和创建什么类型的索引。
创建索引7大原则
1.选择唯一性索引
唯一性索引的值是唯一的,可以更快速的通过该索引来确定某条记录。例如,学生表中学号是具有唯一性的字段。为该字段建立唯一性索引可以很快的确定某个学生的信息。如果使用姓名的话,可能存在同名现象,从而降低查询速度。
2.为经常需要排序、分组和联合操作的字段建立索引
经常需要ORDER BY、GROUP BY、DISTINCT和UNION等操作的字段,排序操作会浪费很多时间。如果为其建立索引,可以有效地避免排序操作。
3.为常作为查询条件的字段建立索引
如果某个字段经常用来做查询条件,那么该字段的查询速度会影响整个表的查询速度。因此,为这样的字段建立索引,可以提高整个表的查询速度。
4.限制索引的数目
索引的数目不是越多越好。每个索引都需要占用磁盘空间,索引越多,需要的磁盘空间就越大。修改表时,对索引的重构和更新很麻烦。越多的索引,会使更新表变得很浪费时间。
5.尽量使用数据量少的索引
如果索引的值很长,那么查询的速度会受到影响。例如,对一个CHAR(100)类型的字段进行全文检索需要的时间肯定要比对CHAR(10)类型的字段需要的时间要多。
6.尽量使用前缀来索引
如果索引字段的值很长,最好使用值的前缀来索引。例如,TEXT和BLOG类型的字段,进行全文检索会很浪费时间。如果只检索字段的前面的若干个字符,这样可以提高检索速度。
7.删除不再使用或者很少使用的索引
表中的数据被大量更新,或者数据的使用方式被改变后,原有的一些索引可能不再需要。数据库管理员应当定期找出这些索引,将它们删除,从而减少索引对更新操作的影响。
————————————————
版权声明:本文为CSDN博主「visant」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/visant/article/details/79619981
24.数据库引擎redis等
25.数据库优化
一.sql优化
①任何地方都不要使用 select * from t ,用具体的字段列表代替“*”,不要返回用不到的任何字段
②in 和 not in 也要慎用,否则会导致全表扫描;很多时候用 exists 代替 in 是一个好的选择
③应尽量避免在 where 子句中对字段进行表达式操作,这将导致引擎放弃使用索引而进行全表扫描
④应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表扫描
⑤对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引
⑥应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描
二.适当的添加索引,分区分表
26.JVM原理和调优
27.消息队列的理解
特别说明:相关答案为个人理解,如有不全面或错误,请查证指出。也欢迎各位给出自己宝贵的答案。各位有面试被提的问题也可以提出,我会不定时更新。
28.
es怎么用
docker怎么用
springBoot怎么用
Dubbo怎么用
redis怎么用
什么是雪崩,怎么处理
29.秒杀设计