2022-03-24面经

面试公司:纵横文学
工作经验:3.5年
期望薪资:18-20k

面试官人很好,上来先聊了聊学校,家乡,当前薪资结构帮我放轻松

Java基础
Q:volatile作用:
A:内存可见性和防止指令重排序
Q:在多线程的环境下int类型变量可以用volatile修饰解决并发问题,当变量是List类型可以吗?
A:在多线程环境下List有个实现类Vector是线程安全的,可以用这个类。感觉面试官想问的不是这个
Q:线程池的参数中有两个核心线程数和最大线程数,这两个参数有什么区别
A:核心线程数是在线程创建后就运行不会被销毁的,最大线程数是控制线程池中最大的线程数量的,当任务数超过核心线程数的时候会新创建线程,新创建的线程和核心线程的总和不能超过最大线程数,当非核心线程的空闲时间超过了设置的时间后会被销毁
Q:确定非核心线程是在任务数超过核心线程数的时候才创建的吗?
A:确定。。。

Spring:
Q:BeanFactory和FactoryBean的区别
A:BeanFactory是创建Bean的,FactoryBean是创建创建类工厂的。这个之前学过现在忘了。。胡诌了半天
Q:ApplicationContext和BeanFactory的区别
A:前者继承后者
Q:确定吗?
A:不确定,忘了。。。
Q:Spring是怎么创建Bean的
A:想了半天,通过反射创建的
还问了一些其他的Spring的问题,基本都没答上来

Redis
Q:redis哨兵作用
A:监控redis主节点可用性,将当前可用的主节点地址返回给客户端
Q:哨兵怎么部署的,需要多个节点吗?
A:需要,最少三个
Q:为什么最少三个?
A:哨兵也有可用性的问题,一台节点挂了另外两台顶上
Q:是挂了之后有选举吗?
A:不了解了。。
Q:当MySQL是主从,怎么解决缓存数据不一致的问题的
A:线上遇到过这个问题,先删了数据库,再删了redis,请求过来了从库还没同步到主库的数据,把从库的旧数据读出来存到缓存里面了。解决方案是延迟一秒再删缓存
Q:延迟双删是吗?为什么设置的一秒而不是三秒五秒
A:嗯(内心OS:原来这个方案还有专有名词),时间是靠感觉一秒足够主库数据同步到从库配置的

MySQL:
Q:三个日志文件binlog的作用说一下
A:只了解binlog,用来做主从同步的,项目中有用canal模拟从节点读取主节点的binlog同步数据到ElasticSearch
Q:它可以读取从节点的binlog来做数据同步吗?
A:不知道,猜测应该可以
Q:binlog还有其他作用吗?
不了解了
Q:另外两个日志的作用?
A:没了解过,猜测可能是跟事务有关,用来回滚事务
Q:MySQL怎么实现的事务隔离?
A:设置事务隔离级别😂
Q:不对,MySQL默认的事物隔离级别是可重复读,它怎么解决的幻读的问题?
A:通过MVCC机制解决的,在每一行数据加了个事务ID,通过类似于乐观锁的方式解决
Q:你确定吗?说一下MVCCxxx,忘了问的是啥了
A:不了解了。。。
Q:说一下最左匹配原则
A:索引列要在where条件最左边
Q:假如有a,b,c,d四个字段,索引设置的a,b,c联合索引,在where条件中查a,b可以用到索引吗?
A:可以
Q:在where条件中查a,c可以用到索引吗?
A:可以用到a索引
Q:确定吗?有没有在其他情况下可以用到c索引
A:不知道了。。。
Q:MySQL字符集utf-8mb4和utf-8有什么区别
A:憋了半天,好像是utf-8mb4是三个字节代表一个字符。。。

面试完感觉应该是凉了,要学的东西还有很多,如果是我招人最怕招到似懂非懂的,非常容易出问题。
刚开始找工作目前只复习了JVM、Kafka消息队列、Redis。框架、数据库、多线程还没开始看,复习完之后那些不会的应该能答上来百分之七十#面试题目#
全部评论
感谢分享,楼主费心了
点赞 回复 分享
发布于 2022-05-14 23:28

相关推荐

点赞 评论 收藏
分享
Yushuu:你的确很厉害,但是有一个小问题:谁问你了?我的意思是,谁在意?我告诉你,根本没人问你,在我们之中0人问了你,我把所有问你的人都请来 party 了,到场人数是0个人,誰问你了?WHO ASKED?谁问汝矣?誰があなたに聞きましたか?누가 물어봤어?我爬上了珠穆朗玛峰也没找到谁问你了,我刚刚潜入了世界上最大的射电望远镜也没开到那个问你的人的盒,在找到谁问你之前我连癌症的解药都发明了出来,我开了最大距离渲染也没找到谁问你了我活在这个被辐射蹂躏了多年的破碎世界的坟墓里目睹全球核战争把人类文明毁灭也没见到谁问你了😆
点赞 评论 收藏
分享
2 10 评论
分享
牛客网
牛客企业服务