字节测开三轮面试

五月份面试的字节测试开发,目前已经入职了三周,把之前的面试一些内容整理一些,感觉字节这边更多都是开放的题目,很少有固定的一些八股。

一面

1.将一下你了解的软件测试和软件测试的方法

2.项目中如何实现幂等性的

3java中的final 、反射、线程池参数

4sql调优,一些索引的内容

5redis zset的结构和如何使用的

6kafka 如何防止消息重复、丢失、积压、保证消息可靠性

7压力测试如何做

8实习问的比较多,一半都是在问实习

9 算法双指针

二面

1拷打了一个12306买票的场景测试题,问到了超卖、乐观锁悲观锁如何实现等、

2.java的内存回收机制

3.项目中常用的一些设计模式,这边回答的时候死活想不起来策略模式

4,redis在使用的时候需要关注的点,直接往redis那几个特性上面说,也没有深入问

5问到了一个kafka 生产者和消费者不匹配问题,没听懂

算法一到sql,先分组在having。

第二道没写出来,是字节的经典题目了 小于n的最大数字

三面

三面是主管技术面,没有八股,一直都在问实习和项目经历,拷打项目和实习经历是否属实。

来字节也三周了,发现landing 真的好难,来这边干的基本都是打杂的事情,目前也是两手准备,实习和秋招同时准备着。

牛牛的面试专栏 文章被收录于专栏

牛牛的面试专栏,希望自己在25年可以拿到一份大厂的SP Offer 你的点赞和收藏都是我持续更新的动力

全部评论
佬,三面有手撕吗
点赞 回复 分享
发布于 09-09 17:38 重庆
佬打算干到什么时候辞职
点赞 回复 分享
发布于 06-15 21:08 天津
landing 慢是啥原因
点赞 回复 分享
发布于 06-15 19:45 广东

相关推荐

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 的调用次数
点赞 评论 收藏
分享
评论
6
21
分享

创作者周榜

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