1. JVM

  1. JVM内存模型 G1和CMS垃圾回收器
  2. JVM的堆是如何分区的
  3. GC垃圾回收了解多少?新生代和老年代的区别是怎么样?
  4. 垃圾回收算法
  5. JVM为啥要有垃圾回收器
  6. 如何定位垃圾,那些是ROOT节点
  7. Java程序占用cpu100%如何排查解决
  8. JVM组成部分
  9. 虚拟机栈和本地方法栈区别(线程私有,每个线程都有一个)
  10. 可以用堆代替栈嘛(区别)

2. JAVA 基础

  1. Synchronized 1.8后做了那些优化
  2. volatile 关键字原理
  3. Java1.8了解哪些新特性?重点讲讲HashMap和CurrentHashMap
  4. Java类加载器有哪些种类,每种都用来加载什么
  5. 双亲委派,String 类是由那个类加载器加载的
  6. 如何中断线程,await和sleep区别
  7. Java线程池的参数有哪些
  8. 如果让你自己实现一个线程池,你会怎么实现
  9. 线程池运作过程是怎样的,这里面的队列有哪些,无界对列当任务很多的时候或发生什么?线程池默认的队列是什么
  10. 介绍下动态代理
  11. 微服务的优缺点
  12. 轻量级锁
  13. 可重入锁reentrantlock
  14. hashcode与equal
  15. juc中的countdownlatch,其概念,使用场景。
  16. java中如何查看线程状态,你知道那些java自带的命令。
  17. 有哪些编码格式(GBK,UTF-8,ISO-),有没有想过为什么会有这么多的编码格式。
  18. 了解哪些加密、解密算法?
  19. 乐观锁和悲观锁,以及CAS是什么,怎么体现在HashMap中?
  20. Java如何实现线程安全(synchronized,ReentrantLock,AtomicInteger,ThreadLocal,CAS)
  21. CAS如何解决ABA问题(版本号)
  22. AtomicInteger的原理(UnSafe类,底层是一句CPU指令,避免了并发问题)
  23. 可重入锁是什么,非可重入锁又是什么
  24. 二叉树的概念?红黑树又是什么,红黑树和其他平衡树的区别在哪
  25. 间隙锁是什么,具体什么时候会加锁
  26. SQLite如何加锁
  27. Java里的锁,有哪几种(synchronized和Reentrantlock)
  28. 当某个线程获取ReentrantLock失败时,是否会从内核态切换回用户态?ReentrantLock如何存储阻塞的线程的?(AQS,不断轮询前一个结点是否状态发生了变化)所以什么是自旋锁?
  29. 常用的 I/O 模型
  30. Java 中的多线程和操作系统中的多线程有什么区别
  31. 比较熟悉的 linux 命令有哪些
  32. 线程之间如何保证公共变量的一致性(锁的机制)
  33. 使用的JDK 版本;1.6、1.7、1.8 都有什么区别
  34. Java 内存模型,线程属于哪块区域
  35. 乐观锁和悲观锁
  36. lock 和 synchronized 区别
  37. 红黑树特性;和平衡搜索二叉树的区别;时间复杂度
  38. Java集合类有哪些
  39. ArrayList是线程安全的吗?如果想让ArrayList线程安全怎么做?
  40. 如何防止sql注入,mybatis里#和$的区别
  41. == 和 equals 区别
  42. Lambda
  43. LUA脚本有了解吗
  44. Linux断开SSH连接(窗口),如何让进程继续执行
  45. java里面hashcode的实现原理是什么,知道有哪些计算hash的算法
  46. 哈希地址冲突有哪些解决方式
  47. String 创建对象;intern() 方法

3. Spring

  1. spring生命周期,几种scope区别
  2. SpringCloud 组件介绍,及微服务之间是如何调用的
  3. Spring对象的SCOP 知道吗
  4. Spring中常用的设计模式举4例子
  5. Spring,AOP是什么,IOC是什么
  6. Spring的事务了解吗?
  7. 事务回滚怎么实现的呢?Hibernate,MySQL的都可以讲讲
  8. springcloud,注册中心原理,配置中心原理,dubbo服务发现,熔断限流。

4. 数据库

  1. 数据库 左连接、右连接、内连接、外连接区别
  2. 分库分表的话查一条数据怎么查
  3. SQL题(有一张考试分数记录表exam,包含字段(id,student,subject,score;)选出每个student的最高score记录,需要包含所有字段)
  4. 数据库的索引大多用的是B+树,为什么很少用B树
  5. 事务的ACID
  6. 介绍下Mysql的隔离级别,可重复读回出现什么问题(幻读)什么是幻读,怎么避免幻读
  7. 如何判断是否命中索引?如何优化索引?
  8. 索引:索引的分类,聚簇索引的概念,如何创建联合索引,有什么原则(最左前缀匹配原则),聚簇索引和非聚簇索引;怎么分配;为什么这样分配;
  9. 死锁的四个必要条件
  10. 如何避免死锁?
  11. 如何检测死锁?
  12. 数据库中是否会出现死锁?数据库中的死锁避免是否可用刚才说的方法来避免?
  13. 如果进程一次锁住数据库中的多条记录来避免死锁,会带来什么问题?你觉得应该怎样解决这个问题?
  14. 如果数据库中的确发生了死锁,应该怎么解决?
  15. 说一下数据库中左连接是怎么做的?
  16. 如何优化连接操作?
  17. 通用的数据库有哪些,mysql 存储引擎有哪些,innodb 底层存储结构是什么
  18. 有做过数据库优化吗
  19. varchar(35)的含义;中文在varchar中占几个字符;编码有哪些
  20. 数据库设计相关:分库分表的场景
  21. 讲一讲用到垂直分表的数据库的数据模型?
  22. mysql缓冲池有哪些东西
  23. 项目有没有mysql主备,知不知道mysql半同步
  24. mysql 事务并发的问题解决方法

5. 计算机网络

  1. OSI七层协议和TCP/IP五层协议有什么区别?TCP/UDP在哪一层?对TCP了解多少?
  2. Http和Https的区别?
  3. TCP三次握手、四次挥手的具体过程,以及TCP有哪些保护机制,具体是怎么样的?
  4. TCP和UDP的区别
  5. 计算机网络的七层模型
  6. TCP 保证可靠传输的机制
  7. 说一下OSI 模型,TCP/IP 模型说一下每一层的协议
  8. 在浏览器输入一个网址会发生什么
  9. session 和 cookie 是什么,有什么区别
  10. http常用状态码 502?
  11. 网络拥塞现象排查,为啥网络传递越来越快(慢开始算法)
  12. raft原理,一致性hash算法
  13. DNS 的过程,DNS 有什么安全问题?DNS 底层是什么(UDP,IPV4…)?DNS 会减缓访问速度吗?怎么解决?
  14. ip 报文是怎么发到目的地的?路由寻址。 怎么知道ip 对应哪个主机(arp)?
  15. Connection=keep-alive干嘛的
  16. 为啥用Websocket做实时通信连接, JSONP了解吗
  17. 长轮询机制不能做通信吗
  18. https 建立连接的过程
  19. http 状态码
  20. 重定向和转发区别
  21. Http cookie客户端能修改吗,服务端能修改吗,做什么的
  22. Http连接Time wait是啥意思
  23. TCP握手,timewait作用,TCP握手的时候要交换什么数据,拥塞控制控制的是什么
  24. DNS用的什么通信协议(DNS 是基于传输层的什么协议的)
  25. TCP 怎么保证到达的数据是有序的

6. 操作系统

  1. 线程和进程的区别?怎么创建线程?有哪些状态?有什么区别?
  2. 线程有哪些状态?阻塞状态又分为哪些,有什么区别?
  3. 线程进程,怎么进行上下文切换的,进程切换的过程?中断?谁去执行中断呢?
  4. 讲一讲内存分页,怎么进行内存分页
  5. 文件系统有没有了解
  6. 僵尸进程,怎么解决

7. Redis

  1. 删除Redis数据的时候没有删除成功怎么办
  2. Redis的两种持久化模式(RDB+AOF)
  3. Redis的数据结构有哪些?
  4. 为什么Redis那么快?
  5. RDB具体是如何实现的,RDB生成快照的时候,Redis会阻塞掉吗?(使用BgSave,fork一个子进程去并行生成快照,不会阻塞)
  6. 既然生成快照的中途依然可以执行Redis,那么从节点获取到快照是不完整的,如何同步?
  7. redis的备份机制
  8. redis分布式锁有啥问题
  9. Redis分布式锁先SETNX后,未来得及设置过期时间宕机了怎么办
  10. Redis内存不足时怎么样
  11. Redis如何查看大KEY
  12. Redis如果有大量Key同一时间失效怎么办
  13. Redis Pipeline
  14. epoll实现原理,为什么epoll比select快

8. Kafka

  1. Kafka顺序消费如何保证
  2. Kafka中Partion和Consumer对应关系

9. 分布式

  1. Seata的分布式事务介绍
  2. 如何设计一个高可靠的分布式锁

10. 设计模式

  1. 设计模式:写一写单例模式-懒汉模式,饿汉模式,线程安全型,双重校验锁型。为什么要使用双重校验锁的单例模式?
  2. 设计模式,说一下策略模式和装饰器模式。

11. Dubbo

  1. dubbo负载均衡,根据场景你选用哪种,为什么

12. Zookeeper

  1. 你谈谈你对zk的理解

13. 设计题

  1. 设计题:短链接服务设计。那新浪微博链接举例,长短链接要互相转换。有的短链接转长链接可能QPS会到十几万。

更多推荐

字节跳动社招Java常见面试题