快手校招java一面凉经_快手java开发实习 一面凉经(转载)已大概完成 某些题目真的不会了...

写在前面:

看了很多牛客的面经,扫一眼问题内容,觉得里面的xx问题,自己复习的时候有cover到,真正面试时候,才知道自己有多naive。

注重原理 不等于 背会原理,也 不等于 只看原理不看应用。没有真材实料,真的是不堪一击。

一面问题:

算法题:

1. 找一棵树距离根结点最深的叶子结点集合

深度优先搜索

(1)维护全局变量maxDep,也就是最大深度,默认为-1

(2)节点深度小于等于max,继续搜索(假设树根节点位于第0层)

(3)节点深度dep大于max,把max设置为当前的深度dep。

之后递归对左右子树调用函数,不过dep要加一(看下面代码就知道了)

运行完,maxDep就知道了

这个代码是1302的代码,求层数最深的叶子结点的和

class Solution {

int maxDepth = -1;

int sum = 0;

public int deepestLeavesSum(TreeNode root) {

return dfs(root, 0);

}

private int dfs(TreeNode root, int depth) {

if (root == null) {

return 0;

}

if (maxDepth < depth) {

maxDepth = depth;

sum = root.val;

} else if (depth == maxDepth) {

sum += root.val;

}

if (root.left != null) {

dfs(root.left, depth + 1);

}

if (root.right != null) {

dfs(root.right, depth + 1);

}

return sum;

}

}

之后层次遍历,找到对应的层数,把队列里面的元素加入集合。

2. 数据处理,30亿行的文件,写的是用户id,找不重复的用户id有多少,允许精确度丢失1%

不会

问答题:

(1)String类型list转long类型,考察Arraylist和LinkedList

Long.parseLong()

5ec20ff6df0bd1feedd94f7a4a10869a.png

(2)hashmap put get 方法。map.put(1L, "1"); map.get(1)输出的是什么(我感觉输出是null,因为get是对key来说的)

e561ab8ea6847ebe1f735791b3d8b0c1.png

25722a179a4a0f77958a93da1b11a733.png

(3)mysql,innodb索引如何实现范围查找(半懂)

a91c82a7853f6d20f834db61f4bb5bb9.png

(4)二级索引叶子结点存放的是什么(二级索引,也就是上面innoDB引擎的辅助索引,存储的是主键值)

(5)覆盖索引是什么,在编写sql的时候要注意哪些问题

b6ee52251b611c71c20986a9f15a32da.png

解释二: 索引是高效找到行的一个方法,当能通过检索索引就可以读取想要的数据,那就不需要再到数据表中读取行了。如果一个索引包含了(或覆盖了)满足查询语句中字段与条件的数据就叫 做覆盖索引。

(6)数据库隔离原则,以及常用隔离原则的实现原理(原理不清楚)

29023cc6970672b054ff7157a07a777e.png

(7)操作系统虚拟内存置换算法

400b48ec0f89b55f556633cf0fcbccf7.png

87c4137349ce58c3c5bdb3abdf8870cb.png

(9)SYN Flood 半开放攻击

不懂

(10)java内存模型

f84c683dcc52fca0827a4d194103b564.png

f3820c157ab11545bece6be0205b83d4.png

1dda62c2764540db3b9afa1054252f41.png

80518657a5efdfe180a11082d50d7c9e.png

a16682e81d3e850f8f6f2e4f88bec921.png

(11)volatile关键字,讲一下原理和应用的场景

加了volatile关键字的代码生成的汇编代码发现,会多出一个lock前缀指令。Lock指令对Intel平台的CPU,早期是锁总线,这样代价太高了,后面提出了缓存一致性协议,MESI,来保证了多核之间数据不一致性问题。保证线程读到的永远是最新值。

volatile关键字是用来保证有序性和可见性的。

(12)bash

不懂

这其中有一部分问题因为我的无知所以面试官也跳过了,总之一场下来,让自己清晰地认识到自身的局限,凉凉。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值