从思维图到基础再到深入,记一次字节跳动Java研发岗的面试经历,

爱写代码的潇 2021-09-15 04:50:30
java 后端 程序员


蚂蚁金服

一面

算法题,给了长度为N的有重复元素的数组,要求输出第10大的数。

需要在2小时内完成。

二面

自我介绍

目前在部门做什么,业务简单介绍下,内部有哪些系统,作用和交互过程说下

Dubbo踩过哪些坑,怎么解决的?

对线程安全的理解

乐观锁和悲观锁的区别?

这两种锁在Java和MySQL分别是怎么实现的?

事务有哪些特性?

怎么理解原子性?

HashMap为什么不是线程安全的?

怎么让HashMap变得线程安全?

jdk1.8对ConcurrentHashMap做了哪些优化?

redis主从机制了解么?怎么实现的?

有过GC调优的经历么?

有什么想问的

三面

自我介绍

接下来就是全部问的项目,对自己的项目细节逐个盘问,最后问了下如何改进方案

有什么想问我么?

四面

介绍下自己

问项目

说说Spring的生命周期吧

说说GC的过程

强制young gc会有什么问题?

知道G1么?

回收过程是怎么样的?

你提到的Remember Set底层是怎么实现的?

CMS GC有什么问题?

怎么避免产生浮动垃圾?

有什么想问的么?

五面

HRBP面,主要聊了部门在做的事情、职业发展、福利待遇等。阿里面试官有一票否决权,很看重你的价值观是否match。

HR面一定要诚实,不要说谎,只要你说谎HR都会去证实。

最后HR还对我说目前稳定性保障部挺缺人的,希望我尽快回复。

小结

蚂蚁面试比较重视基础,所以Java那些基本功一定要扎实。

拼多多

一面

聊项目

Java中的HashMap、TreeMap解释下?

TreeMap查询写入的时间复杂度多少?

ConcurrentHashMap怎么实现线程安全的?

HashMap多线程有什么问题?怎么解决?

CAS和synchronize有什么区别?都用synchronize不行么?

get需要加锁么,为什么?

volatile的作用是什么?

给我一张纸,画了一个九方格,都填了数字,给一个MN矩阵,从1开始逆时针打印这MN个数,要求时间复杂度尽可能低,可以先说下思路

有什么想问我的?

二面

自我介绍下

手上还有其他offer么?

部门组织结构是怎样的?

系统有哪些模块,每个模块用了哪些技术,数据怎么流转的?给了我一张纸,我在上面简单画了下系统之间的流转情况

链路追踪的信息是怎么传递的?

SpanId怎么保证唯一性?

RpcContext是在什么维度传递的?

Dubbo的远程调用怎么实现的?

Spring的单例是怎么实现的?

为什么要单独实现一个服务治理框架?

谁主导的?内部还在使用么?

逆向有想过怎么做成通用么?

有什么想问的

HR面

主要问了些职业发展、是否有其他offer、以及入职意向等问题,顺便说了下公司的福利待遇等,手上有其他offer或者大厂经历会有一定加分。

字节跳动

一面

自我介绍

聊项目

Redis熟悉么,了解哪些数据结构? zset底层怎么实现的?

红黑树了解么,时间复杂度?

既然两个数据结构时间复杂度都是O(logN),zset为什么不用红黑树

线程池的线程数怎么确定?

如果是IO操作为主怎么确定?

如果计算型操作又怎么确定?

跳表的查询过程是怎么样的,查询和插入的时间复杂度?

说下Dubbo的原理?

CAS了解么?还了解其他同步机制么?

做题:数组A,2*n个元素,n个奇数、n个偶数,设计一个算法,使得数组奇数下标位置放置的都是奇数,偶数下标位置放置的都是偶数。先说下你的思路

你有什么想问我的?

二面

自我介绍

问项目

分布式追踪的上下文是怎么存储和传递的?

SpringMVC不同用户登录的信息怎么保证线程安全的?

我们聊聊mysql吧,说下索引结构,为什么使用B+树?

Dubbo的RpcContext是怎么传递的?主线程的ThreadLocal怎么传递到线程池?你说的内存泄漏具体是怎么产生的?

线程池的线程是不是必须手动remove才可以回收value?那你说的内存泄漏是指主线程还是线程池?

什么是索引覆盖?

Java为什么要设计双亲委派模型?

什么时候需要自定义类加载器?

做题:手写一个对象池

有什么想问我的

小结

头条的面试确实很专业,而且面试官最后给我了一点建议,就是研究技术的时候一定要结合技术的背景。

面试官都有一个特点,会抓住一个值得深入的点或者你没说清楚的点深入下去直到你把这个点讲清楚,不然面试官会觉得你并没有真正理解。

最后

这份《“java高分面试指南”-25分类227页1000+题50w+字解析》同样可分享给有需要的朋友,感兴趣的伙伴们可挑战一下自我,在不看答案解析的情况,测试测试自己的解题水平,这样也能达到事半功倍的效果!(好东西要大家一起看才香)

 CodeChina开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频】

从思维图到基础再到深入,记一次字节跳动Java研发岗的面试经历,_程序员

从思维图到基础再到深入,记一次字节跳动Java研发岗的面试经历,_Java_02

版权声明
本文为[爱写代码的潇]所创,转载请带上原文链接,感谢
https://blog.51cto.com/u_15298533/3887981

  1. Huawei cloud guassdb (for redis) released a new version: Lua script and SSL connection encryption
  2. Java thread pool - work queue
  3. 一名畢業三年的女程序媛面試頭條經驗,關於Redis主從節點數據過期一致性的思考,
  4. Trois ans d'expérience d'entrevue avec une femme de programmation diplômée, une réflexion sur la cohérence de l'expiration des données de redis Master slave Node,
  5. Un plan de carrière Java correct, découvrez les questions que vous devez poser lors de l'entrevue d'embauche du printemps Java de cette année.
  6. 万字详解微服务的哨兵机制,架构师带你玩转Redis高性能缓存设计实战,
  7. Un article vous a appris à gérer les entrevues sur le Web, à partager 350 vraies questions d'entrevue Java,
  8. Jquery Tools Methodology collation, Sharing a little interview Experience
  9. Tutoriel de développement Java, compétences de base nécessaires pour interviewer un programmeur Java dans une grande usine,
  10. "Anti Mafia storm" has just finished, another criminal investigation play has come, and the supporting actor is more popular than the protagonist
  11. 萬字詳解微服務的哨兵機制,架構師帶你玩轉Redis高性能緩存設計實戰,
  12. L'architecte vous guidera dans la conception de cache haute performance de redis.
  13. Linux驱动开发: 杂项字符设备
  14. Jquery plug - in urianchor, app front end Development
  15. Linux驅動開發: 雜項字符設備
  16. Développement de pilotes Linux: périphériques de caractères divers
  17. Utilisez @ async dans Spring boot pour effectuer des appels asynchrones et accélérer l'exécution des tâches!
  18. $in jquery, Visualized Web Development Tool
  19. Le développement Java doit être fait. Les entrevues https demandent souvent une analyse complète.
  20. 不明白JVM虚拟机还怎么面试,一起刷完了这份1307页的Java面试宝典吧,
  21. 不断提升自己创造溢价的能力,字节跳动 阿里 华为 腾讯等大厂Java面试题,
  22. Jdk's Past Life: The Classic Features of Thin Number - java5 - - - 15 -, webfront Development
  23. Résumé des questions d'entrevue pour les ingénieurs en développement Java, analyse des questions d'entrevue à haute fréquence Dubbo,
  24. Améliorer continuellement leur capacité à créer des primes, et les questions d'entrevue Java d'Alibaba Huawei Tencent et d'autres grandes usines sont sautées en octets.
  25. Install docker YJ version of openSUSE 11.3
  26. Je ne comprends pas comment la machine virtuelle JVM peut encore interviewer, et j'ai terminé ce dictionnaire d'entrevue Java de 1307 pages.
  27. 中软国际Java机试,如何写出高效率的SQL?
  28. 中级Java工程师面试,阿里 头条 腾讯等大厂Java笔试题目分享,
  29. 两年Java开发经验,为什么spring能最好地改变Java?
  30. Echarts realizes the rotation of the moon (super simple, you can see it at a glance)
  31. Deux ans d'expérience dans le développement de Java, pourquoi Spring peut - il le mieux changer Java?
  32. Entretien d'ingénieur Java intermédiaire, partage de sujets d'examen écrit Java de grandes usines comme Alibaba headline Tencent,
  33. Zhongsoft International Java Machine test, comment écrire un SQL efficace?
  34. Reflection type of Java Foundation
  35. Comment gérer efficacement les changements dans les ressources k8s?Analyse du mécanisme de mise en œuvre de k8s informer
  36. Installation de jdk1.8
  37. MySQL column - Linux underlying interaction and RAID storage architecture
  38. Interviewer: do redis transactions satisfy atomicity?
  39. 兩年Java開發經驗,為什麼spring能最好地改變Java?
  40. Migration practice from zookeeper to Nacos
  41. Dubbo's past and present life
  42. Initial experience of Dubbo application level service discovery
  43. Measure the Dubbo function of Tengine open source
  44. Comment envoyer 100 000 requêtes http le plus rapidement possible
  45. Huawei cloud guassdb (for redis) released a new version: Lua script and SSL connection encryption
  46. Mybatis vs hibernate, which performance is better?
  47. Python - Programmation orientée objet - _Rapport()
  48. Python - Programmation orientée objet - _Appel()
  49. JQuery Basics
  50. 五年Java开发经验面试,揭秘今年Java春招面试必问问题有哪些?
  51. 互联网Java工程师面试题,遇到的面试官都是架构师级别,
  52. Python - Programmation orientée objet - _Nouveau() et mode Singleton
  53. Python - Programmation orientée objet - méthode magique (méthode de double soulignement)
  54. Python - Programmation orientée objet - pratique (6)
  55. Python - Programmation orientée objet - réflexion hasattr, GetAttr, GetAttr, delattr
  56. Python - Programmation orientée objet - _Dict
  57. Computer graduation project java + SSM sorting algorithm online reading system
  58. Les questions d'entrevue pour les ingénieurs Java d'Internet, les intervieweurs rencontrés sont tous de niveau architecte,
  59. Cinq ans d'entrevue d'expérience en développement Java, découvrez les questions que vous devez poser lors de l'entrevue d'embauche du printemps Java de cette année.
  60. Java or the king of enterprise software- sivalabs