程序员社区

猿辅导Java实习面经 + (Java面试题)

今天给大家分享一篇 猿辅导Java实习面经, 希望大家在面试中能够斩获Offer, 找到自己满意的工作。 一起来看看吧~

最近整理了一系列的Java面试题,包含了Java基础、进阶、多线程、并发编程、数据库(MySQL、Redis、MongoDB、Memcachedd等等)、Spring全家桶、MyBatis、ZooKeeper、Dubbo、Elasticsearch、RabbitMQ、Kafka、Linux、Netty、Tomcat以及阿里、腾讯、字节、百度等大厂的面试真题。

点击下载完整PDF☞ 2022年最新Java面试题集

4.17 猿辅导一面

这次的面试官也是大佬,基本不问八股文

JUC的最底层(我从unsafe往上然后答到locksupport,还有原子包,然后aqs,然后重入锁)

cas和lock的消耗,哪个更好一点

你的java版本

用的哪个垃圾回收器

G1(问了英文名garbage first,噗,好细啊)

简单说一下它的垃圾回收过程

可达性分析为什么要stop the world

为什么标记是三色标记?两色不行吗?(我根据自己理解是为了并发标记过程中对于引用关系更改的保存

,比如增量更新如果黑色节点多了对白色节点的引用,黑色直接标灰,然后再扫一次灰就行,如果只有黑白,就很麻烦)

抛弃java,从操作系统来看,两个线程可以访问同一个数据吗?

如果一个线程崩溃了,是否会影响整个进程的运行( 我一开始的回答是都是内核级线程的话,对于操作系统来看是和进程一样的,一个阻塞了并不会导致其他的阻塞,

之后感觉不对,又回答了,如果都需要读一个共享变量,但这个共享变量出问题了,比如非负变成负数,然后线程检查到会抛异常,这样一个线程出的错会导致所有读取该变量的线程抛异常

评论区有大佬解答一下吗?)

内存管理

为什么用段页式存储?

用段的好处?

用页的好处,我直接一个字节一个字节都非连续放在内存不行吗?

一个简单的代码题:

合并两个有序数组(面试官太可爱了,说我是个不懂技术的产品,现在给你个需求,你搞把)

直接写出代码可能只有一半分;

我之前没有过这种的面试经历,所以憨憨的。

题目非常简单,目的是考察你做题之外的思考。(这次面试收获最大的地方)

比方说对于数据类型的考虑(是整数?多大?会有小数吗?)

还有你的测试用例如何涵盖到所有情况

还有主动说出你算法的时间复杂度和空间复杂度

还有既然是产品需求,什么时候交付,对代码量有要求吗,如果急着要并且需要代码简洁,为什么不直接用sort呢

归并排序的时间复杂度?为什么

快速排序的时间复杂度?

哪个好,为什么都是O(NlogN)快速排序相对于归并排序可能更快呢(惭愧,面试官说算法导论有解释)

反问环节,和面试官聊了一会,他说希望这次面试可以让我学到一些对自己有帮助的东西,在之后的面试里可以表现更好(谢谢面试官大哥!)

大佬牛逼,这次的面试官和之前那个阿里的面试官问的都很灵活,之前那个是根据实际业务让你去动脑思考,这次的是根据已有的八股文考察你对基础知识的思考而不是死记硬背。

面试体验也是满分,和之前那个阿里的大佬一样,在不会的时候会细心去引导你,棒!

面试官说我过了,结果二面没消息了.....
赞(0) 打赏
未经允许不得转载:IDEA激活码 » 猿辅导Java实习面经 + (Java面试题)

一个分享Java & Python知识的社区