BIGO Java 123 + HR 面面经(已意向)

8.31 14:30 一面

实习:

  • 实习做了什么
  • 介绍实习的项目

数据结构:

  • 有哪些数据结构
  • 链表和数组的区别
  • 跳表的原理和插入过程
  • 场景题:有很多数据,各自具有依赖关系,采用什么数据结构存储

计网:

  • 三次握手和四次挥手的过程

设计模式:

  • 工厂模式的设计思路,优缺点

JVM:

  • 四种引用
  • 场景题:如果是一个服务器用于存储数据,然后里面有一些数据是热点数组,需要缓存,用哪种引用

Java:

  • 面向对象和面向过程的区别
  • 接口和抽象类的区别
  • 多态的分类
  • 异常体系
  • finally 的作用
  • 如果在 finally 块中有 return 语句,发生异常会执行吗?不发生呢?
  • ArrayList 的扩容过程
  • 非线程安全的集合怎么改为线程安全

算法:

LC 21 合并有序链表

  • 分析最差最好时间复杂度

9.7 17:30 二面

实习:

  • 实习做了什么
  • 介绍实习的项目

项目:

  • 介绍项目
  • 怎么实现 IOC 的
  • 怎么管理 Bean 的
  • 一个请求进入,是怎么运作的
  • Shiro 怎么集成的
  • 怎么解决循环依赖的情况
  • 做了这个项目的收获

Redis:

  • Redis 的数据结构有哪些?使用场景?(尬住了,只知道 sorted set 的场景)
  • 场景题:记录活跃用户

Spring Cloud:

  • 核心组件有哪些以及对应的功能

Netty:

  • Netty 的线程模型

算法:

LC 515 在每个树行中找最大值

在上面题目基础上,修改条件(奇数最大,偶数最小)(也是尴尬现场,定义了 flag 变量,忘记更新了)

public List<Integer> largestValues(TreeNode root){
    List<Integer> res = new ArrayList<>();
    Queue<TreeNode> queue = new LinkedList<>();
    if (root != null){
        queue.offer(root);
    }
    boolean flag = false;
    while (!queue.isEmpty()){
        int cur = 0;
        if (flag){
            int cur_size = queue.size();
            cur = Integer.MIN_VALUE;
            for (int i = 0;i < cur_size;i++){
                TreeNode x = queue.poll();
                cur = Math.max(cur,x.value);
                if (x.left != null){
                    queue.offer(x.left);
                }
                if (x.right!= null){
                    queue.offer(x.right);
                }
            }
        }else {
            int cur_size = queue.size();
            cur = Integer.MAX_VALUE;
            for (int i = 0;i < cur_size;i++){
                TreeNode x = queue.poll();
                cur = Math.min(cur,x.value);
                if (x.left != null){
                    queue.offer(x.left);
                }
                if (x.right!= null){
                    queue.offer(x.right);
                }
            }
        }
        res.add(cur);
        flag = !flag;
    }
    return res;
}

9.22 17:30 三面

实习:

  • 介绍实习的项目
  • 实习做了什么
  • 实习遇到的困难,怎么解决的
  • 实习的收获

算法:

剑指42 连续子数组最大和

  • 动态规划
  • 二分递归

在上面题目基础上,修改条件(输出子数组,不单单是最大值)

public static void main(String[] args) {
    int[] nums = {0,2,3,4,-2,-3,9,11};
    System.out.println(maxSubArr(nums));
}

public static List<Integer> maxSubArr(int[] nums){
    if (nums == null || nums.length == 0){
        return new ArrayList<>();
    }
    int[][] dp = new int[nums.length][2];
    for (int i = 0;i < nums.length;i++){
        dp[i][1] = i;
    }
    dp[0][0] = nums[0];
    int max = dp[0][0];
    int start = 0;
    int end = 0;
    for (int i = 1;i < dp.length;i++){
        if (dp[i - 1][0] > 0){
            dp[i][0] = dp[i - 1][0] + nums[i];
            dp[i][1] = dp[i - 1][1];
        }else {
            dp[i][0] = nums[i];
            dp[i][1] = i;
        }
        max = Math.max(dp[i][0],max);
        if (max == dp[i][0]){
            start = dp[i][1];
            end = i;
        }
    }
    List<Integer> res = new ArrayList<>();
    for (int i = start;i <= end;i++){
        res.add(nums[i]);
    }
    return res;
}

闲聊:

  • 对于博客的想法
  • 对于新技术的想法
  • 如何学习一个新的技术
  • 未来规划
  • 怎么协调工作与学习

9.26 20:00 HR 面

  • 项目做了什么,有什么收获
  • 对于前面面试官的看法
  • 对于 BIGO 的一个了解
  • 对于 YY 和 BIGO 的一个区别了解
  • 实习做了什么,有什么收获(这个时候才发现 BIGO 投递简历的时候没有加上实习的内容,我就说怎么面试官听到我说实习的时候问的不是具体的东西)
  • 对于企业更加看重的是什么
  • 对于薪资的一个要求
  • 手上有其他 offer 或者在流程中的吗

9.30 下午收到意向书

#BIGO校招##面经##秋招##面试题目##BIGO##Java工程师#
全部评论
合并有序链表:https://www.nowcoder.com/link/timuwh4 可以练练手~
1 回复 分享
发布于 2021-11-12 20:02
各自具有依赖关系采用什么数据结构呀?请问楼主怎么答的
1 回复 分享
发布于 2021-10-03 18:37
平时没怎么了解过场景题,看到有懵hh
1 回复 分享
发布于 2021-10-01 17:14
校友,哪个部门
点赞 回复 分享
发布于 2021-10-12 17:54
每次让我介绍自己的项目我就不会说了
点赞 回复 分享
发布于 2021-10-12 10:40
雀食看得懂不会做
点赞 回复 分享
发布于 2021-10-08 10:54
请问热点数据缓存是用软引用吗?
点赞 回复 分享
发布于 2021-10-04 15:26
楼王您好,问下hr问对薪资有啥要求咋回答
点赞 回复 分享
发布于 2021-10-02 20:59

相关推荐

04-09 09:47
门头沟学院 Java
Arbelite_:2-3k,这工资还不如去摇奶茶
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
05-29 22:21
Offer1:小马智行,深圳,测试开发工程师,17.0k*16.0,Offer2:追觅科技,深圳,嵌入式工程师,18.0k*15.0,
嵌软狗都不学:各位base深圳的同事,作为也是并肩作战的一员,今天想站在管理视角,和大家开诚布公地聊一聊:从近几个月的上下班数据对比看来,我们发现一个明显的差异:深圳同事的在岗时间普遍比苏州同事短。很多深圳同事早上9点之后才到公司,晚上不到 20 点就下班了;而总部那边,20点半甚至 22 点后还有不少同事在办公室忙碌,特别是研发团队,加班更是常态。相信去过苏州的同事,对这种场景都不陌生。我很好奇,这是因为苏州工作任务太重还是咱们深圳同事效率真的高到能在更短时间内完成工作?MOVA在深圳成立分公司是为了吸引更优秀的人才贡献更多更高质的价值,公司管理层给我反馈的是深圳招到的多是行业的专家大拿,大部分都是薪资比苏州高的,而且我们办公的租金等也远高于苏州的..MOVA虽脱胎于强壮的集团母体不久,各业务板块尚未实现全面盈利,虽说公司管理层目光长远,不纠结当下的人才投入,但行业内的普遍标准是,员工创造的价值要达到公司雇佣成本的 15 倍以上。大家不妨自我审视一下,自己是否达到了这个标准?如果是抱着划水、按时打卡走人拿毛爷爷的心态那不适合来MOVA,那样过下去不但自己过得尴尬也会影响MOVA这个大船的攻城略地的速度.我并非鼓励大家盲目加班,而是倡导高效工作,拒绝无效忙碌,不要让项目进度因低效受影响,也别把精力浪费在和苏州同事拼打卡时长上,提倡更高的人效比;考虑到两地地域和交通差异,相信大家会找最适合自己发挥的工作方式(比如按时下班后1小时到家晚饭后继续未竟工作等..)大家在遵守公司规章的情况下尽情地体现自己的能力价值,为MOV!和深圳公司争光我们在这边才能更安心更有信心的工作下去;请客BU长、名部门长、项目管理和各业务单元负责人,全面梳理团队情况,及时评估成员工作负荷与成果质量,坚决清退划水害虫痕疫,践行公司价值观,相互监督,防止管理漏洞及渎职。感谢人家的理解,也请人家多担待我的直言不讳……
点赞 评论 收藏
分享
评论
24
112
分享

创作者周榜

更多
牛客网
牛客企业服务