非科班出身,玩命复习两月,字节跳动提前批Java后端,意向已拿

前言

本人211非科班,之前在字节和腾讯实习过,这次其实没抱着什么特别大的希望投递,没想到字节可以再给我一次机会,还是挺开心的。

本来以为有个机会就不错啦!没想到能成功上岸,在这里要特别感谢帮我内推的同学,中间投递比较曲折,是他帮了我很多,非常负责任全程跟进内推

话不多说,先来看看这次的面试题

  1. 项目相关

  2. Spring介绍一下

  3. SpringMVC工作流程

  4. 常见注解说一下

  5. Java用过什么集合框架

  6. HashMap源码说一下(细说,从初始化到put、get、扩容、红黑树、1.8做了哪些优化)

  7. ConcurrentHashMap源码看过吗?讲一下吧

  8. 如何保证线程安全,1.7呢?

  9. JUC包下还知道什么类,讲一下?

10. synchronized实现原理?和Lock的区别?

11. volatile呢?怎么实现的?

  1. 类加载、双亲委派、自己实现的话怎么做

  2. GC讲一下

  3. 说一下你知道的垃圾回收器

  4. Class类文件怎么回收(不是对象,太菜了,想了半天不知道咋回收,没答上)

  5. 浏览器输入url发生了什么?(细说,包括每一层涉及到的协议)

  6. 刚刚提到TCP三次握手,详细说一下吧

  7. 四次挥手最后等待为什么2MSL

  8. RIP协议怎么解决的环路问题

  9. 数据库范式讲一下(没答好)

  10. 引擎讲一下

  11. 隔离级别

  12. 有哪些索引,为什么用B+树

  13. 项目哪里用到了redis,说一下常用数据类型的使用场景

  14. 三大问题解决

  15. 刚刚提到的分布式锁怎么实现的

  16. Unicode和UTF-8和ASCLL之间的关系?(不知道)

  17. Spring里面的设计模式

  18. 还知道哪些

  19. 写个单例吧

  20. 时间差不多了,写个简单的题目吧(单词翻转)

最后虚心请教了面试官两个问题,道谢之后就退出房间,希望有个二面!

image

字节二面(50分钟现场)

字节效率也太快了吧,第二天下午就通知我二面的时间了,是个斯斯文文的小哥哥,超级有礼貌,好感+10086

1. Nginx负载均衡的时候服务器挂了怎么处理

2. SQL题,找出一小时内的记录数,给出很多不同时间戳的记录

3. inner join、right join、 left join的区别

4. 计算机基础快问快答,每个问题想要扩展都被面试官中止,大概是在挖广度而已(CDN、消息队列、HashMap、Jvm等等)

5. 算法:滑动窗口寻找满足的字符串

字节三面(50分钟)

主要是针对简历的项目每个点深挖

HR面

从校园经历到工作几乎能问的都问了

这几场面试下来,字节提前批广告后端Java。体验真的很不错,不出意外过几天就准备入职啦

本人菜鸡一枚,自己也是很清楚这一点,加上非科班出身,本来就落后别人一截来了,不付出一点努力可能就是直接被淘汰掉了,

在准备面试前可以说是玩命复习了两个月,特别是面试前一个星期,疯狂刷题,为了方便复习和查漏补缺,我把所有面试题整理成基础知识,中级开发,高级架构三个部分,循序渐进,一步一个脚印,我想应该有很多跟我情况差不多的程序员(媛)们,所以小编打算把自己复习时整理的笔记和面试题跟大家分享一下,算是有一个借鉴吧,

Java基础面试题(JVM+字符串+对象+线程+异常+方法)

题目加上答案真的太多太多啦,这里只能以截图的形式展示部分,需要原件用以学习的朋友可以点赞关注一下,点击阅读原件

image

image

image

image

中级开发(底层+Spring相关+Redis+分布式+设计模式+MySQL+高并发+锁+线程)

image

image

image

image

image

Java高级架构

消息队列

1.为什么使用消息队列?消息队列有什么优点和缺点?Kafka、ActiveMQ、RabbitMQ、RocketMQ 都有什么优点和缺点?

2.如何保证消息队列的高可用?

3.如何保证消息不被重复消费?或者说,如何保证消息消费的幂等性?

4.如何保证消息的可靠性传输?或者说,如何处理消息丢失的问题?

5.如何保证消息的顺序性?

6.如何解决消息队列的延时以及过期失效问题?消息队列满了以后该怎么处理?有几百万消息持续积压几小时,说说怎么解决?

Redis缓存

1.项目中缓存是如何使用的?为什么要用缓存?缓存使用不当

2.redis 和 memcached 有什么区别?redis 的线程模型是什么?为什么 redis 单线程却能支撑高并发?

3.redis 都有哪些数据类型?分别在哪些场景下使用比较合适?

4.redis 的过期策略都有哪些?内存淘汰机制都有哪些?手写一下 LRU 代码实现?

5.如何保证 redis 的高并发和高可用?redis 的主从复制原理能介绍一下么?redis 的哨

6.redis 的持久化有哪几种方式?不同的持久化机制都有什么优缺点?持久化机制具体底层是如何实现的的哨兵原理能介绍一下么?

7.redis 集群模式的工作原理能说一下么?在集群模式下,redis 的 key 是如何寻址的?分布式寻址都有哪些算法?了解一致性 hash 算法吗?

8.了解什么是 redis 的雪崩、穿透和击穿?redis 崩溃之后会怎么样?系统该如何应对这种情况?如何处理 redis 的穿透?

9.如何保证缓存与数据库的双写一致性?

10.redis 的并发竞争问题是什么?如何解决这个问题?了解redis 事务的 CAS 方案吗?

11.生产环境中的 redis 是怎么部署的?

分库分表

1.为什么要分库分表(设计高并发系统的时候,数据库层面该如何设计)?用过哪些分库分表中间件?不同的分库分表中间件都有什么优点和缺点?你们具体是如何对数据库如何进行垂直拆分或水平拆分的?

2.现在有一个未分库分表的系统,未来要分库分表,如何设计才可以让系统从未分库分表动态切换到分库分表上?

3.如何设计可以动态扩容缩容的分库分表方案?

4.分库分表之后,id 主键如何处理?

分布式系统

1.说一下的 dubbo 的工作原理?注册中心挂了可以继续通信吗?说说一次 rpc 请求的流程?

2.dubbo 支持哪些通信协议?支持哪些序列化协议?说一下Hessian 的数据结构?PB 知道吗?为什么 PB 的效率是最高的?

3.dubbo 负载均衡策略和集群容错策略都有哪些?动态代理策略呢?

4.dubbo 的 spi 思想是什么?

5.如何基于 dubbo 进行服务治理、服务降级、失败重试以及超时重试?

6.分布式服务接口的幂等性如何设计(比如不能重复扣款)?

7.分布式服务接口请求的顺序性如何保证?

8.如何自己设计一个类似 Dubbo 的 RPC 框架?

9.zookeeper 都有哪些使用场景?

10.一般实现分布式锁都有哪些方式?使用 redis 如何设计分布式锁?使用 zk 来设计分布式锁可以吗?这两种分布式锁的实现方式哪种效率比较高?

11.分布式事务了解吗?你们是如何解决分布式事务问题的?

12.集群部署时的分布式 session 如何实现?

高可用架构

Hystrix 介绍

基于 Hystrix 线程池技术实现资源隔离

基于 Hystrix 信号量机制实现资源隔离

Hystrix 隔离策略细粒度控制

深入 Hystrix 执行时内部原理

基于 request cache 请求缓存技术优化批量商品数据查询接口

基于本地缓存的 fallback 降级机制

深入 Hystrix 断路器执行原理

深入 Hystrix 线程池隔离与接口限流

基于 timeout 机制为服务接口调用超时提供安全保护

SpringCloud微服务架构

什么是 Spring Cloud?

使用 Spring Cloud 有什么优势?

服务注册和发现是什么意思?Spring Cloud 如何实现?

负载平衡的意义什么?

什么是 Hystrix?它如何实现容错?

什么是 Hystrix 断路器?我们需要它吗?

什么是 Netflix Feign?它的优点是什么?

什么是 Spring Cloud Bus?我们需要它吗?

除了答案以外,还有面试官心理分析,在面试过程确实有碰到原题!!

image

image

需要小编整理的这份包含基础面试——中级开发——到高级架构面试题集的程序员(媛)们,记得点赞关注一下,点击阅读原件

希望我分享的不只是笔记还有好运,最后祝大家offer拿到手软

猜你喜欢

转载自blog.csdn.net/weixin_47082274/article/details/107388867