
高频面试第一季
大厂高频面试部分
bupt_01
北京邮电大学程序猿、后端开发攻城狮
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
高频面试(十四):消息队列在项目中的使用
背景: 由于在高并发的环境下,来不及同步处理用户发送的请求,则会导致请求发生阻塞,比如说,大量的insert,update之类的请求同时到达数据库,直接导致无数的行锁和表锁,甚至会导致请求堆积过多,从而触发too many connection错误,使用消息队列可以解决异步通信。 异步: 并行: 排队 ...原创 2021-11-26 21:02:23 · 696 阅读 · 0 评论 -
高频面试(十三):单点登陆实现
单点登录:一处登陆多处使用。 前提:单点登陆多使用在分布式系统中。原创 2021-11-26 20:47:14 · 238 阅读 · 0 评论 -
高频面试(十二):Elasticsearch和solar的区别
背景:他们都是基于lucene搜索服务器基础上开发的,一款优秀的,高性能的企业级搜索服务器。【是因为他们都是基于分词技术构建的倒排索引的方式尽进行查询】 开发语言:java 诞生时间:solar:2004,Es:2010 Es更新一些,功能更强大 区别: 1、当实时建立索引的时候,solr会建立io阻塞,而es则不会,es查询性能要高于solr。 2、在不断动态添加数据的时候,solr的检索效率会变得低下,而Es则没什么变化 3、solr是利用zookeeper进行分布式管理,而es自身带有分布式系统管理功原创 2021-11-24 20:28:54 · 3022 阅读 · 0 评论 -
高频面试(十一):JVM垃圾回收机制
JVM垃圾回收机制,GC发生在JVM哪部分,有几种GC,他们的算法是什么? 1.GC发生在JVM哪部分? GC发生在堆里面。 2.GC是什么? 次数上频繁收集Young区: Minor GC 次数上较少收集Old区: Full GC 基本不动Perm区 3.GC的四大算法 3.1引用计数法 只要有对象引用,那就不进行垃圾回收。这个已经被淘汰了。因为没有办法处理循环引用。 缺点: 每次对对象赋值时均要维护引用计数器,且计数器本身也有一定的消耗。 较难处理循环引用 3.2复制算法(Coping) 在年轻代原创 2021-11-21 18:35:57 · 565 阅读 · 0 评论 -
高频面试(十):Mysql什么时候需要创建索引
1.需要创建索引的情况 主键自动建立唯一索引 频繁作为查询条件的字段应该创建索引 查询中与其他表关联的字段,外键关系建立索引 单键组索引的选择问题,组合索引性价比更高 查询中排序的字段,排序字段若通过索引法访问将大大提高排序速度。 查询中统计或者分组字段 2.那些表中不需要创建索引 表的记录太少 因为这个会提高查询速度,但是却降低了更新表的速度 经常增删改的表 因为更新表时,MySQL不仅要保存数据,还要保存一下索引文件数据重复且分布平均的表字段,因此应该只为经常查询和经常排序的数据列建立索引。原创 2021-11-20 21:10:30 · 698 阅读 · 0 评论 -
高频面试(九):Redis五种数据类型在不同项目中应用与不同形式的持久化方式
1.RDB 在指定的时间间隔内将内存的数据集快照写入磁盘,也就是行话讲的Snapshot快照,它恢复时是将快照文件直接读到内存里。 1.1备份执行过程 Redis会单独创建(fork) -个子进程来进行持款化,铣将数据写入到一个临时文件中,待玖化过程都结束了,再用这个临时文件替换上次持久化好的文件。整个过程中,主进程是不进行任何I0操作的,这就确保了极高的性能如果需要进行大规模数据的恢复,肘于数据恢复的完整性不是非常敏感,那RDB方式要比AOF方式更加的高效。RDB的缺点是最后一次持久化后的数据可能丢失。原创 2021-11-20 20:58:32 · 570 阅读 · 0 评论 -
高频面试(八):Linux常用命令+git分支相关命令
1.Linux常用命令 1.1centos6 1.1.1Service(centos6) service服务名start service服务名stop service服务名restart service服务名reload service服务名status #查看服务的方法 /etc/init.d/ 服务名 #通过 chkconfig 命令设置自启动 #查看服务 chkconfig -list l grepXXX chkconfig -level 5 服务名on 1.1.2运行级别runlevel(cento原创 2021-11-19 20:47:02 · 1212 阅读 · 2 评论 -
高频面试(七):Mybatis当实体类的属性名和表中字段不一致时
1.写sql语句时候写别名 2.在MyBatis的全局配置文件中开启驼峰命名规则 <!-- 开启驼峰命名规则,可以将数据库中下划线映射为驼峰命名 列如 last_name 可以映射为 lastName --> <setting name="mapUnderscoreToCameLCase" value="true" /> 要求数据库字段中含有下划线 3.在mapper文件中使用resultMap自定义映射 <!-- 自定义映射 --> <resultMap原创 2021-11-17 20:23:30 · 765 阅读 · 0 评论 -
高频面试(六):SpringMVC工作流程
1.SpringMVC工作流程 SpringMVC框架是一个基于请求驱动的Web框架,并且使用了‘前端控制器’模型来进行设计,再根据‘请求映射规则’分发给相应的页面控制器进行处理。 具体步骤: 1、 首先用户发送请求到前端控制器,前端控制器根据请求信息(如 URL)来决定选择哪一个页面控制器进行处理并把请求委托给它,即以前的控制器的控制逻辑部分;图中的 1、2 步骤; 2、 页面控制器接收到请求后,进行功能处理,首先需要收集和绑定请求参数到一个对象,这个对象在 Spring Web MVC 中叫命令对象,原创 2021-11-16 21:05:08 · 307 阅读 · 0 评论 -
高频面试(五):事务传播属性和事务隔离级别
1.事物的传播行为 当事务方法被另外一个事务方法调用时,必须制定事务应该如何传播,例如方法可以在现有的事务中运行,也可以开启新的事务。并在自己的事务中运行,事务的传播行为有传播属性指定,Spring定义了7种类传播行为 REQUIRED :如果有事务在运行,当前的方法就是在这个事务内运行,否则就会开启一个新的事务,并在自己的事务中运行。 REQUIRED_NEW:当前方法必须启动另外一个事务,并在他的自己的事务内运行,如果有事务正在运行,应该将它挂起。 SUPPORTS:如果有事务在运行,当前的方法就是在原创 2021-11-14 16:31:02 · 909 阅读 · 0 评论 -
高频面试(四):bean的作用域
bean的作用域,可以使用scope属性指定bean的作用域, -singleton:默认值,当IOC容器一创建就会创建bean实例,而且是单例的,每次得到的都是同一个 -prototype:原型的,当IOC容器一创建就不在实例化该bean,每次调用getBean方法时候在实例化该bean。 -request:每次请求实例化一个bean -session:在每一次会话中共享一个bean ...原创 2021-11-06 11:25:26 · 150 阅读 · 0 评论 -
高频面试(三):成员变量和局部变量
示例代码 /** * @author gcq * @Create 2020-09-29 */ public class Exam5 { static int s;// 5 int i; // A-2 B-1 int j;//A-1 B-1 { int i = 1; i++; // 就近原则 j++; s++; } public void test(int j) { j++原创 2021-11-04 20:55:28 · 314 阅读 · 0 评论 -
高频面试(二):类初始化和实例初始化
1.类初始化 类要创建实例要先加载并初始化该类。 main方法所在的类要先加载和初始化 一个子类要初始化需要先初始化父类 类初始化就是要执行< clinit >()方法 < clinit>()方法由静态类变量显示赋值代码和静态代码块组成 类变量显示赋值代码和静态代码块从上到下执行 < clinit>()方法只调用一次 2.实例初始化过程 实例初始化就是执行< init >()方法 < init >()方法可能重载有多个,有几个构造器就有几个&原创 2021-10-26 20:49:29 · 105 阅读 · 0 评论 -
高频面试(一):单例模式(Singleton)
1.什么是Singleton Singleton:在Java中 即指单例设置模式,探视软件开发最常用的设置模式之一。 单:唯一 例:实例 单例设计模式,即某个类在整个系统中只能有一个实例对象可被获取和使用的代码模式。例如:代表JVM运行环境的Runtime类 2.单例模式要点 一个类只能有一个实例(构造器要私有化) 必须自行创建实例 必须向整个系统提供这个实例 3.几种常见的形式 3.1饿汉式:直接创建该对象,不存在线程安全问题 3.1.1直接实例化饿汉式(简洁直观) public class Sing原创 2021-10-25 22:05:55 · 175 阅读 · 0 评论