Java后端开发面经

有赞(一面)


2021年5月26日
时长:53分钟
1.自我介绍
2.springboot用过吗?和spring有什么区别?
3.spring创建对象的过程,顺带着引申了一下ioc
4.AOP是啥,然后讲讲它的原理,再讲讲什么是动态代理(这个问题回答的不好,动态代理没有讲清楚,解耦忘了说了)
5.Hashmap的原理,如何存放元素,什么时候扩容,什么时候链表变成红黑树,再讲一下红黑树的实现原理(红黑树讲的不清楚)
6.Hashmap和Hashtable的区别?
7.Hashmap线程安全吗?不安全,怎么解决呢?ConcurrentHashMap知道吗,讲讲它的原理,juc的包知道吗
8.多线程相关的,进程和线程的区别?单核CPU可以实现多线程吗
9.Synchronized关键字的使用,volatile 关键字了解吗?它俩的区别。轻量级锁和重量级锁的区别?
10.JVM了解吗?垃圾回收的一个过程?垃圾收集器知道吗?(G1之类的)
11.Redis、消息队列等了解吗
12.MySQL的执行引擎,事务隔离级别(这里会和脏读等联系起来的), 一条sql语句在mysql中如何执行的,索引的底层结构,聚集索引与非聚集索引
13.常用的设计模式了解吗?我说了单例模式和工厂模式(工厂模式解释的不好)
14.Java的学习方法是什么?
自由提问环节:
我问:对于我Java的学习有什么建议?
他答:现阶段找实习的话,有个功利性的建议,建议学习一个JUC和Redis等,可以不做实际的项目,但是要了解他的原理;JVM需要进一步了解

总结:
1.JUC、JVM需要进一步学习,
2.动态代理掌握的不好,
3.Redis、消息队列

大华(一面)


2021年5月27日
时长:16分钟
1.自我介绍
2.JVM的内存区域,运行时数据区中,除了方法区和堆,还有哪些?
3.juc的包知道吗?
4.Hashmap是有序的吗?哪个map是有序的?Hashmap线程安全吗?为什么不是线程安全的?怎么让它线程安全?
5.spring中的IOC怎么实现的?实现动态代理的两种方式?
6.Https怎么实现安全连接?
7.缓存使用过吗?Redis里的数据类型知道吗?
8.MySQL里的聚簇索引知道吗?
9.介绍一下你的科研项目,你做了啥?知道我是做算法的,为啥不搞算法,要学Java?

存在问题:
1.JVM内存区域完全答错了
2.Hashmap为什么不是线程安全的?怎么让它线程安全?
3.动态代理必须要会了!
4.网络协议要学起来

你可能感兴趣的:(面经,java,mysql,spring,redis)