前言:
本文分享面试题给正准备跳槽,准备找工作的你,这次面试字节跳动也是做了很多的准备,还好顺利拿到了offer,特分享一下这次的4面技术面真题,可能有些记不全了,但多少也能够给一些正在面试字节或计划面试字节的朋友提供帮助。
不会做不要着急哦,文末有答案分享
Jvm性能优化方面
- 如何判断一个对象是否存活(或者GC对象的判定方法)
- 垃圾回收的优点和远离。并考虑2种回收机制
- 垃圾回收器的基本原理是什么?垃圾回收器可以马上回收内存吗?有什么办法主动通知虚拟机进行垃圾回收?
- Java中会存在内存泄漏吗,请简单描述
- 在Java中,对象什么时候可以被垃圾回收
- 简述Java内存分配与回收策率以及Minor和major GC
- JVM的永久代中会发生什么垃圾回收
springcloud方面
- 你什么是springcloud?
- 使用springcloud有什么优势?
- 服务注册和发现是什么意思?springcloud如何实现?
- 载平衡的意义是什么?
- 什么是Hystrix?它如何实现容错
- 什么是Hystrix断路器?我们需要它吗?
- 什么是Netflix Feign?它的优点是什么?
- 什么是springcloud Bus?我们需要它吗?
分布式方面
- zookeeper是什么?
- zookeeper提供了什么?
- zookeeper是如何保证事务顺序的一致性的?
- 请解释一下什么是nginx?
- 请解释nginx如何处理HTTP请求
- rabbitMQ中的broker是指什么?cluster又指什么?
- kafka的设计时什么样的呢?
- kafka判断一个节点是否还活着有那俩个条件?
并发编程方面
- Synchronized用过吗,其原理是什么?
- 什么是可重入性,为什么说Synchronized是可重入锁?
- Jvm对Java的原生锁做了哪些优化?
- 为什么说Synchronized是非公平锁
- 什么是锁消除和锁粗化?
- 为什么说Synchronized是一个悲观锁?乐观锁的实现原理又是什么?
- 乐观锁就一定是好的吗?
- 跟Synchronized相比,可重入锁ReentrantLock其实现原理有什么不同?
算法题
(1)这其实是一道变形的链表反转题,大致描述如下
给定一个单链表的头节点 head,实现一个调整单链表的函数,使得每K个节点之间为一组进行逆序,并且从链表的尾部开始组起,头部剩余节点数量不够一组的不需要逆序。(不能使用队列或者栈作为辅助)
例如:
链表:1->2->3->4->5->6->7->8->null, K = 3。那么 6->7->8,3->4->5,1->2各位一组。调整后:1->2->5->4->3->8->7->6->null。其中 1,2不调整,因为不够一组。
(2)虚拟十叉树建模问题
题目描述:给定整数 n 和 k ,找到 1 到 n 中字典序第 k 的小数字;注意:1≤ k ≤ n ≤10⁹
(3)一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如6=1+2+3。编程找出1000以内的所有完数。
(4)一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?
读者福利
面试,其实是一个双向选择的过程,在这个过程里,我们不应该抱着畏惧的心态去对待,这样反而会影响自己的发挥。同时看中的应该不止薪资,还要看你是不是真的喜欢这家公司,是不是能真的得到锻炼。今天给大家分享一份阿里的面试大全,希望大家都能找到适合自己的公司,开开心心的撸代码。
领取方式:关注+转发+私信(面试)获取上述资料
记得一定要转发哦
领取方式:关注+转发+私信(面试)获取上述资料
领取方式:关注+转发+私信(面试)获取上述资料