2024年BIGO Java 三面 + HR 面面经(已意向),docker面试题汇总

本文详细介绍了Java基础、中级、高级内容,涵盖开源框架、性能优化、分布式系统、微服务、并发编程等,还包括面试题解析、学习资源推荐,为Java开发者提供系统化的学习路径和实战指导。
摘要由CSDN通过智能技术生成

复习的面试资料

这些面试全部出自大厂面试真题和面试合集当中,小编已经为大家整理完毕(PDF版)

  • 第一部分:Java基础-中级-高级

image

  • 第二部分:开源框架(SSM:Spring+SpringMVC+MyBatis)

image

  • 第三部分:性能调优(JVM+MySQL+Tomcat)

image

  • 第四部分:分布式(限流:ZK+Nginx;缓存:Redis+MongoDB+Memcached;通讯:MQ+kafka)

image

  • 第五部分:微服务(SpringBoot+SpringCloud+Dubbo)

image

  • 第六部分:其他:并发编程+设计模式+数据结构与算法+网络

image

进阶学习笔记pdf

  • Java架构进阶之架构筑基篇(Java基础+并发编程+JVM+MySQL+Tomcat+网络+数据结构与算法

image

  • Java架构进阶之开源框架篇(设计模式+Spring+SpringMVC+MyBatis

image

image

image

  • Java架构进阶之分布式架构篇 (限流(ZK/Nginx)+缓存(Redis/MongoDB/Memcached)+通讯(MQ/kafka)

image

image

image

  • Java架构进阶之微服务架构篇(RPC+SpringBoot+SpringCloud+Dubbo+K8s)

image

image

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

  • 跳表的原理和插入过程

  • 场景题:有很多数据,各自具有依赖关系,采用什么数据结构存储

计网:

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

设计模式:

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

JVM:

  • 四种引用

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

Java:

  • 面向对象和面向过程的区别

  • 接口和抽象类的区别

  • 多态的分类

  • 异常体系

  • finally 的作用

  • 如果在 finally 块中有 return 语句,发生异常会执行吗?不发生呢?

  • ArrayList 的扩容过程

  • 非线程安全的集合怎么改为线程安全

算法

LC 21 合并有序链表

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

10.8 17:30 二面

=============

实习:

  • 实习做了什么

  • 介绍实习的项目

项目

  • 介绍项目

  • 怎么实现 IOC 的

  • 怎么管理 Bean 的

  • 一个请求进入,是怎么运作的

  • Shiro 怎么集成的

  • 怎么解决循环依赖的情况

  • 做了这个

项目的收获

Redis:

  • Redis 的数据结构有哪些?使用场景?(尬住了,只知道 sorted set 的场景)

  • 场景题:记录活跃用户

Spring Cloud:

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

Netty

  • Netty 的线程模型

算法

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

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

public List largestValues(TreeNode root){

List res = new ArrayList<>();

Queue 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;

}

10.20 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 maxSubArr(int[] nums){

if (nums == null || nums.length == 0){

总结

其他的内容都可以按照路线图里面整理出来的知识点逐一去熟悉,学习,消化,不建议你去看书学习,最好是多看一些视频,把不懂地方反复看,学习了一节视频内容第二天一定要去复习,并总结成思维导图,形成树状知识网络结构,方便日后复习。

这里还有一份很不错的《Java基础核心总结笔记》,特意跟大家分享出来

目录:

部分内容截图:

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

这里还有一份很不错的《Java基础核心总结笔记》,特意跟大家分享出来

目录:

[外链图片转存中…(img-m1xB9LYT-1714962852040)]

部分内容截图:

[外链图片转存中…(img-FPukV8sW-1714962852040)]

[外链图片转存中…(img-B8NExCrQ-1714962852040)]

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值