【字节跳动校招提前批】后端面经-已offer

其实早就在6月24日就面完三面啦!端午后hr给我审批offer了😂,今天审批貌似通过了,所以来写一下面经啦

一面:
1. 从浏览器敲入baidu.com到回车的过程中发生了什么
2. client 如何通过ip地址找到目标机器(路由转发)
3. 了解arp吗
4. http和https的区别
5. redis有哪些数据结构? 如何用这些数据结构实现一个发布订阅的功能?
6. kafka为什么快?好处在哪?(主要是实习中用到了kafka)
7. 字符串压缩算法了解过吗?
8. threadlocal知道吗,如果让你实现一个类似的功能你如何实现?(当时不记得threadlocal了,然后面试官给了我个场景,让我实现以下。。我说用map然后key是thread的地址,value是存储变量)
9. 100w个数据求出前100大的数据
10. 手撕单例模式,双重判断
11. 单例模式为啥要用volatile,volatile的原理
12. jvm的数据结构?堆的结构?minor gc的算法?年轻代gc后没死的对象放哪?如何才能进入老年代,没进入老年代的从from to区间中的存放过程是怎样的(复制算法)?
13. 12m的对象放入年轻代10m的堆中会发生什么?(主要看老年代是否够大)
14. OOM后如何定位问题在哪?

算法题:
小红吃n天汉堡,要求每天吃的汉堡数目不一样,而且要尽可能多吃,且尽可能少吃牛肉汉堡。每天鸡肉汉堡供应数目a[i],牛肉汉堡供应数目b[i]。求至少要吃多少牛肉汉堡?(这题没写出来,面试官真是一点提示也不给啊。。。)

7.7 更新
import java.util.*;


public class Solution {
    /**
     * 
     * @param n int整型 
     * @param a int整型一维数组 
     * @param b int整型一维数组 
     * @return long长整型
     */
    class Node {
        public int chick;
        public int beef;
        public long total;
        public Node(int chick, int beef, long total) {
            this.beef = beef;
            this.chick = chick;
            this.total = total;
        }
    }
    public long EatingHamburger(int n, int[] a, int[] b) {
        Node[] nodes = new Node[n];
        for (int i = 0; i < n; i ++) {
            nodes[i] = new Node(a[i], b[i], a[i] + b[i]);
        }
        Arrays.sort(nodes, (o1, o2) -> Long.compare(o2.total, o1.total));
        long maxBurgeOneDay = nodes[0].total;
        PriorityQueue<Node> queue = new PriorityQueue<>((o1, o2) -> o2.chick - o1.chick);
        long ans = 0;
        int pos = 0;
        //每天吃个个数不相同,那么肯定是从eatBurgersArray = [maxBurgeOneDay, ...., q] maxBurgeOneDay > q, 且len(eatBurgersArray) = n
        //这里表示从一天能吃最大maxBurgeOneDay汉堡,以最小步长往后走,如果能吃到就吃,这样就可以吃到最大总数
        //例如sum [5,4,3,2] 肯定大于sum [5, 3, 1, 0]
        for (long i = maxBurgeOneDay; i > 0; i--) {
            //如果pos天的汉堡供应总数,大于今天该吃的汉堡数i,那么第pos天就肯定可以吃到i个汉堡,所以入队
             while (pos < n && nodes[pos].total >= i) {
                 //队列里所有的node当天都能供应i个以上汉堡,而且鸡肉多的node牛妹肯定最喜欢,所以优先出队
                 queue.add(nodes[pos]);
                 pos++;
             }
             if (!queue.isEmpty()) {
                 Node t = queue.poll();
                 long todayBeef = Math.max(i - t.chick, 0L);
                 ans += todayBeef;
             }
        }
        return ans;
    }
}


二面:
主要是问项目
1. redis的缓存穿透问题如何解决?
2. 在实习时数据库性能优化你做了什么工作?
3. 了解grpc吗?
4. 你是如何测试dubbo dfs thrift三种rpc性能的,简单说说。(还和我讨论了下不同序列化方式对性能影响)
5. 你是如何解决你实习过程中full gc问题的
6. 从浏览器敲入baidu.com到回车的过程中发生了什么
7. left join 和 inner join的区别
算法题:
1. leetcode 二叉树右视图(我用bfs写的,其实也可以用dfs;我说我做过,然后面试官说那就快点写完进入下一题吧😂

2. o表示住户,x表示快递柜地点。输出每个用户到快递柜的最近距离
输入:
o o o
o x o
o x o
输出
2 1 2
1 0 1
1 0 1

三面:
没面技术了
你最大优点是啥
你这几年来成就感最大的事情是啥
最大压力是啥
拿到offer后准备这一年干嘛
愿意来北京吗? 答:no

最后hr还是定了上海,祝大家秋招顺利
over
#字节跳动校招提前批##字节跳动##校招##Java工程师##面经#
全部评论
单例模式 DCL吗?
3 回复 分享
发布于 2020-07-06 16:16
求学习经验 非科班迷茫了😑
1 回复 分享
发布于 2020-07-06 15:48
楼主三面纯聊天嘛,咋感觉像是hr面啊
点赞 回复 分享
发布于 2020-07-06 14:13
二面的算法题 2 是用带备忘录的回溯写吗?还是说其他方法
点赞 回复 分享
发布于 2020-07-06 14:27
校友!! 大佬啊 膜拜膜拜
点赞 回复 分享
发布于 2020-07-06 14:56
求二面第二个算法题的思路,感觉dfs能解?还是说要用动态规划
点赞 回复 分享
发布于 2020-07-06 15:03
算法第二个  楼主是怎么做的?
点赞 回复 分享
发布于 2020-07-06 16:13
吃汉堡的题楼主是怎么想的呀
点赞 回复 分享
发布于 2020-07-06 16:17
楼主请问字节算法要求 100% 通过测试用例嘛, 还是代码能够表明基本的思路就行了? 一般一道算法题会给多长时间啊?
点赞 回复 分享
发布于 2020-07-06 16:21
这么牛逼的吗
点赞 回复 分享
发布于 2020-07-06 16:42
巨佬强无敌
点赞 回复 分享
发布于 2020-07-06 16:45
大佬牛逼~
点赞 回复 分享
发布于 2020-07-06 17:36
太强了
点赞 回复 分享
发布于 2020-07-06 17:42
大佬,是本科生还是研究生。感觉好强
点赞 回复 分享
发布于 2020-07-06 21:01
请问楼主这些知识都是怎么掌握的呢?是系统学习吗,有没有经验分享呀谢谢
点赞 回复 分享
发布于 2020-07-06 21:34
大佬可以回答一下一面的第9题嘛?
点赞 回复 分享
发布于 2020-07-06 22:11
大佬对这个面试一共准备了多久啊
点赞 回复 分享
发布于 2020-07-06 23:13
明天三面 蹭一蹭楼主的腿 吸取好运
点赞 回复 分享
发布于 2020-07-07 01:08
楼主请问有笔试吗
点赞 回复 分享
发布于 2020-07-07 12:38
马上二面,蹭一蹭
点赞 回复 分享
发布于 2020-07-07 12:48

相关推荐

点赞 评论 收藏
分享
ricardo_lee:双非本走人工智能,只能说机会约等于无
点赞 评论 收藏
分享
33 186 评论
分享
牛客网
牛客企业服务