字节跳动 Java 开放岗面经:14 天快速面试,已拿 offer,Java 全套百度云
面试流程
一面二面电话面–>三面四面视频面–>主管电话面–>hr 电话面,整个流程下来就两个礼拜。
面试问题
Java 基础
定义 Integer x=20 Integer y=200 在内存里是个什么过程?
hashMap 与 concurrentHashMap 原理和区别?hashMap 什么情况下会出现循环链?
concurrentHashMap 写的时候用什么锁?RenteenLock 底层是怎么保证线程安全的?
描述下 JVM 内存模型。每个区的作用是什么?堆内存的工作原理,为什么需要两个幸存区?只有一个行不行?老生代是用什么垃圾回收算法?
描述下多线程原理。怎么开启一个线程?start 和 run 方法有什么区别?
怎么创建一个线程池,传入的参数分别什么含义?线程池是怎么实现维持核心线程数的?怎么实现一个自定义的拒绝策略?
反射能获取到父类的私有方法吗?怎么防止反射破坏单例模式
volite 关键字的原理?它能保证原子性吗?AtomicInteger 底层怎么实现的?
threadLocal 关键字有用过吗?如果没有重写 initialValue 方法就直接 get 会怎样?
Socket 编程 nio(这一块我不太熟就说没了解过,面试官就没细问了)
开源框架
你用过哪些开源框架?最熟悉的是哪个?(这里我说了 spring,所以后边的问题都是围绕 spring 的)
描述下 spring 的 ioc 和 aop。
你常用哪一种注入方式?BeanFactory 和 ApplicationContext 有什么区别?你们项目里用的哪个?
说一下 spring bean 的生命周期。
AOP 实现原理是什么?两种动态代理实现原理?JDK 动态代理为什么要实现接口?
spring task 是怎么实现的?
spring 事务你是怎么用的?加了 @Transcational 注解 spring 都做了哪些工作?怎么知道事务执行成功了?
事务隔离级别?mysql 默认级别是什么?事务传播属性?spring 默认是什么?嵌套事务子事务什么时候 commit?
spring 和 springMVC 是什么关系?有没有用过 JdbcTemplate?
springMVC 中对整个请求的处理流程是怎样的?返回 json 的话是用哪个 view?
数据库
mysql 索引是怎么实现的?b+树有哪些特点?真实的数据存在哪里?
哪些情况下建索引?解释下最左匹配原则?
现在一个表有三列 a b c,组合索引(a,b,c)查询的时候 where a like ? and b=? and c=?能用到这个组合索引吗?为什么?
explain 执行计划看过没有?其中 type 字段都有哪些值?分别代表什么?
你有哪些 sql 调优经验?
Redis
redis 有哪几种数据结构?给你一个 key 怎么知道是用的哪种结构?
怎么查看所有的 key?redis 怎么切换库?怎么清数据?
描述下 redis 淘汰策略?如果没有数据可以淘汰或者没有配置淘汰策略读请求可以正常执
行吗?
你们项目里 redis 是单节点的吗?如果多节点怎么同步?
项目里用 redis 存哪些数据?为什么用 redis?和 jetty 本地缓存有什么区别?
网络
HTTP 1.1 版本增加了哪些内容?有哪几种请求方式?
评论