快手效率超高,一点开始面试,一二面连着,四点oc。
一面:
自我介绍 聊论文
垃圾回收算法
详细说一说CMS
类加载过程
初始化阶段是虚拟机执行类构造器 () 方法的过程。
为啥要双亲加载
new一个对象 操作系统层面是怎么分配内存的
不会
写SQL的注意事项
(1)选取最适用的字段属性
(2)使用连接(JOIN)来代替子查询(Sub-Queries)
(3)使用联合(UNION)来代替手动创建的临时表
(4)事务 保持数据库里数据的一致性
redis会吗(不会)
Java写的多吗(python多 Java没有写太多)
spring呢(了解一点)
那就写个题吧:计算x,y两个数的和,需要花费(c∗x+c∗y)(c*x+c*y)(c∗x+c∗y)秒,怎么合理安排计算的顺序,可以使得花费的时间最短。(我太菜了 写了半天 写完还超时了)
二面:(二面面试官和蔼可亲循循善诱)
自我介绍 聊未来规划
写个题:判断数组中是否存在两个不同的索引 i 和 j,使得 nums [i] = nums [j],并且 i 和 j 的差的绝对值最大为 k。(力扣219题)
class Solution {//看笔记,散列表
public boolean containsNearbyDuplicate(int[] nums, int k) {
Set set=new HashSet();//散列表,不能存储相同元素,而且存储元素顺序不是按照存入时的顺序。
for(int i=0;i
{
if(set.contains(nums[i])) return true;
set.add(nums[i]);
if(set.size()>k)set.remove(nums[i-k]);
}
return false;
}
}
写个sql:课程名中包含‘计算机’的课程 且 成绩小于60分学生的 学号、姓名
数据库中JOIN是怎么实现的,IN呢
一个进程是怎么跑起来的(胡乱说了一堆)