字节跳动java工程师社招一面经历
一、基础知识:
•自我介绍,挑一个你最熟悉的项目说一下?
•项目最大的难点是什么?在项目中有没有遇到什么难题?你说你在项目中用到了一些设计模式,都讲讲你是怎么用的?项目中有分布式事务处理吗?有哪些常见的分布式事务处理方式?
•建立HTTP连接的三次握手的过程?
•客户端和服务端分别是什么状态。
•讲一讲Http和Https的区别。
•.线程间通信的方式?假如现在在同一台机器上开两个java项目,有几个java虚拟机?产生死锁的四个必要条件还记得吗?
•聊聊linux吧,lsof这个命令用过吗?讲一讲linux系统的启动过程?
•数据库事务的隔离级别有哪些?Mysql默认的隔离级别?不同的隔离级别是通过什么实现的?
•mysql的explain有用过吗?讲一讲数据库的慢查询?数据库的悲观和乐观锁都说一下吧,什么时候用乐观锁比较合适,什么时候用悲观锁比较合适?
•你对tomcat有多少了解,nginx呢?把你知道的都说一下。有做过tomcat调优吗?
•Java的内存模型,分为哪几块存储区,各个存储区域的作用?
•说一说volatile,一般什么时候用这个,举个例子。
•在项目中有用过ThreadLocal吗?为什么要用这个?ThreadLocal内存泄漏问题了解吗?要不你说下为什么会有这个现象?
•如果web服务器突然出现频率很高的FullGC,可能是什么原因?你会怎么去排查呢?
•讲一讲类加载器工作机制?你知道强引用、弱引用和软引用吗?为什么要有这些东西?他们有什么作用?你在项目中用过吗?
二、写题
给定一个二叉树,判断它是否是高度平衡的二叉树。题目描述如下:
本题中,一棵高度平衡二叉树定义为:
一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过1。
示例 1:给定二叉树 [3,9,20,null,null,15,7]
3
/ \
9 20
/ \
15 7
返回 true 。
示例 2:
给定二叉树 [1,2,2,3,3,null,null,4,4]
1
/ \
2 2
/ \
3 3
/ \
4 4
返回 false
#字节跳动##Java工程师##社招##面经#