3月最新:字节跳动2面、美团2面Java面试真题总结
前言
宅在家里快两个月的在家办公模式基本告一段落。企业复工,大家的工作生活终于可以回归正轨,相信不少朋友已经走出家门,迎战跳槽季了。一些动作快的朋友可能已经拿到一两个 Offer 了。
那么,对于Java开发岗来说,到底该如何准备技术面呢?
其实,除了表达能力和面试技巧外,无非就从这几个方面进行准备:源码阅读、JVM、高并发,分布式、集群、中间件,微服务架构等。
下面是最新的字节跳动和美团的Java面试题,希望对大家面试有帮助!
字节跳动一面:
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点多,饭都没吃,突出一个惨
美团一面:
基本问的就是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通知~
总的来讲,比起字节跳动,美团的面试稍微简单一丢丢,因为不会问的太底层,太发散,然后两家公司的面试官都很赞,很有耐心也很热情!
所有的面试题目都不是一成不变的,特别是像这种大厂,上面的面试真题只是给大家一个借鉴作用,最主要的还是给自己增加知识的储备,有备无患!欢迎关注公种浩,程序员追风,领取这些Java面试题资料!
针对于上面的面试问到的知识点总结出互联网公司Java程序员面试涉及到的绝大部分面试题及答案做成了文档(300页pdf)分享给大家,希望能帮助到您面试前的复习且找到一个好的工作,也节省大家在网上搜索资料的时间来学习。
最后
欢迎大家一起交流,喜欢文章记得关注我点个赞哟,感谢支持!
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
K8s 1.18 正式 release | 云原生生态周报 Vol. 43
作者 | 汪萌海、 王思宇 业界要闻 K8s 1.18 正式 release Kubernetes 1.18 版本发布! 一些将对社区产生影响的新特性日渐完善,如 KSA(Kubernetes Service Account) tokens 的 OIDC 发现和对 Windows 节点的支持。此外,一些在 Alpha 状态下运行了很久的特性,也重新成为新的焦点,如 ingress 或 APIServer 网络代理。1.18 版本共有 13 个特性逐渐稳定,这是所有新变化的 1/3!其中几个比较有意思的特性,例如 kubectl 调试容器、使用 Kubernetes API 令牌作为通用身份验证机制、支持根据 pod 的 schedulerName 运行不同的调度配置、支持 Pod 自定义打散、HPA 支持配置伸缩速率等。 KubeOpera
- 下一篇
直播源码的开发方式有哪两种?
直播已经成为了一种行业,吸引力各路创业者,特别是一对一直播的出现,一对一直播源码也可以选择原生开发和混合开发,两种开发方式都能达到开发一对一直播的目的,这时候就会有人问:这两种开发方式有什么区别?开发一对一直播时应该选择哪种方式开发? 接下来小编就给大家汇总一下一对一直播源码原生开发和混合开发的区别,以及优缺点进行对比。什么是原生开发?原生应用开发是指在Android、IOS等移动平台上利用官方提供的开发语言、开发类库、开发工具进行App开发。我们常用的微软Word就是原生开发的应用程序,原生开发的一对一直播源码是特别为某种操作系统开发的,比如iOS、Android、黑莓等等,它们在各自的移动设备上运行,在应用性能上和交互体验上应该是最好的,但是对于一对一直播APP源码开发者来说,由于原生应用的可移植性比较差,Android和IOS要分别开发,同样的逻辑、界面要写两套,所以对开发团队来说,原生开发的方式并不友好,但对于用户来说,在某系统上使用原生开发的一对一直播APP,使用感是非常棒的。在一对一直播源码的原生开发中,开发者通常在android系统采用java进行开发,而IOS会利用Ob...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS8编译安装MySQL8.0.19
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- SpringBoot2整合Redis,开启缓存,提高访问速度
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- Hadoop3单机部署,实现最简伪集群
- CentOS7,CentOS8安装Elasticsearch6.8.6
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果