字节跳动技术中台日常实习生——后端研发
base:武汉
总共4次面试,3次技术+1次HR,在第3面,我跪了。。。。
一面
自我介绍
final、finalize()的区别,简单说说吧
static 关键字的用处和注意点是?
String类为何是final修饰的?说说它的底层数据结构吧
String、StringBuilder、StringBuffer有了解嘛?说说你对他们的理解
transient有什么作用?
红黑树的数据结构,左旋和右旋是怎样实现的?
HashMap一定用过吧?给我讲讲它的底层数据结构吧?HashTable与HashMap的区别是?
HashMap的扩容机制、详细说说put元素的过程吧
- Node的数据结构是?
- 寻址算法是?
- hashcode是对象原来的值吗?
- 为何散列表的长度是2的次方数?它的底层算法是怎样的?给我手写一下吧。
- 扩容的时候,Map中的元素是怎样分配到新的散列表中的?(面试官提示:红黑树中还维护着链表)
HashMap的负载因子为何默认为0.75?
什么是JVM?
JVM的运行时数据是怎样的?
什么是JVM的堆内存?
JVM的垃圾回收算法,讲讲你了解的垃圾回收器吧
有了解G1吗?
看你的项目中用了MySQL,说说MySQL的底层索引是什么数据结构吧?
在你的项目中,使用数据库的存储过程编程,有一定性能提升,能解释下为什么吗?
MySQL的隔离级别
什么是数据库事务?谈谈你对它的理解
MySQL的默认存储引擎是?
MySQL中存储引擎InnoDB和MyISAM的区别
进程和线程,说说理解
CPU如何进行进程间的通信的?
线程的生命周期
什么是线程的上下文切换?
sleep()和wait()的区别
synchronized 和 volatile 有了解吗?
synchronized 是重量级锁吗?
- 锁升级详细说说吧
- 那操作系统是如何实现临界区资源访问的同步的?
- CAS原理是啥?
volatile 原理和作用
做2个题吧
- 翻转二叉树
- 顺时针打印数组
二面
自我介绍
看你这个项目中,用到过MySQL,说说什么是“聚簇索引”吧
你在这个开发小组中担任组长,那说说你在开发中遇到的问题
项目可以演示吗?
- 一些关于项目的问题,都挺简单(比如为何选择Spring Boot作为开发框架等)
我再看看你的简历吧
JVM中的堆内存是什么?
JVM的垃圾回收算法和常见的垃圾回收器你知道哪些?
- Serial
- ParNew
- Parallel Scavenge
- CMS
- G1
- ZGC
三种垃圾回收算法的区别
强、软、弱、虚引用了解吗?
JVM的类加载机制是?
对象的访问定位有几种方式?
双亲委派模式知道吗?
ArrayList、LinkedList和Vector的异同以及底层数据结构是?
== 与 equals
序列化如何实现?为啥要实现序列化?
什么是JDBC?
int 和 Integer的关系?什么情况下Integer会创建一个新的对象?
反射有了解吗?说说看
死锁是?
线程的sleep()和yield()的区别
synchronized 的用法以及锁优化
什么是Huffman树?主要用途是?什么情况下压缩效率高?
B树和B+树有了解吗?
做2个题吧
-
给定一个非空字符串 s 和一个包含非空单词的列表 wordDict,判定 s 是否可以被空格拆分为一个或多个在字典中出现的单词。
-
二叉树展开为链表
三面
没有自我介绍
说说MySQL的索引吧
数据库事务的4大特性
MySQL的InnoDB和MyISAM的锁机制异同,谈谈
数据库SQL语句编写(一个题)
什么是读写分离?
JVM 的堆内存结构是?
详细介绍一下Java虚拟机栈
JVM 垃圾收集器有哪些?
CMS的执行过程是?
STW(STOP THE WORLD)是什么?是如何实现的(两种方式)?
对象的内存分配机制是?
了解过类加载器吗?
TreeMap了解吗?它的底层数据结构是?
平衡二叉树
B树、B+树、B*树有了解吧?简单说说你对他们的理解
什么是线程安全?
举例说明volatile的作用
- DCL