编程实践系列: 字节跳动面试题
Posted 东海陈光剑
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了编程实践系列: 字节跳动面试题相关的知识,希望对你有一定的参考价值。
字节跳动面试题
面试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日志有哪些,binlog的格式
覆盖索引
操作系统
poll select epoll
mmap
nio
zero copy
page fault
中断
进程 线程 协程
编程题(双指针,递归,队列)
最长回文子串
非重复字符串全排列组合,示例ABCDE。
2亿url去重(hash,分桶,布隆过滤器)
两个有序数组合并
两个有序链表合并
前序中序二叉树还原
层序遍历二叉树
dp(hard)
相关资料
面试官:本次面试将持续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.请解释安卓为啥要加签名机制?
以上是关于编程实践系列: 字节跳动面试题的主要内容,如果未能解决你的问题,请参考以下文章