高思教育(现爱学习)Java开发岗位 面经 2019.9.27(秋招)

高思教育 Java开发 一面 40min(通过)

面试形式:牛客视频面试

1.自我介绍
2.讲一下项目,消息是怎么存储的?用什么存储的?数据库用的什么?为什么用mysql存消息?
消息全部存在表里吗?每条都会存吗?
磁盘空间不够怎么办?如果发的文件太大,不在线的人太多怎么办?服务器不是越堆越多吗?
3.netty介绍一下? balabala。。。嗯还有呢? 说了优点,又问:为什么netty性能好?
nio和netty有什么区别?
4.java集合有哪些?集合类的顶级接口是什么?collection有哪些子接口?
collection继承了什么接口?ArrayList和LinkedList的区别?删除一个元素,两个的时间复杂度是多少?
TreeSet的数据结构用的什么(红黑树)?ArrayList怎么扩容的?
5.时间复杂度为nlogn的算法有哪些?图里面求最短路径的时间复杂度是多少?
快排,堆排,归并的区别?什么场景下该用哪种排序?
优先队列取元素的时间复杂度多少?优先队列的数据结构是什么?
6.java中的线程池有哪些?线程安全的类有哪些?
hashmap如何扩容的?根据什么判断扩容?默认值是多少?加载因子?加载因子是什么意思?
concurrenthashmap怎么实现线程安全?实现线程安全有哪些方式?除了synchronize还有什么加锁的方式?
ReentrantLock和synchronize有什么区别?
7.jvm的内存区域有哪些?方法区放的什么?一个方法的执行过程对应在内存区域中怎么体现?
java中class对象存在哪?类信息在哪?有几种方式得到class对象?栈里面放的什么?
调用一个方法时,入参放在那?栈的具体单位什么?栈帧的结构组成是什么?
程序计数器用什么实现的?
8.项目中的难点是什么?你怎么解决的?
9.你还有什么问题?问了对框架的要求?他说框架会用到,但是比较注重基础。

你可能感兴趣的:(面经2019秋招)