BIGO 二面
0907 10:30
1 自我介绍
2 了解的设计模式 ,使用场景(单例,代理,工厂)
3 手写饿汉,懒汉单例
4 volatile还有什么用,可以保证i++操作的线程安全吗?
5 如何保证原子性
6 原子类底层实现
7 synchionized和reentrantlock的区别
8 动态代理实现原理
9 反射如何创建对象,如何通过反射获取类方法
10 泛型原理 , 使用场景,泛型变量如何限定
11 类加载过程
12 双亲委派机制,哪几种类加载器
13 JVM如何判定垃圾,哪些对象可以作为GC Root对象
14 位运算有哪些(与,或,异或,左移,右移,取反)
15 如何通过位运算交换 a,b的值 (异或)
16 代码:一个数组有一个元素是奇数个,其余元素全为偶数个,通过位运算找出该数目为奇数的元素
17 代码:通过左移右移运算符实现整数A,B的乘法
18 了解哪些排序算法以及各自的时间复杂度
19 插入排序和冒泡排序分别适用场景
20 插入排序实现过程
21 代码:优化冒泡排序程序,实现O(n)的时间复杂度