java面试题及答案2020 阿里(七)

java面试题及答案2020

一面(实习)-2020/3/31-牛客网

文末持续更新面试题及答案

1:排序算法,讲述一下快速排序,冒泡排序
2:equals方法,对于重写equals方法为什么要包含hashcode
3:final关键字的作用,final用在方法中时候不能被子类所继承,那么为什么要用final、什么情况下会使用final
4:对于HashMap了解多少,HashMap是如何使用键去寻找值的,和hashcode有什么关系
5:多态是什么,泛型和多态的区别
6:java面向对象编程,其特点是什么,你是怎么理解继承,封装和多态的
7:JVM中主要有几种垃圾回收算法
8:JVM中主要有哪些分区,哪些区域中会存在GC
9:学习了JVM对你使用JAVA有什么影响或者是作用
10:在学习和项目中经常使用那些算法,有没有使用过优化算法

一面-2020/3/15-牛客网

项目方面

问了项目相关的,如何定义接口规范啊,如何做项目架构实现(SpringIOC,SpringMVC的自实现),业务(也就是CRUD,没啥难度),讲了LRU缓存的实现。项目大概15分钟左右。

基础方面

1、JVM内存模型(运行数据区的各种区域,以及功能(栈帧里面的那些也讲了)),然后讲到GC,GC算法,堆的分布(老年代,新生代,以及它们的分配,垃圾回收算法的选择)

2、补充问到:当eden区不断增大的情况下,survivor区不断减小会导致什么情况?

3、InnoDB存储引擎(从InnoDB的特性出发,行锁,全文索引,聚蔟索引,必须含有主键(没有主键怎么办,如何选择),为什么是B+树,而不是B树,而不是红黑树,磁盘IO,以及B+树和B树的区别)

4、然后就是InnoDB的MVVC实现(版本号如何进行各种数据库操作)。

5、类加载机制(从类加载,验证,准备,解析,初始化,使用,卸载角度讲述,类加载讲类加载器(三种,如何定义用户加载器),然后就是各个阶段做了什么)

6、线程池,刚开始没听清楚,以为是原生实现线程池,后面才知道讲的是TheadPoolExecutor,然后就是讲参数,讲流程,讲拒绝策略。

7、ThreadLocal,讲了底层实现,讲了ThreadLocal的目的,解决了什么问题。后面的ThreadLocal的key是弱引用(没答出来,确实没注意),然后就是ThreadLocal在线程池里面使用会怎么样。

8、冒泡算法

9、TCP 为什么三次连接,TCP拥塞控制(慢开始,拥塞避免,快重传,快恢复,里面的窗口变量)和流程控制

10、就是各种奖项的问,做了什么。

11、补充下,还问了一些JUC的一些东西,CountDownLatch,Semaphore,CyclicBarrier

所有面试题持续更新+答案整理见这里:
java面试题及答案2020持续整理

原创文章 27 获赞 38 访问量 10万+

猜你喜欢

转载自blog.csdn.net/bookanddream/article/details/106096902