
9月份面小厂实习总结
前情提要
个人bg:26届双非本
本文是对面试过的十家小厂做的总结,小范围事件可能有失偏颇,大佬们见谅
项目是OJ(单体)+ BI,感受的话是面试官对BI感兴趣一些,我不主动提的话,面试官基本都会问BI
至于项目会问什么,基本上都是鱼皮哥项目八股文中有的。
OJ的话难点设计模式多一点,BI技术难点多一点,面试官可能更喜欢BI
重点问的话OJ问到最多的是代理模式,问问项目中怎么用的,然后延申出JDK代理,Cglib代理 这一块
BI问的最多的是多线程线程池和消息队列这一块,核心参数,拒绝策略,为什么选择消息队列而不用线程池
八股重点问的是MYSQL这样
杭州兑吧网络(hr面挂)
- 自我介绍
- 什么时候用索引,索引失效场景
- 联合索引(id,price,states)selsect * from 商品表 where id = 1 and price > 2 and states = 1走哪些索引;
- 性别这样的字段会不会考虑加索引
- 项目中什么场景用AOP
- mysql锁有哪些(半寄,这个没看,只答了行锁,表锁 以及行锁的分类) (mysql锁机制需要看)
- 什么时候用记录锁,什么时候用表锁,这里提示where语句条件下什么时候用(寄,MySQL锁机制没看,准备看了)(mysql锁机制需要看)
- java 垃圾回收机制(寄,JVM没看)
- 介绍一下OJ项目
- 用什么上线的
- 你是学过rabbitmq但是项目中没用过吗(BI用了)
- 用来干什么的
- 只用线程池不也可以吗,为什么要选择消息队列,消息队列的优点是什么
- 消息队列宕机了怎么办 (这里我是按消息丢失答的,三个方法面,生产者,消息队列,消费者)
- 介绍一下java内存区域(寄,JVM没看)(非常基础,问JVM必问,注意区分JVM运行时数据区和JMM的关系)
- redis数据结构
- zset用过吗(说的没用过,但是看过文章可以做排行榜)
- 有什么想问的吗
北京中科软(hr面挂)
boss发了介绍直接半小时约面
-
自我介绍,开摄像头
-
介绍项目
-
你是在Docker里面部署的吗?(没明白啥意思) 我是在宝塔里部署的,部署的是原生代码沙箱
-
介绍一下你的项目中用到的设计模式 说的模版方法模式
-
还用的哪些设计模式 策略模式,代理模式
-
介绍一下策略模式是怎么用的,说一下优点与缺点
-
说一下集合
-
说一下数组与集合的区别
-
还能再说吗,提示一下,他们两个都能存包装类吗
-
说一下你常用的集合
-
用过ConcorrentHashMap吗 说的只了解他的一个发展历程,就是HashMap不是线程安全的,就出现了HashTable,但是HashTable效率低,就出现了ConcurrentHashMap
-
你知道他是怎么实现线程安全的吗 说的不知道,面试官说是分段锁,还说可以回去了解一下
-
ArrayLis 和 LinkendList的区别
-
反射了解吗
-
你认为优雅的代码是什么样的,你在日常写代码过程中是如何使你的代码更优雅的 (代码始终是写给人看的,在功能完备的前提下,方便协作,方便迭代我觉得首先是要考虑的,优雅的代码,结构清晰,格式统一是前提,在这个基础上,还能保持实现逻辑简单就算比较优雅的实现)
-
你对加注释怎么看
-
哪些地方是关键的地方呢,你认为哪些地方该加呢 (核心的一些逻辑,容易产生歧义的一些逻辑,需要重点关注的逻辑)
-
mysql索引是什么
-
那聊聊 b+树
-
b树有了解吗
-
那么平均来说哪种结构查询效率高一点呢?是不是B树查询效率高一点
-
那既然如此我们索引的目的就是为了提高查询效率,所以为什么用b树不用b+树 (三个方面:索引的效率,减少读IO的次数,范围查询)
-
聊聊你知道的MYSQL的锁
-
聊聊事务
-
mysql存储引擎除了innodb还知道哪些
-
InnoDB 与 MyISAM的区别
-
redis数据结构有哪些
-
你用过哪些redis数据结构
-
用过哪些Linux命令
-
那你来说说你知道的所有Linux命令吧(寄,没准备过)
-
查看日志用啥命令(不知道,说直接用宝塔看的) (可以用tail命令,再加一个-f参数,来查看实时滚动日志) ===下方是HR面===
-
基本情况,啥时候到岗之类的
-
参加了哪些社团
-
数学成绩怎么样
-
高考数学考了多少
-
北京有无认识的朋友(我发现我在面试外地的公司时,HR面一般都会问这个问题,可能看你是不是长期在那发展?)
杭州每刻(一面过,二面拒)
- 介绍一下项目
- 项目中的难点
- springboot中的设计模式
- 什么地方用到了代理模式
- @Service用到什么设计模式
- JDK代理与Cglib代理的区别
- 乐观锁与悲观锁的区别
- ArrayList和LinkedList的区别
- HashMap的put流程
- Exception和Error的区别
- 遇到过什么异常
- 你在项目中如何定义一些异常的 后面约二面了,但是已经有实习,而且面试已经面吐了,就拒了
杭州合思(一面挂)
- 垃圾回收机制,gc是什么
- Java中的集合有哪些,哪些是线程安全的,哪些是线程不安全的
- 是如何实现线程安全的
- 反射是什么,如何用反射实现动态代理(这样答有什么问题吗) 反射的话就是在运行时动态获取对象的属性,方法等的机制。然后spring的AOP是用了动态代理,是用了JDK 动态代理跟 Cglib动态代理两种方式,然后JDK动态代理是基于接口的,cglib动态代理是基于类的
- IOC与AOP是什么
- Mysql为什么用b + 树不用b树
- mysql索引失效场景
- 多线程实现方式,有什么区别 这个分别介绍一下tread,runnable,callable,线程池然后说runnable跟callable的区别可不可以
- 线程跟进程的区别
- 什么是乐观锁,什么是悲观锁
- 有ABC三个线程,想实现CBA这样,除了sleep,还能怎么实现(这个这样答可以不) 可以用join方法,在b中join c 在A中joinB
- redis的基本数据类型
- 缓存雪崩是什么,怎么解决
- 内连接和外连接的区别
- BI项目拷打:你是如何对用户上传的文件进行多重校验的
- BI项目拷打:项目中为什么要用到限流
- BI项目拷打:限流除了用 Redisson 外还能怎么实现(这个不会答)
杭州来未来(OC)
一面
- 你负责项目的哪一个部分
- 介绍一下项目 共享屏幕便让他看边介绍的
- 项目中代理模式怎么用的
- 你项目中用的是什么代理,jdk动态代理还是cglib动态代理
- jdk动态代理和cglib动态代理的区别 jdk动态代理是基于接口的,cglib动态代理是基于类的
- 如何对用户代码进行安全校验的
- 什么是反射
- 你的项目中哪里用到了反射
- 说说IOC与AOP
- 你刚刚说jdk代理是基于接口的,然后cglib是基于类还有接口的,那既然有了cglib可以基于类和接口,为什么还要有基于接口的jdk代理呢
- 那我可以通过继承一个父类,然后再继承一个父类的方式来实现多个功能啊
- 代理的话,可以代理私有的属性和方法吗
- 你的索引是怎么设计的,比如说你这个项目中有没有遇到sql查的很慢的情况
- 我看你提到了事务,你这个是Mysql的事务还是框架的事务
- 那说说spring事务的传播机制吧
- redis的基本数据类型
- redis除了缓存还能用什么
- redis持久化机制
- 消息队列发消息到收到消息的整个流程
- 了解过高可用吗
- 了解多线程吗 项目中用到了线程池来做异步处理
- 说一下线程池的核心参数
- 那假如说我现在核心线程满了,有一个新的任务,是创建一个新的线程,直到最大线程,还是直接就阻塞呢 我认为是创建一个新的线程
- 线程的状态
- 等待跟阻塞的区别,什么情况下是阻塞 像sleep这种情况是等待,然后一个新的任务假如说别的任务在占用着,然后抢不到线程的话就会阻塞
- 反问
二面
- 自我介绍
- 负责项目的哪一块
- 介绍项目
- 在做项目的过程中遇到什么困难了吗,是怎么解决的
- 用到什么中间件了吗,比如说redis,rabbitmq 是什么场景下用到的呢
- 如何解决消息重复消费
- 如何解决消息重发(寄)
- 那你有考虑过这类问题吗,说的消息丢失
- 如何解决消息丢失
- 项目中如何解决并发的问题
- 除了Redission还有什么方式
- syconized可以解决分布式下并发的问题吗
- 那除了分布式锁还有什么方式
- 分布式锁能不能解决重复消费的问题
- Redisson底层源码有看过吗,那你简单介绍一下
- Redisson限流操作底层是怎么实现的
- 项目中哪里用到多线程了
- 为什么换成消息队列了
- 线程池的核心线程数
- 什么时候下会走拒绝策略
- 你确定是核心线程数吗,是核心线程还是最大线程
- 平时怎么学习的
- 你提到了redis,那你说说你了解的一些底层的知识
- 缓存三剑客都说一下
- 现在在哪
- 有无朋友在杭
- 对我们公司了解多少
