10年老兵不残,从Java后端熬到HR总监就剩这份面试题笔录了,已助朋友拿到7个Offer

本文是BATJ 2020年面试题集锦( 文章尾部含答案 ),是作者自身结合多年的工作、面试经验总结提炼而成的面试真题。通过这些面试题,大家可以间接地了解技术大牛们出题思路与考察要点。 

想要入职大厂可谓是千军万马过独木桥。要通过层层考验,刷题肯定是必不可少的。

为帮助开发者们提升面试技能、有机会入职BATJ等大厂公司,特别制作了这个专辑——这一次整体放出。

大致内容包括了: Java 集合、JVM、多线程、并发编程、设计模式、Spring全家桶、Java、MyBatis、ZooKeeper、Dubbo、Elasticsearch、Memcached、MongoDB、Redis、MySQL、RabbitMQ、Kafka、Linux、Netty、Tomcat等大厂面试题等、等技术栈! 

需要获取以下这些面试题答案以及学习资料得话麻烦一键三连之后微信扫描下图作者助手的微信:( msb-shishi )添加即可免费获取到哦


JVM 面试题

一.Java 类加载过程?

二.描述一下 JVM 加载 Class 文件的原理机制?

三 Java 内存分配。

四.GC 是什么? 为什么要有 GC?

五. 简述 Java 垃圾回收机制。

六. 如何判断一个对象是否存活?(或者 GC 对象的判定方法)

七. 垃圾回收的优点和原理。并考虑 2 种回收机制。

八. 垃圾回收器的基本原理是什么?垃圾回收器可以马上回收内存吗? 有什么办法主动通知虚拟机进行垃圾回收?

九. Java 中会存在内存泄漏吗,请简单描述。

十. 深拷贝和浅拷贝。

十一. System.gc() 和 Runtime.gc() 会做什么事情?

十二. finalize() 方法什么时候被调用?析构函数 (finalization) 的 目的是什么?

十三. 如果对象的引用被置为 null,垃圾收集器是否会立即释放对象占 用的内存?

十四. 什么是分布式垃圾回收(DGC)?它是如何工作的?

十五. 串行(serial)收集器和吞吐量(throughput)收集器的区别 是什么?

十六. 在 Java 中,对象什么时候可以被垃圾回收?

十七. 简述 Java 内存分配与回收策率以及 Minor GC 和 Major GC。

十八. JVM 的永久代中会发生垃圾回收么?

十九. Java 中垃圾收集的方法有哪些?

二十. 什么是类加载器,类加载器有哪些?

二十一. 类加载器双亲委派模型机制?


多线程 / 高并发

1. stop() 和 suspend() 方法为何不推荐使用?

2. sleep() 和 wait() 有什么区别?

3. 同步和异步有何异同,在什么情况下分别使用他们?

4. 当一个线程进入一个对象的一个 synchronized 方法后,其它线程是否可进入此对象的其 它方法?

5. 简述 synchronized 和 java.util.concurrent.locks.Lock 的异同?

6. 概括的解释下线程的几种可用状态

7. 什么是 ThreadLocal?

8. run() 和 start() 区别。

9. 请说出你所知道的线程同步的方法。

10. 线程调度和线程控制。

11. 什么是线程饿死,什么是活锁?

12. 多线程中的忙循环是什么?

13. volatile 变量是什么?volatile 变量和 atomic 变量有什么不同?

14. volatile 类型变量提供什么保证?能使得一个非原子操作变成原子操作吗?


集合框架

1. ArrayList 和 Vector 的区别。

2. 说说 ArrayList,Vector, LinkedList 的存储性能和特性。

3. 快速失败 (fail-fast) 和安全失败 (fail-safe) 的区别是什么?

4. hashmap 的数据结构。

5. HashMap 的工作原理是什么?

6. Hashmap 什么时候进行扩容呢?

7. List、Map、Set 三个接口,存取元素时,各有什么特点?

8. Set 里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用 == 还是 equals()? 它们有何区别

9. 两个对象值相同 (x.equals(y) == true),但却可有不同的 hash code,这句话对不对?

10. heap 和 stack 有什么区别。

11. Java 集合类框架的基本接口有哪些?

12. HashSet 和 TreeSet 有什么区别?

13. HashSet 的底层实现是什么?

14. LinkedHashMap 的实现原理?

15. 为什么集合类没有实现 Cloneable 和 Serializable 接口?

16. 什么是迭代器 (Iterator)?

17. Iterator 和 ListIterator 的区别是什么?

18. 数组 (Array) 和列表 (ArrayList) 有什么区别?什么时候应该使用 Array 而不是 ArrayList?

19. Java 集合类框架的最佳实践有哪些?

20. Set 里的元素是不能重复的,那么用什么方法来区分重复与否呢?是用 == 还是 equals()?它们有何区别?

21. Comparable 和 Comparator 接口是干什么的?列出它们的区别。

22. Collection 和 Collections 的区别。


数据库

1. 请简洁描述 MySQL 中 InnoDB 支持的四种事务隔离级别名称,以及逐级之间的区别?

2. 在 MySQL 中 ENUM 的用法是什么?

3. CHAR 和 VARCHAR 的区别?

4. 列的字符串类型可以是什么?

5. MySQL 中使用什么存储引擎?

6. TIMESTAMP 在 UPDATE CURRENT_TIMESTAMP 数据类型上做什么?

7. 主键和候选键有什么区别?

8. MySQL 数据库服务器性能分析的方法命令有哪些?

9. LIKE 和 REGEXP 操作有什么区别?

10. BLOB 和 TEXT 有什么区别?

11. 数据库的三范式?

12. MySQL 表中允许有多少个 TRIGGERS?

13. 什么是通用 SQL 函数?

14. MySQL 中有哪几种锁?

15. MySQL 数据优化。

16. MySQL 的关键字。

17. 存储引擎

18. 数据库备份。

19. truncate delete drop 的区别。

20. Redis 是什么?两句话做一下概括。

21. Redis(管道,哈希)。

22. Redis 实现原理或机制。

23. Redis 有两种类型分区。

24. 什么是 MongoDB。

25. MongoDB 特点。

26. MongoDB 的功能。

27. MongoDB 的适用场景。

28. Redis、memcache、MongoDB 对比。

29. Redis 有什么用?只有了解了它有哪些特性,我们在用的时候才能扬长避短,为我们所 用。


Dubbo

1、Dubbo 支持哪些协议,每种协议的应用场景,优缺点?

2、Dubbo 超时时间怎样设置?

3、Dubbo 有些哪些注册中心?

4、Dubbo 集群的负载均衡有哪些策略  

5、Dubbo 是什么?

6、Dubbo 的主要应用场景?

7、Dubbo 的核心功能?

8、Dubbo 的核心组件?

9、Dubbo 服务注册与发现的流程?

10、Dubbo 的架构设计?

11、Dubbo 的服务调用流程?

12、Dubbo 支持哪些协议,每种协议的应用场景,优缺点?

13、dubbo 推荐用什么协议?

14、Dubbo 有些哪些注册中心?

15、Dubbo 默认采用注册中心?

16、Dubbo为什么需要服务治理?

17、Dubbo 的注册中心集群挂掉,发布者和订阅者之间还能通信么?

18、Dubbo 与 Spring 的关系?

19、Dubbo 使用的是什么通信框架?

20、Dubbo 集群提供了哪些负载均衡策略?

21、Dubbo 的集群容错方案有哪些?

22、Dubbo 的默认集群容错方案?

23、Dubbo 支持哪些序列化方式?

24、Dubbo 超时时间怎样设置?

25、服务调用超时问题怎么解决?

26、Dubbo 在安全机制方面是如何解决?

27、Dubbo 和 Dubbox 之间的区别?

28、Dubbo 和 Spring Cloud 的关系?

29、Dubbo 和 Spring Cloud 的区别?


spring 基础篇

spring概 述

1. 什 么 是 spring?

2. 使 用 Spring 框 架 的 好 处 是 什 么 ?

3. Spring 由 哪 些 模 块 组 成?

4. 核 心 容 器 ( 应 用 上 下 文) 模 块 。

5. BeanFactory – BeanFactory 实 现 举 例 。

6. XMLBeanFactory

7. 解 释 AOP 模 块

8. 解 释 JDBC 抽 象 和 DAO 模 块 。

9. 解 释 对 象/关 系 映 射 集 成 模 块 。

10. 解 释 WEB 模 块 。

12. Spring 配 置 文 件

13. 什 么 是 Spring IOC 容 器 ?

14. IOC 的 优 点 是 什 么 ?

15. ApplicationContext 通 常 的 实 现 是 什 么?

16. Bean 工 厂 和 Application contexts 有 什 么 区 别 ?

17. 一 个 Spring 的 应 用 看 起 来 象 什 么 ?

18. 什 么 是 Spring 的 依 赖 注 入 ?

19. 有 哪 些 不 同 类 型 的 IOC( 依 赖 注 入 ) 方 式 ?

20. 哪 种 依 赖 注 入 方 式 你 建 议 使 用 , 构 造 器 注 入 , 还 是 Setter 方 法 注 入 ?

Spring Beans

21.什 么 是 Spring beans?

22. 一 个 Spring Bean 定 义 包 含 什 么 ?

23. 如 何 给 Spring 容 器 提 供 配 置 元 数 据?

24. 你 怎 样 定 义 类 的 作 用 域?

25. 解 释 Spring 支 持 的 几 种 bean 的 作 用 域 。

26. Spring 框 架 中 的 单 例 bean 是 线 程 安 全 的 吗?

27. 解 释 Spring 框 架 中 bean 的 生 命 周 期 。

28. 哪 些 是 重 要 的 bean 生 命 周 期 方 法 ? 你 能 重 载 它 们 吗 ?

29. 什 么 是 Spring 的 内 部 bean?

30. 在 Spring 中 如 何 注 入 一 个 java 集 合 ?

31. 什 么 是 bean 装 配?

32. 什 么 是 bean 的 自 动 装 配 ?

33. 解 释 不 同 方 式 的 自 动 装 配 。

34.自 动 装 配 有 哪 些 局 限 性 ?

35. 你 可 以 在 Spring 中 注 入 一 个 null 和 一 个 空 字 符 串 吗 ?

Spring 注 解

36. 什 么 是 基 于 Java 的 Spring 注 解 配 置? 给 一 些 注 解 的 例 子.

37. 什 么 是 基 于 注 解 的 容 器 配 置?

38. 怎 样 开 启 注 解 装 配 ?

39. @Required 注 解

40. @Autowired 注 解

41. @Qualifier 注 解

Spring 数 据 访 问

42.在 Spring 框 架 中 如 何 更 有 效 地 使 用 JDBC?

43. JdbcTemplate

44. Spring 对 DAO 的 支 持

45. 使 用 Spring 通 过 什 么 方 式 访 问 Hibernate?

46. Spring 支 持 的 ORM

47.如 何 通 过 HibernateDaoSupport 将 Spring 和 Hibernate 结 合 起 来 ?

48. Spring 支 持 的 事 务 管 理 类 型

49. Spring 框 架 的 事 务 管 理 有 哪 些 优 点 ?

50. 你 更 倾 向 用 那 种 事 务 管 理 类 型 ?

Spring 面 向 切 面 编 程 (AOP)

51. 解 释 AOP

52. Aspect 切 面

52. 在 Spring AOP 中 , 关 注 点 和 横 切 关 注 的 区 别 是 什 么 ?

54. 连 接 点

55. 通 知

56. 切 点

57. 什 么 是 引 入?

58. 什 么 是 目 标 对 象?

59. 什 么 是 代 理?

60. 有 几 种 不 同 类 型 的 自 动 代 理 ?

61. 什 么 是 织 入 。 什 么 是 织 入 应 用 的 不 同 点 ?

62. 解 释 基 于 XML Schema 方 式 的 切 面 实 现 。

63. 解 释 基 于 注 解 的 切 面 实 现

Spring 的 MVC

64. 什 么 是 Spring 的 MVC 框 架 ?

65. DispatcherServlet

66. WebApplicationContext

67. 什 么 是 Spring MVC 框 架 的 控 制 器 ?

68. @Controller 注 解

69. @RequestMapping 注 解

spring 高级篇 

1、什么是 Spring 框架?Spring 框架有哪些主要模块?

2、使用 Spring 框架能带来哪些好处?

3、什么是控制反转(IOC)?什么是依赖注入?

4、请解释下 Spring 框架中的 IoC?

5、BeanFactory 和 ApplicationContext 有什么区别?

6、Spring 有几种配置方式?

7、如何用基于 XML 配置的方式配置 Spring?

8、如何用基于 Java 配置的方式配置 Spring?

9、怎样用注解的方式配置 Spring?

10、请解释 Spring Bean 的生命周期?

11、Spring Bean 的作用域之间有什么区别?

12、什么是 Spring inner beans?

13、Spring 框架中的单例 Beans 是线程安全的么?

14、请举例说明如何在 Spring 中注入一个 Java Collection?

15、如何向 Spring Bean 中注入一个 Java.util.Properties?

16、请解释 Spring Bean 的自动装配?

17、请解释自动装配模式的区别?

18、如何开启基于注解的自动装配?

19、请举例解释@Required 注解?

20、请举例解释@Autowired 注解?

21、请举例说明@Qualifier 注解?

22、构造方法注入和设值注入有什么区别?

23、Spring 框架中有哪些不同类型的事件?

24、FileSystemResource 和 ClassPathResource 有何区别?

25、Spring 框架中都用到了哪些设计模式?

26、谈谈你对 spring IOC 和 DI 的理解,它们有什么区别?

27、BeanFactory 接口和 ApplicationContext 接口有什么区 别 ?

28、spring 配置 bean 实例化有哪些方式?

29、简单的说一下 spring 的生命周期?

30、请介绍一下 Spring 框架中 Bean 的生命周期和作用域

31、Bean 注入属性有哪几种方式?

32、什么是 AOP,AOP 的作用是什么?

33、Spring 的核心类有哪些,各有什么作用?

34、Spring 里面如何配置数据库驱动?

35、Spring 里面 applicationContext.xml 文件能不能改成其他 文件名?

36、Spring 里面如何定义 hibernate mapping?

37、Spring 如何处理线程并发问题?

38、为什么要有事物传播行为?

39、.介 绍 一 下 S p r i n g 的 事 物 管 理

40、解释一下 Spring AOP 里面的几个名词

41、通知有哪些类型?


redis

1、什么是 Redis?简述它的优缺点?

2、Redis 与 memcached 相比有哪些优势?

3、Redis 支持哪几种数据类型?

4、Redis 主要消耗什么物理资源?

5、Redis 有哪几种数据淘汰策略?

6、Redis 官方为什么不提供 Windows 版本?

7、一个字符串类型的值能存储最大容量是多少?

8、为什么 Redis 需要把所有数据放到内存中?

9、Redis 集群方案应该怎么做?都有哪些方案?

10、Redis 集群方案什么情况下会导致整个集群不可用?

11、MySQL 里有 2000w 数据,redis 中只存 20w 的数据,如何保证 redis 中的数据都是热点数据?

12、Redis 有哪些适合的场景?

13、Redis 支持的 Java 客户端都有哪些?官方推荐用哪个?

14、Redis 和 Redisson 有什么关系?

15、Jedis 与 Redisson 对比有什么优缺点?

16、说说 Redis 哈希槽的概念?

17、Redis 集群的主从复制模型是怎样的?

18、Redis 集群会有写操作丢失吗?为什么?

19、Redis 集群之间是如何复制的?

20、Redis 集群最大节点个数是多少?

21、Redis 集群如何选择数据库?

22、Redis 中的管道有什么用?

23、怎么理解 Redis 事务?

24、Redis 事务相关的命令有哪几个?

25、Redis key 的过期时间和永久有效分别怎么设置?

26、Redis 如何做内存优化?

27、Redis 回收进程如何工作的?

28.加锁机制

29.锁互斥机制

30.watch dog 自动延期机制

31.可重入加锁机制

32.释放锁机制

33.上述 Redis 分布式锁的缺点

34.使用过 Redis 分布式锁么,它是怎么实现的?

35.使用过 Redis 做异步队列么,你是怎么用的?有什么缺点?

36.什么是缓存穿透?如何避免?什么是缓存雪崩?何如避免?


多线程

Synchronized 相 关 问 题

1、Synchronized 用 过 吗 , 其 原 理 是 什 么 ?

2、你 刚 才 提 到 获 取 对 象 的 锁 , 这 个 “ 锁 ” 到 底 是 什 么 ? 如 何 确 定 对 象 的 锁 ?

3、什 么 是 可 重 入 性 , 为 什 么 说 Synchronized 是 可 重 入 锁 ?

4、JVM 对 Java 的 原 生 锁 做 了 哪 些 优 化 ?

5、为 什 么 说 Synchronized 是 非 公 平 锁 ?

6、什 么 是 锁 消 除 和 锁 粗 化 ?

7、为 什 么 说 Synchronized 是 一 个 悲 观 锁 ? 乐 观 锁 的 实 现 原 理 又 是 什 么 ? 什 么 是 CAS, 它 有 什 么 特 性 ?

8、乐 观 锁 一 定 就 是 好 的 吗 ?

可 重 入 锁 ReentrantLock 及 其 他 显 式 锁 相 关 问 题

1、跟 Synchronized 相 比 , 可 重 入 锁 ReentrantLock 其 实 现 原 理 有 什 么 不 同 ?

2、那 么 请 谈 谈 AQS 框 架 是 怎 么 回 事 儿 ?

3、请 尽 可 能 详 尽 地 对 比 下 Synchronized 和 ReentrantLock 的 异 同 。

4、ReentrantLock 是 如 何 实 现 可 重 入 性 的 ?

5、除 了 ReetrantLock, 你 还 接 触 过 JUC 中 的 哪 些 并 发 工 具 ?

6、请 谈 谈 ReadWriteLock 和 StampedLock。

7、如 何 让 Java 的 线 程 彼 此 同 步 ? 你 了 解 过 哪 些 同 步 器 ? 请 分 别 介 绍 下 。

8、CyclicBarrier 和 CountDownLatch 看 起 来 很 相 似 , 请 对 比 下 呢 ?

Java 线 程 池 相 关 问 题

1、Java 中 的 线 程 池 是 如 何 实 现 的 ?

2、创 建 线 程 池 的 几 个 核 心 构 造 参 数 ?

3、线 程 池 中 的 线 程 是 怎 么 创 建 的 ? 是 一 开 始 就 随 着 线 程 池 的 启 动 创 建 好 的 吗 ?

4、既 然 提 到 可 以 通 过 配 置 不 同 参 数 创 建 出 不 同 的 线 程 池 , 那 么 Java 中 默 认 实 现 好 的 线 程 池 又 有 哪 些 呢 ? 请 比 较 它 们 的 异 同 。

5、如 何 在 Java 线 程 池 中 提 交 线 程 ?

Java 内 存 模 型 相 关 问 题

1、什 么 是 Java 的 内 存 模 型 , Java 中 各 个 线 程 是 怎 么 彼 此 看 到 对 方 的 变 量 的 ?

2、请 谈 谈 volatile 有 什 么 特 点 , 为 什 么 它 能 保 证 变 量 对 所 有 线 程 的 可 见 性 ?

3、既 然 volatile 能 够 保 证 线 程 间 的 变 量 可 见 性 , 是 不 是 就 意 味 着 基 于 volatile 变 量 的 运 算 就 是 并 发 安 全 的 ?

4、请 对 比 下 volatile 对 比 Synchronized 的 异 同 。

5、请 谈 谈 ThreadLocal 是 怎 么 解 决 并 发 安 全 的 ?

6、很 多 人 都 说 要 慎 用 ThreadLocal, 谈 谈 你 的 理 解 , 使 用 ThreadLocal 需 要 注 意 些 什 么 ?


一线大厂面试题汇总

1. junit 用法,before,beforeClass,after, afterClass 的执行顺序

2. 分布式锁

3. nginx 的请求转发算法,如何配置根据权重转发

4. 用 hashmap 实现 redis 有什么问题(死锁,死循环,可用 ConcurrentH ashmap)

5. 线程的状态 5. 线程的阻塞的方式

6. sleep 和 wait 的区别

7. hashmap 的底层实现

8. 一万个人抢 100 个红包,如何实现(不用队列),如何保证 2 个人不能抢 到同一个红包,可用分布式锁

9. java 内存模型,垃圾回收机制,不可达算法

10. 两个 Integer 的引用对象传给一个 swap 方法在方法内部交换引用,返回 后,两个引用的值是否会发现变化

11. aop 的底层实现,动态代理是如何动态,假如有 100 个对象,如何动态 的为这 100 个对象代理

12. 是否用过 maven install。 maven test。git(make install 是安装本 地 jar 包)

13. tomcat 的各种配置,如何配置 docBase

14. spring 的 bean 配置的几种方式

15. web.xml 的配置 16. spring 的监听器。

17. zookeeper 的实现机制,有缓存,如何存储注册服务的

18. IO 会阻塞吗?readLine 是不是阻塞的

19. 用过 spring 的线程池还是 java 的线程池?

20. 字符串的格式化方法 (20,21 这两个问题问的太低级了)

21. 时间的格式化方法

22. 定时器用什么做的

23. 线程如何退出结束

24. java 有哪些锁?乐观锁 悲观锁 synchronized 可重入锁 读写锁,用过 r eentrantlock 吗?reentrantlock 与 synmchronized 的区别

25. ThreadLocal 的使用场景

26. java 的内存模型,垃圾回收机制

27. 为什么线程执行要调用 start 而不是直接 run(直接 run,跟普通方法没 什么区别,先调 start,run 才会作为一个线程方法运行)

28. qmq 消息的实现机制(qmq 是去哪儿网自己封装的消息队列)

29. 遍历 hashmap 的三种方式

30. jvm 的一些命令

31. memcache 和 redis 的区别

32. mysql 的行级锁加在哪个位置

33. ConcurrentHashmap 的锁是如何加的?是不是分段越多越好

34. myisam 和 innodb 的区别(innodb 是行级锁,myisam 是表级锁)

35. mysql 其他的性能优化方式

36. linux 系统日志在哪里看

37. 如何查看网络进程

38. 统计一个整数的二进制表示中 bit 为 1 的个数

39. jvm 内存模型,java 内存模型

40. 如何把 java 内存的数据全部 dump 出来

41. 如何手动触发全量回收垃圾,如何立即触发垃圾回收

42. hashmap 如果只有一个写其他全读会出什么问题

43. git rebase

44. mongodb 和 hbase 的区别

45. 如何解决并发问题

46. volatile 的用途

47. java 线程池(好像之前我的理解有问题)

48. mysql 的 binlog

49. 代理模式

50. mysql 是如何实现事务的

51. 读写分离何时强制要读主库,读哪个从库是通过什么方式决定的,从库的 同步 mysql 用的什么方式

52. mysql 的存储引擎

53. mysql 的默认隔离级别,其他隔离级别

54. 将一个链表反转(用三个指针,但是每次只发转一个)

55. spring Aop 的实现原理,具体说说

56. 何时会内存泄漏,内存泄漏会抛哪些异常

57. 是否用过 Autowire 注解

58. spring 的注入 bean 的方式

59. sql 语句各种条件的执行顺序,如 select, where, order by, grou p by

60. select xx from xx where xx and xx order by xx limit xx; 如 何优化这个(看 explain)

61. 四则元算写代码

62. 统计 100G 的 ip 文件中出现 ip 次数最多的 100 个 ip

63. zookeeper 的事物,结点,服务提供方挂了如何告知消费方

64. 5 台服务器如何选出 leader(选举算法)

65. 适配器和代理模式的区别

66. 读写锁

67. static 加锁

68. 事务隔离级别

69. 门面模式,类图(外观模式)

70. mybatis 如何映射表结构

71. 二叉树遍历

72. 主从复制

73. mysql 引擎区别

74. 静态内部类加载到了哪个区?方法区

75. class 文件编译后加载到了哪

76. web 的 http 请求如何整体响应时间变长导致处理的请求数变少,该如何 处理?用队列,当处理不了那么多 http 请求时将请求放到队列 中慢慢处理,web 如何实现队列

77. 线程安全的单例模式

78. 快速排序性能考虑

79. volatile 关键字用法

80. 求表的 size,或做数据统计可用什么存储引擎 

81. 读多写少可用什么引擎

82. 假如要统计多个表应该用什么引擎

83. concurrenhashmap 求 size 是如何加锁的,如果刚求完一段后这段发生 了变化该如何处理

84. 1000 个苹果放 10 个篮子,怎么放,能让我拿到所有可能的个数

85. 可重入的读写锁,可重入是如何实现的?

86. 是否用过 NIO

87. java 的 concurrent 包用过没

88. sting s=new string("abc")分别在堆栈上新建了哪些对象

89. java 虚拟机的区域分配,各区分别存什么

90. 分布式事务(JTA)

91. threadlocal 使用时注意的问题(ThreadLocal 和 Synchonized 都用于 解决多线程并发访问。但是 ThreadLocal 与 synchronized 有本质的区别。s ynchronized 是利用锁的机制,使变量或代码块在某一时该只能被一个线程访 问。而 ThreadLocal 为每一个线程都提供了变量的副本,使得每个线程在某 一时间访问到的并不是同一个对象,这样就隔离了多个线程对数据的数据共 享。而 Synchronized 却正好相反,它用于在多个线程间通信时能够获得数据 共享)

92. java 有哪些容器(集合,tomcat 也是一种容器)

93. 二分查找算法

94. myisam 的优点,和 innodb 的区别

95. redis 能存哪些类型

96. http 协议格式,get 和 post 的区别

97. 可重入锁中对应的 wait 和 notify

98. redis 能把内存空间交换进磁盘中吗(这个应该是可以的,但是那个面试官 非跟我说不可以)

99. java 线程池中基于缓存和基于定长的两种线程池,当请求太多时分别是如 何处理的?定长的事用的队列,如果队列也满了呢?交换进磁盘?基于缓存的 线程池解决方法呢?

100. synchronized 加在方法上用的什么锁

101. 可重入锁中的 lock 和 trylock 的区别

102. innodb 对一行数据的读会枷锁吗?不枷锁,读实际读的是副本

103. redis 做缓存是分布式存的?不同的服务器上存的数据是否重复?guava cache 呢?是否重复?不同的机器存的数据不同

104. 用 awk 统计一个 ip 文件中 top10

105. 对表做统计时可直接看 schema info 信息,即查看表的系统信息

106. mysql 目前用的版本

107. 公司经验丰富的人给了什么帮助?(一般 boss 面会问这些)

108. 自己相对于一样的应届生有什么优势

109. 自己的好的总结习惯给自己今后的工作带了什么帮助,举例为证

110. 原子类,线程安全的对象,异常的处理方式

111. 4 亿个 int 数,如何找出重复的数(用 hash 方法,建一个 2 的 32 次 方个 bit 的 hash 数组,每取一个 int 数,可 hash 下 2 的 32 次方找到它在 h ash 数组中的位置,然后将 bit 置 1 表示已存在)

112. 4 亿个 url,找出其中重复的(考虑内存不够,通过 hash 算法,将 url 分配到 1000 个文件中,不同的文件间肯定就不会重复了,再分别找出重复 的) 有 1 万个数组,每个数组有 1000 个整数,每个数组都是降序的,从中找出 最大的 N 个数,N<1000

113. LinkedHashmap 的底层实现

114. 类序列化时类的版本号的用途,如果没有指定一个版本号,系统是怎么 处理的?如果加了字段会怎么样?

115. Override 和 Overload 的区别,分别用在什么场景

116. java 的反射是如何实现的


tomcat 面试题

1. 你怎样给 tomcat 去调优? 

2. 如何加大 tomcat 连接数

3. tomcat 中如何禁止列目录下的文件

4.怎样加大 tomcat 的内存。

5.Tomcat 有几种部署方式

6.Tomcat 的优化经验。


zookeeper面试题

1、zookeeper是一个开源的分布式协调服务框架。

2、应用场景:分布式通知/协调、负载均衡、配置中心、分布式锁、分布式队列等。

3、使用ZAB协议。

4、Paxos算法看最后文章推荐的书。

5、选举算法及流程看最后文章推荐的书。

6、节点类型:持久节点、持久顺序节点、临时节点、临时顺序节点。

7、不是永久的,一次性的,需要借助第三方工具实现重复注册。

8、部署模式:单机模式、伪集群模式、集群模式。

9、集群角色:leader、foller、observer。

10、集群规则为2N+1台,N>0,即3台。

11、集群需要一半以上的机器可用,所以,3台挂掉1台还能工作,2台不能。

12、3.5版本开始支持动态扩容。

13、java客户端:zk自带的zkclient及Apache开源的Curator。

14、chubby是google的,完全实现paxos算法,不开源。zookeeper是chubby的开源实现,使用zab协议,paxos算法的变种。

15、常用命令:ls get set create delete等。


需要获取以上这些面试题答案以及学习资料得话麻烦一键三连之后微信扫描下图作者助手的微信:( msb-shishi )添加即可免费获取到哦

猜你喜欢

转载自blog.csdn.net/yunzhaji3762/article/details/110099347