四面字节跳动Java研发岗,最终拿下Offer,只有努力,方能成功,老八股了

目前互联网行业形势越来越严峻,我接连投递了很多的简历,得到的回复却是寥寥无几,索性好好复习了大概一个半月的样子,挑战字节跳动成功!!接下来分享我在字节面试遇到的面试题,欢迎大家文末留言与我一起讨论!

字节一面

  • 面试题(面了一个小时,只记得一 小部分了,不分先后)
  • 讲讲项目
  • 在浏览器的ur栏里输入一个https的请求会发生什么? balabala.
  • 三次握手,close_ _wait, time_ _wait原理
  • 内存泄露原因,举例子,怎么排查,OOM异常
  • 静态内部类会被编译成几个class?为什么内部类可以访问外部类的private的方法?
  • 多线程安全,线程池相关问题
  • 集合框架源码,concurrenthashmap, hashmap linkedhashmap实现L _RU
  • 为什么需要锁,你知道几种锁,说说AQS,说说CAS
  • synchronized原理, jdk6对他的优化,(偏向锁等), JNI, 逃逸分析,对象的markword
  • 知道几个设计模式,怎么用,写双重检查锁单例模式
  • 算法:手写jdk中的优先级队列 PriorityQueue(最大堆)

字节二面

  • 面试题(面了一个小时,只记得一部分了,不分先后) 算法题:
  • 介绍自己
  • 说说项目,说说你的开源项目
  • 剑指offer62:圆圈剩下的数字
  • 写一个快排
  • 给出一个数组nums, -个值k,找出数组中的两个下标i, j 使得nums[i] + numsj]= k 2种解法,排.数组+双指针o(n遍历或使用HashMap额外存储空间。
  • 泛型List<Integer>与List<String>这两个的getClass是否相对? (泛型擦除, 中间还有一个小插曲,面试官问我<? extends String> 有什么作用?我说: String不是不可继承的嘛,被fina|修 饰的。相视而笑)
  • 说说你知道的设计模式,说说项目里用到的设计模式,说说策略模式,设计一个下棋的场景问如何结合设计模式使用,设计模式什么时候继承,什么时候委托?
  • 说说MySQL Innodb索弓|底层实现,说说join, 说说GroupBy
  • 说说抽象类与接口区别?说说从设计模式层面的理解,为什么要有这么2个东西?
  • 说说操作系统内存模型不连续空间分配,说说分段,分页,虛拟内存,页淘汰算法...11.说说Redis
  • 底层实现,说说他和MySQL的区别
  • 说说volatile,说说线程同步,说说JVM线程模型
  • 说说动态**,说说你知道的AOP,项目中是怎样使用AOP的?
  • 有没有使用过责任链模式?如果..个场景 ,如何选择使用设计模式
  • 你还有什么问题?

字节三面(面了一个小时,只记得一部分了,不分先后)

  • 自我介绍
  • 项目用户量3w+,怎么做到的?如何协调团队?
  • 说说项目中如何使用的Redis,如果有10w请求插入Redis,如何优化?
  • 说说你理解的线程池
  • 说说操作系统组成
  • 手撕一个阻塞队列,生产者生产0~ 100的随机数,消费者消费后将其存储到一个list, 需要保持list中元素保持递增。(信号量+线程安全)
  • 说说hashmap的resize死循环
  • 说说hashtable和hahsmap区别,说说copyOnwriteArrayL ist以及他们分别采用的并发修改当然(fast-fail,fast-safe)
  • 说说你的优缺点。
  • 说说你对字节的了解? .

字节hr面

  • 介绍下自己
  • 这个项目3w的用户量如何统计的?如何处理团队问题?
  • 为什么想来字节?
  • 什么时候来?
  • 口头offer

分享一下我的复习心得

互联网寒冬下只有不断学习才能进步,机会是留给有准备的人!!我深知这个道理,所以年前也没闲着,在家狠狠地复习了一下!

这次能够拿到头条的offer也是多亏了我这一个多月的复习,学到了不少的知识点,也劳心汇集了不少的资料文献,非常有帮助,如果您需要的话,可以关注公众号:JavaAC,免费领取

第一份复习资料:

java基础+Spring+多线程高并发+分布式+微服务,这些都是我总结的学习心得

第二份复习资料:

Spring +Spring Boot +Spring MVC 面试必刷题+解析 (spring全家桶指南了,面试必被问到的知识)

最后分享我的一份JAVA核心知识点整理(PDF)内容非常详细,足足30多个Java的知识库,也是我面试最大的帮手!!!

### 字节跳动剪映后端开发面试相关经验与技术栈 #### 一、技术栈概述 字节跳动作为一家领先的互联网科技公司,在其后端开发岗位的技术栈上涵盖了多种主流技术和框架。对于剪映这一具体产品线,后端开发者通常需要掌握以下关键技术领域: 1. **编程语言** - Java字节跳动内部广泛使用的编程语言之一,尤其在后端开发中占据重要地位[^1]。 - Python 和 Go 也常用于特定场景下的快速开发和服务构建。 2. **数据结构与算法** - 掌握基本的数据结构(数组、链表、树、图等)以及常见算法(排序、查找、动态规划等),这是任何后端开发职位的基础要求。 3. **分布式系统与微服务架构** - 微服务的设计理念和技术实现是现代大型应用的核心组成部分。Spring Cloud 生态中的组件如 SpringCloud Stream 被用来处理消息队列相关的任务,例如 Kafka 或 RabbitMQ 的集成[^3]。 4. **数据库管理** - 关系型数据库 MySQL 及 NoSQL 数据库 Redis 的高效使用能力至关重要。熟悉索引优化、事务机制及分库分表策略也是加分项。 5. **缓存机制** - 使用 Redis 进行高效的内存级读写操作,能够显著提高系统的响应速度和吞吐量[^2]。 6. **并发控制与性能调优** - 多线程模型的理解及其实际应用场景;锁的合理运用以保障资源访问的安全性和效率。 7. **日志监控与告警** - ELK (Elasticsearch, Logstash, Kibana) 堆栈或其他类似的解决方案被应用于收集并分析运行时产生的海量日志信息,以便及时发现潜在问题所在。 8. **容器编排与CI/CD流程** - Docker 容器化部署配合 Kubernetes 实现自动化运维目标;Jenkins/GitLab CI 等工具支持持续集成与交付过程。 --- #### 二、典型面试题目解析 以下是基于公开资料整理的部分可能涉及的面试题及相关解答方向: 1. **一面:基础知识考察** - 如何判断一个字符串是否为回文串? 解法可以通过双指针方法来完成比较首尾字符直至中间位置为止的操作。 2. **二面:项目经历探讨** - 描述一次你在工作中解决过的复杂问题的经历?重点在于展示逻辑思维能力和解决问题的能力。 3. **三面:设计模式讨论** - 单例模式有哪些优点缺点? 在什么情况下应该考虑采用单例模式? 讨论到单例模式可以节省内存空间因为只存在唯一实例;但是也可能带来多线程同步等问题需要注意防范. 4. **四面:综合评估环节** - 如果让你重新设计现有某模块的功能你会怎么做? 此类开放性较强的问题旨在测试应聘者的创新意识和大局观. --- ```java // 示例代码片段: 判断回文串 public boolean isPalindrome(String s){ int i=0,j=s.length()-1; while(i<j){ if(s.charAt(i)!=s.charAt(j))return false; ++i;--j; } return true; } ``` --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值