快手Java实习一二面经(记录的面试题1)

作者:ricardoooo
链接:https://www.nowcoder.com/discuss/405849?type=post&order=time&pos=&page=1&channel=&source_id=1
来源:牛客网

快手效率超高,一点开始面试,一二面连着,四点oc。
一面:
自我介绍 聊论文
垃圾回收算法
 
详细说一说CMS

 

 

 

 

 

 

类加载过程
 

 

 

 

 

 

 初始化阶段是虚拟机执行类构造器 <clinit>() 方法的过程。

 
 
 
 
 
为啥要双亲加载

 

 

 

 

 
 
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)(cx+cy)秒,怎么合理安排计算的顺序,可以使得花费的时间最短。(我太菜了 写了半天 写完还超时了)
 
二面:(二面面试官和蔼可亲循循善诱)
自我介绍 聊未来规划
写个题:判断数组中是否存在两个不同的索引 i 和 j,使得 nums [i] = nums [j],并且 i 和 j 的差的绝对值最大为 k。(力扣219题)
class Solution {//看笔记,散列表
    public boolean containsNearbyDuplicate(int[] nums, int k) {
       Set<Integer> set=new HashSet<Integer>();//散列表,不能存储相同元素,而且存储元素顺序不是按照存入时的顺序。
       for(int i=0;i<nums.length;i++)//题意是,j与i差值k以内的时候,俩数相等,就算true。所以,让HashSet里面元素小于等于k个,一旦当前元素在set里面存在,就说明k个下标以内,有相同的数出现了,则符合返回true的要求。如果当前set里面元素总数大于k,就退出最旧的元素,保证不超过k个
       {
           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呢

 

 

 

 

 

 

 

 

 
 
 
 
一个进程是怎么跑起来的(胡乱说了一堆)
 
posted @ 2020-05-08 15:43  弓呆的胖次  阅读(880)  评论(0编辑  收藏  举报