蘑菇街Java后端开发实习岗一面+二面+HR面
3月25日一面,面试时间50分钟,没问项目。
0、实习经历(20分钟)
1、介绍一下Spring AOP,AOP是如何实现的。JDK动态代理和CGLIB动态代理的区别?
2、思考:
public class ServiceA { public void methodA() { this.methodB(); } public void methodB() {} } public class ServiceB { @Autowired private ServiceA serviceA; public void methodC() { serviceA.methodA(); } }假设ServiceA的每个方法都被织入了一个Around Advice,分别打印方法开始和方法结束的日志信息,请问调用methodC方***打印出几行日志?
ServiceB的serviceA引用的对象和methodA中的this是一回事吗?是什么关系?在JDK和CGLIB动态代理下会因此而发生变化吗?
3、MySQL数据库优化思路。
4、有表(create_time, online_time, type, isDeleted),type取值在0~4之间,isDeleted取值为0,1
其中有查询where online_time = xxx and create_time > xxx and type = 1 and isDeleted = false
怎么建立索引?如果整个数据库有1亿条,type为1的数据只有100条,要不要给type建立索引。
5、JVM内存模型
6、JVM运行时数据区,哪些是线程公有,哪些是线程私有的?
7、JVM元数据区主要保存哪些信息?
8、程序计数器在进入native方法后的值是怎样的。
9、讲一下堆空间的结构(年轻代、老年代)。
10、什么时候触发Minor GC,什么时候触发Major GC。
11、对象是如何晋升的。
12、线程池构造参数(感觉每个Java面试官都喜欢问??),Executors构造的线程池有哪些,为什么不推荐使用Executors类构造线程池?
13、线程池提交任务后,线程池内部工作流程详细讲一下。
14、如何确定线程池的线程数量?
面试体验不错,面试官很和蔼的样子。
——————————————————————————————
3月30日收到二面通知,31号完成二面:
讲一下实习经历
讲一下项目,项目中遇到了哪些难点,如何解决的?
GET和POST的区别?
TCP为什么需要三次握手?
Kafka是如何持久化消息的。
Kafka发送消息或者消费消息很慢时如何解决?
HashMap和Hashtable的区别?
算法题:一个有序的数组,找出两个不同的数使其等于n。如果数组是无序的怎么做?
讲一下项目,项目中遇到了哪些难点,如何解决的?
GET和POST的区别?
TCP为什么需要三次握手?
Kafka是如何持久化消息的。
Kafka发送消息或者消费消息很慢时如何解决?
HashMap和Hashtable的区别?
算法题:一个有序的数组,找出两个不同的数使其等于n。如果数组是无序的怎么做?
——————————————————————————————————————
4月3日完成HR面:
1、介绍一下你之前上线的项目
2、介绍一下实习经历,学到了什么
3、对工作城市有要求吗?
4、为什么选择从事互联网行业
5、平时是如何学习娱乐的。
6、父母是做什么的?是独生子女吗?
7、拿到其他offer了吗?现在面试的进度如何。
8、面试前你是如何准备的?如果10分为满分,你给之前的准备情况多少分?