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