3月最新:字节跳动2面、美团2面Java面试真题总结

简介: 最新字节跳动和美团Java面试真题!

前言

宅在家里快两个月的在家办公模式基本告一段落。企业复工,大家的工作生活终于可以回归正轨,相信不少朋友已经走出家门,迎战跳槽季了。一些动作快的朋友可能已经拿到一两个 Offer 了。
image

那么,对于Java开发岗来说,到底该如何准备技术面呢?
其实,除了表达能力和面试技巧外,无非就从这几个方面进行准备:源码阅读、JVM、高并发,分布式、集群、中间件,微服务架构等。
下面是最新的字节跳动和美团的Java面试题,希望对大家面试有帮助!
image

字节跳动一面:

1.看过Spring的源码吗,开局暴击。
2.Class.forName()和ClassLoader.loaderClass()有什么区别,开局暴击*2.。
3.ConcurrentHashMap的原理,为什么是线程安全的,让你设计怎么实现读写安全
4.Mysql中有哪些索引,你能想到哪些作为索引的数据结构,HashMap,B+树,前缀树,面试官提示跳表
5.Spring事务传播机制的应用
6.线程安全的单例模式,写完DCL写静态内部类的时候写错了,汗
7.正向代理和反向代理
8.http是有状态的吗,tcp呢,为什么http是无状态的
9.RPC和微服务框架了解吗
总结:一面面了一个多小时吧,很多常见的面试问题就没列了,列的是以前没碰到过问题,感觉面试官很重视思维能力和总结能力,即对于一个设计中的原理很深刻并且能用于其他地方。

字节跳动二面:

1.先聊了聊项目
2.JVM
3.OOM问题和StackOverflow有什么区别
4.好像问了些网络方面的知识
5.思考题,64匹马,8个赛道,最少比多少场可以找出最快的4匹马?首先说15,后来想到了13,最后在网上搜的答案是11,挺有意思的一道题
代码题,也不难
总结:二面面试官项目方面聊的多一些,然后就是思考题和算法题,也差不多一个小时吧,当时从6点直接面到8点多,饭都没吃,突出一个惨
image

美团一面:

基本问的就是java基础,多线程,jvm,redis这些,大概一个小时左右吧

美团二面:

1.聊聊sychronized关键字,用法,底层实现,偏向锁,轻量级锁,自旋锁
2.聊聊偏向锁,轻量级锁的原理和过程
3.除了sychronized,还有啥,聊聊ReentrantLock,底层一个继承了AQS的实现类
4.聊聊AQS,volatile修饰的state,加锁过程,公平锁和非公平锁的实现
5.TCP和UDP的区别
6.三次握手和四次挥手的过程,为什么这样
7.聊聊ThreadLocal,为什么要用threadLocal,ThreadLocalMap中,key和value分别哪个是强引用,哪个是弱引用,我迷之坚持value是强引用。。。
8.线程的状态以及状态变化过程
9.CMS和G1的区别
10.聊聊Spring中的动态代理,实现了接口的用JDK动态代理,未实现接口的通过CGlib动态代理,动态代理和静态代理的区别
11.常用设计模式,策略模式的原理和应用
之后的话就是聊项目,做了哪些,遇到了哪些问题
代码题:两个链表代表的大数进行相加,我用两个栈分别保存链表,然后出栈的时候用头插法生成新链表,感觉时间复杂度没有最优,但是也过了
面试官介绍部门和业务的时候很热情也很详细,然后说等HR通知~
总的来讲,比起字节跳动,美团的面试稍微简单一丢丢,因为不会问的太底层,太发散,然后两家公司的面试官都很赞,很有耐心也很热情!
image

所有的面试题目都不是一成不变的,特别是像这种大厂,上面的面试真题只是给大家一个借鉴作用,最主要的还是给自己增加知识的储备,有备无患!欢迎关注公种浩,程序员追风,领取这些Java面试题资料!
image

针对于上面的面试问到的知识点总结出互联网公司Java程序员面试涉及到的绝大部分面试题及答案做成了文档(300页pdf)分享给大家,希望能帮助到您面试前的复习且找到一个好的工作,也节省大家在网上搜索资料的时间来学习。

最后

欢迎大家一起交流,喜欢文章记得关注我点个赞哟,感谢支持!

相关文章
|
27天前
|
Java 程序员
Java社招面试中的高频考点:Callable、Future与FutureTask详解
大家好,我是小米。本文主要讲解Java多线程编程中的三个重要概念:Callable、Future和FutureTask。它们在实际开发中帮助我们更灵活、高效地处理多线程任务,尤其适合社招面试场景。通过 Callable 可以定义有返回值且可能抛出异常的任务;Future 用于获取任务结果并提供取消和检查状态的功能;FutureTask 则结合了两者的优势,既可执行任务又可获取结果。掌握这些知识不仅能提升你的编程能力,还能让你在面试中脱颖而出。文中结合实例详细介绍了这三个概念的使用方法及其区别与联系。希望对大家有所帮助!
163 60
|
3天前
|
Java 程序员 开发者
Java社招面试题:一个线程运行时发生异常会怎样?
大家好,我是小米。今天分享一个经典的 Java 面试题:线程运行时发生异常,程序会怎样处理?此问题考察 Java 线程和异常处理机制的理解。线程发生异常,默认会导致线程终止,但可以通过 try-catch 捕获并处理,避免影响其他线程。未捕获的异常可通过 Thread.UncaughtExceptionHandler 处理。线程池中的异常会被自动处理,不影响任务执行。希望这篇文章能帮助你深入理解 Java 线程异常处理机制,为面试做好准备。如果你觉得有帮助,欢迎收藏、转发!
36 14
|
6天前
|
安全 Java 程序员
Java 面试必问!线程构造方法和静态块的执行线程到底是谁?
大家好,我是小米。今天聊聊Java多线程面试题:线程类的构造方法和静态块是由哪个线程调用的?构造方法由创建线程实例的主线程调用,静态块在类加载时由主线程调用。理解这些细节有助于掌握Java多线程机制。下期再见! 简介: 本文通过一个常见的Java多线程面试题,详细讲解了线程类的构造方法和静态块是由哪个线程调用的。构造方法由创建线程实例的主线程调用,静态块在类加载时由主线程调用。理解这些细节对掌握Java多线程编程至关重要。
34 13
|
26天前
|
算法 安全 Java
Java线程调度揭秘:从算法到策略,让你面试稳赢!
在社招面试中,关于线程调度和同步的相关问题常常让人感到棘手。今天,我们将深入解析Java中的线程调度算法、调度策略,探讨线程调度器、时间分片的工作原理,并带你了解常见的线程同步方法。让我们一起破解这些面试难题,提升你的Java并发编程技能!
65 16
|
22天前
|
Java 程序员 调度
Java 高级面试技巧:yield() 与 sleep() 方法的使用场景和区别
本文详细解析了 Java 中 `Thread` 类的 `yield()` 和 `sleep()` 方法,解释了它们的作用、区别及为什么是静态方法。`yield()` 让当前线程释放 CPU 时间片,给其他同等优先级线程运行机会,但不保证暂停;`sleep()` 则让线程进入休眠状态,指定时间后继续执行。两者都是静态方法,因为它们影响线程调度机制而非单一线程行为。这些知识点在面试中常被提及,掌握它们有助于更好地应对多线程编程问题。
55 9
|
28天前
|
安全 Java 程序员
Java面试必问!run() 和 start() 方法到底有啥区别?
在多线程编程中,run和 start方法常常让开发者感到困惑。为什么调用 start 才能启动线程,而直接调用 run只是普通方法调用?这篇文章将通过一个简单的例子,详细解析这两者的区别,帮助你在面试中脱颖而出,理解多线程背后的机制和原理。
60 12
|
1月前
|
监控 Dubbo Java
Java Dubbo 面试题
Java Dubbo相关基础面试题
|
1月前
|
SQL Java 数据库连接
Java MyBatis 面试题
Java MyBatis相关基础面试题
|
1月前
|
存储 监控 算法
Java JVM 面试题
Java JVM(虚拟机)相关基础面试题
|
1月前
|
SQL 监控 druid
Java Druid 面试题
Java Druid 连接池相关基础面试题