当前位置: 首页 > 面试经验 >

字节 客户端一面+窒息二面

优质
小牛编辑
74浏览
2023-03-28

字节 客户端一面+窒息二面

一面
全程50mins

自我介绍
Java
Java垃圾回收的情况
分代回收
内存泄漏 如何避免?
四种引用类型?区别?
集合类型?
ConcurrentHashMap实现?
如果Arraylist并发访问会出现什么问题?
计算机网络
https的建立?公私钥,要几个随机数?为什么后续都是对称加密而不是非对称?
进程和线程,协程?
操作系统
BIO NIO AIO
sokect和netty协议区别在哪?
json和protobuff区别在哪?
设计模式
了解哪些?用到了哪些?
责任链在哪些实际应用中用到?确定
实现下载器用什么设计模式?怎么管理线程?
算法
lc原题 旋转链表(又没做出来 手撕真的太紧张了)

反问?握手细节下去再了解一下

二面
第二天 二面全程1h15mins
  • 自我介绍
  • 多线程理解?单线程不如多线程快吗?单核cpu的情况呢?线程的本质?单核会不会更多的利用时间片?
  • 多线程会造成什么问题?抽象成概念解释一下?
  • 锁类型?以操作系统底层来分类:乐观锁,悲观锁
  • 悲观锁包括哪些?互斥锁,读写锁......自旋锁和互斥锁的区别?如果互斥锁没拿到锁会是什么状态?阻塞是个什么状态?
  • 自旋锁没获取到锁会进入什么状态?使用自旋锁的线程状态是?
  • synchronized加锁机制?没有资源竞争时的状态是什么?synchronized怎么判断是否有资源竞争?第二次有线程竞争怎么判断?
  • JVM内存模型?资源是什么概念?操作系统以什么为单位分配内存?以进程为维度描述JVM内存模型
  • JVM怎么解决主存和工作内存不一致?volatile的本质是什么?内存屏障有哪几种?
  • 栈和堆的区别?(以底层的角度思考)为什么堆比栈访问慢?
  • new的底层怎么创建的?
  • 类加载机制查找顺序?classloader1能访问classloader2的对象吗?classloader加载到哪?有没有看过源码?
  • 为什么要序列化?方案?怎么约定字节流以及顺序问题?(大小端没听过?)
  • BIO的更重要的关键点?java什么机制减少内核态和用户态切换?流和linux底层的区别?linux怎么解决磁盘IO?怎么减少函数调用?
  • NIO往底层讲?底层怎么实现?poll epoll
  • java发生crush如何处理?举例说明一下?怎么定位?怎么解决?为什么idea怎么能监听到异常?
  • lambda本质是什么?
  • 对RPC的理解?本质是干嘛的?解决什么问题?RPC怎么做到不同服务的通信?
  • 进程的通信方式?本质是什么?

算法:一个数组前半段逐渐变大,后半段逐渐变小,以O(n)的空间复杂度找出出现的不同元素。 {1,3,,10,3} 返回 3 因为1,3,10一共三个不重复的数。

全程高压,深挖操作系统底层,没有八股,满满窒息感。不过面试官人很好。




#字节跳动#
 类似资料: