编程实践系列: 字节跳动面试题_面试

字节跳动面试题

面试3轮技术面+1轮HR

整体分三大块:

项目经验

计算机基础

编程题(每轮一题)

项目经验

架构+业务

做了什么核心设计优化

解决了什么难题

体现思考 业务理解 架构设计能力

项目需求设计demo:

如何设计一个微信点赞系统?

秒杀系统?

大促领券场景设计?

计算机基础

java:

jvm内存模型 性能调优

concurrenthashmap线程安全?怎么做?

hashmap的实现,复杂度,装载因子多少,为什么。

aqs

volatile

线程池

垃圾回收算法

数据库SQL优化

分表与分库

volatile 关键字

java lock相关

逃逸分析用来做什么的

ThreadLocal介绍

gc的过程和对用户进程影响

spring框架原理

redis

redis 底层数据结构

zset使用数据结构

数据持久化方式

rdb的触发方式

redis实现原子操作

rdb过程描述

k1:1 k2:2

rdb保存k1之后做了如下修改,最终写入什么值,为什么?

删除数据之后内存怎么回收,redis占用的内存类型

缓存

限流熔断:限流算法,令牌桶, 应对流量突发场景。

配置中心

服务熔断降级

缓存穿透和缓存雪崩

缓存和数据库一致性

雪崩 击穿 本地cache

redis热点数据解决办法

redis网络层的实现

Redis 高并发、高可用

mq

手写一个消息队列,架构设计思路

为什么用mq

观察者设计模式

ElasticSearch:

是实时搜索引擎吗 refresh_interval长短会有什么影响

分页怎么做

分词怎么做,相关性用的什么

分片多少对于es性能影响?

mysql: 

事务隔离级别,默认事务隔离级别回答对

幻读如何产生,如何解决幻读使用串行化解决幻读?间隙锁

mysql日志有哪些,binlog的格式

覆盖索引

操作系统

poll select epoll

mmap

nio

zero copy

page fault

中断

进程 线程 协程

编程题(双指针,递归,队列)

  • 最长回文子串
  • 非重复字符串全排列组合,示例ABCDE。
  • 2亿url去重(hash,分桶,布隆过滤器)
  • 两个有序数组合并
  • 两个有序链表合并
  • 前序中序二叉树还原
  • 层序遍历二叉树
  • dphard

相关资料

面试官:本次面试将持续30~45分钟(实际约45分钟)

1.自我介绍(学校,专业,姓名,应聘职位,专业知识,项目简介)

2.tcp/udp的区别(八股文)

3.tcp的拥塞控制(八股文)

4.进程与线程(八股文)

5.常见的排序算法及时间复杂度(非典型八股文,刚结束的一学期上过算法课,凭借记忆讲述)

6.算法题:

a. 合并三个有序数组

b. 最长非重复子串:双指针+哈希表

Java相关

1. HashMap 和HashTable 以及CurrentHashMap 的区别。

2. synchronized 和volatile 、ReentrantLock 、CAS 的区别。

3. JVM 类加载机制、垃圾回收算法对比、Java 虚拟机结构等。

4. Java 的四大引用

5. Java 的泛型,<? super T> 和 <? extends T> 的区别。

6. Java 线程有哪些状态,有哪些锁,各种锁的区别。

7. final 、finally、finalize 区别。

8. 接口和抽象类的区别。

9. sleep 、wait、yield 的区别,wait 的线程如何唤醒它?

10. java 中==和 equals 和 hashCode 的区别

11.String、StringBuffer、StringBuilder 区别

12.接口的意义

13.进程和线程的区别

14.讲一下常见编码方式?

15序列化 Serializable 和 Parcelable 的区别

16.string 转换成 integer 的方式及原理

17静态代理和动态代理的区别,什么场景使用?

18. 说说你对 Java 反射的理解

19. 说说你对 Java 注解的理解

20. 说一下泛型原理,并举例说明

计算机网络部分

1. TCP 与 UDP 的区别。

2. 三次握手、四次挥手。为啥是三次不是两次?

3. HTTPS 和 HTTP 的区别。HTTP 2.0,3.0?

4. 浏览器输入一个 URL,按下回车网络传输的流程?

5. TCP 建立连接后,发包频率是怎样的?

5. OKHttp

6.如何验证证书的合法性?

7.https中哪里用了对称加密,哪里用了非对称加密,对加密法(如RSA)等是否有了解?

8.client如何确定自己发送的消息被server收到?

9.谈谈你对WebSocket的理解

10.WebSocket与Socket的区别

11.谈谈你对安卓签名的理解

12.请解释安卓为啥要加签名机制?