字节暑期oc

面经整理(几个印象深刻的)
一面2.26
自我介绍后,先实习经历拷打
1.跨服务调用,如何保证usercontext格式统一
2.协程和线程对比,wisp协程源码分析
3.布隆过滤器误判率高的原因
4.mvcc
5.讲一讲AICD
6.hive侧数据到mysql侧的离线开发过程了解吗
7.kafka和RocketMq对比
手撕:任意字符串相加,不准使用bigdeicmal
反问

二面3.3
先实习经历拷打
1.jvm了解吗,双亲委派讲一讲
2.为什么tomcat要打破双亲委派
3.内存溢出的原因,怎么排查,怎么解决?
4.jvm内存优化了解吗,jmap命令?
5.垃圾回收器,G1和CMS对比
6.G1如何解决跨代引用
7.redis大key问题
手撕: 无重复最长子串
反问

三面3.6
应该是大老板,先聊了一会天,然后实习经历拷打
1.微信朋友圈如何设计应对1亿流量,具体的model类设计能讲讲吗
2.乐观锁与悲观锁,讲一讲实际使用场景
手撕: 带过期时间的LRU
反问

hr面3.7
3.11oc
因为大部分都是围绕实习深挖的问题,常规八股不是很多,仅供参考
全部评论
手撕是啥样的,给个acm页面投屏吗,还是不投屏讲思路或者用自己的idea之类的
5 回复 分享
发布于 03-11 20:29 辽宁
是go还是java岗位
2 回复 分享
发布于 03-12 08:17 上海
好奇带过期时间的lru怎么撕,我是说它该给什么样子的用例
2 回复 分享
发布于 03-12 03:49 湖北
楼主有背调吗,大概背调多久完发正式offer
1 回复 分享
发布于 03-18 11:46 广东
大佬这些题都会吗
1 回复 分享
发布于 03-16 01:42 江苏
佬,鼠鼠我一面字节就秒挂
1 回复 分享
发布于 03-13 05:49 江苏
一直想问过期时间的LRU put的时候节点满了是优先删除已过期的节点吗,需要用一个优先队列去记录即将过期的节点吗,还是删除链表末尾节点就行呀
1 回复 分享
发布于 03-12 15:09 北京
佬,11号什么时候通知oc呢
1 回复 分享
发布于 03-12 10:35 陕西
大佬,能问下三面朋友圈那个题怎么回答吗
点赞 回复 分享
发布于 05-05 10:55 北京
接好运
点赞 回复 分享
发布于 04-04 21:29 湖南
请问一面完了多久约二面
点赞 回复 分享
发布于 04-02 11:21 陕西
佬 面试官有没有要看你项目源代码
点赞 回复 分享
发布于 03-30 21:41 黑龙江
m
点赞 回复 分享
发布于 03-18 21:50 北京
mark
点赞 回复 分享
发布于 03-14 16:54 广西
一面好难啊
点赞 回复 分享
发布于 03-14 16:29 四川
接好运
点赞 回复 分享
发布于 03-14 12:21 湖南
接好运
点赞 回复 分享
发布于 03-14 02:37 广东
mark
点赞 回复 分享
发布于 03-13 22:12 湖北
接好运,苏真强
点赞 回复 分享
发布于 03-13 21:56 上海
佬,大三暑期实习想找个中厂的后端岗,技术栈应该学到什么程度
点赞 回复 分享
发布于 03-13 21:15 江苏

相关推荐

import java.util.*;class Node {public Integer key;public Integer value;public Long timeStamp;public Node(Integer key, Integer value, Long timeStamp) {this.key = key;this.value = value;this.timeStamp = timeStamp;}}class LRUCache {private Map<Integer, Node> map;private int capacity;public LRUCache(int capacity) {map = new LinkedHashMap<>();this.capacity = capacity;}public int get(int key) {Node node = map.get(key);// key 不存在if (node == null) {return -1;}// key 过期(懒删除策略)if (isExpire(node)) {map.remove(key);return -1;}map.remove(key);map.put(key, node);return node.value;}public void put(int key, int value, Long timeStamp) {Node node = map.get(key);if (node == null) {  // key 不存在node = new Node(key, value, timeStamp);if (map.size() < capacity) {  // 有额外空间map.put(key, node);} else {  // 没有额外空间// 先尝试移除过期keyremoveExpireNodes();// 如果空间还是不足,移除最老的keyif (map.size() >= capacity) {map.remove(map.keySet().iterator().next());}map.put(key, node);}} else {  // key 存在map.remove(key);node = new Node(key, value, timeStamp);map.put(key, node);}}private void removeExpireNodes() {for (Node node : map.values()) {if (isExpire(node)) {map.remove(node.key);}}}private boolean isExpire(Node node) {if (node.timeStamp == null) {  // 没有时间戳表示永久不过期return false;}return System.currentTimeMillis() > node.timeStamp;}}class LRUTTL {public static void main(String[] args) {LRUCache cache = new LRUCache(2);cache.put(1, 10, null);cache.put(2, 20, null);System.out.println(cache.get(1));  // 10cache.put(3, 30, null);System.out.println(cache.get(2));  // -1cache.put(4, 40, System.currentTimeMillis() + 1000);try {System.out.println(cache.get(1));  // -1Thread.sleep(1500);System.out.println(cache.get(3));  // 30System.out.println(cache.get(4));  // -1} catch (InterruptedException e) {throw new RuntimeException(e);}}}优化点:可以维护一个map结构存储<最小过期时间,节点数量>来判断当前LinkedList中是否存在已经过期的node,可以一定程度地减少 removeExpireNodes 的调用次数
点赞 评论 收藏
分享
评论
57
229
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务