我掏空了各大搜索引擎,给你整理了188道Java面试题,满满干货记得收藏

前言:时间不等人,2020年转眼就要过去了,春招在疫情中度过,不知有多少人还在可惜...java

又到了秋招的高峰“金九银十”,估计如今就已经有很多的程序猿(媛)朋友早就踏上刷题之路了吧!从7月份开始老光就在整理“Java一线大厂高岗面试题”,一题一题的抠,整出了这份[188道Java面试题汇总(附解析)]但愿能对你们有所帮助。mysql

Java集合17题

1. JDK 和 JRE 有什么区别?linux

2. == 和 equals 的区别是什么?nginx

3. 两个对象的 hashCode() 相同,则 equals() 也必定为 true,对吗?git

4. final 在 Java 中有什么做用?web

5. Java 中的 Math. round(-1. 5) 等于多少?面试

6. String 属于基础的数据类型吗?redis

7. Java 中操做字符串都有哪些类?它们之间有什么区别?算法

8. String str="i"与 String str=new String("i")同样吗?spring

9. 如何将字符串反转?

10. String 类的经常使用方法都有那些?

11. 抽象类必需要有抽象方法吗?

12. 普通类和抽象类有哪些区别?

13. 抽象类能使用 final 修饰吗?

14. 接口和抽象类有什么区别?

15. Java 中 IO 流分为几种?

16. BIO、NIO、AIO 有什么区别?

17. Files的经常使用方法都有哪些?

多线程22题

  1. 并行和并发有什么区别?
  2. 线程和进程的区别?
  3. 守护线程是什么?
  4. 建立线程有哪几种方式?
  5. 说一下 runnable 和 callable 有什么区别?
  6. 线程有哪些状态?
  7. sleep() 和 wait() 有什么区别?
  8. notify()和 notifyAll()有什么区别?
  9. 线程的 run() 和 start() 有什么区别?
  10. 建立线程池有哪几种方式?
  11. 线程池都有哪些状态?
  12. 线程池中 submit() 和 execute() 方法有什么区别?
  13. 在 Java 程序中怎么保证多线程的运行安全?
  14. 多线程中 synchronized 锁升级的原理是什么?
  15. 什么是死锁?
  16. 怎么防止死锁?
  17. ThreadLocal 是什么?有哪些使用场景?
  18. 说一下 synchronized 底层实现原理?
  19. synchronized 和 volatile 的区别是什么?
  20. synchronized 和 Lock 有什么区别?
  21. synchronized 和 ReentrantLock 区别是什么?
  22. 说一下 atomic 的原理?

JVM 18题

 

  1. 你知道哪些或者大家线上使用什么GC策略? 它有什么优点,适用于什么场景?
  2. JAVA类加载器包括几种?它们之间的父子关系是怎么样的?双亲委派机制是什么意思?有什么好处?
  3. 如何自定义一个类加载器?你使用过哪些或者你在什么场景下须要一个自定义的类加载器吗?
  4. 堆内存设置的参数是什么?
  5. Perm Space中保存什么数据? 会引发OutOfMemory吗?
  6. 作gc时,一个对象在内存各个Space中被移动的顺序是什么?
  7. 你有没有遇到过OutOfMemory问题?你是怎么来处理这个问题的?处理过程当中有哪些收获?
  8. 1.8以后Perm Space有哪些变更? MetaSpace大小默认是无限的么? 仍是大家会经过什么方式来指定大小?
  9. Jstack是干什么的? Jstat呢? 若是线上程序周期性地出现卡顿,你怀疑多是gc致使的,你会怎么来排查这个问题?线程日志通常你会看其中的什么部分?
  10. StackOverFlow异常有没有遇到过?通常你猜想会在什么状况下被触发?如何指定一个线程的堆栈大小?通常大家写多少?
  11. 说一下类装载的执行过程?

  12. 怎么判断对象是否能够被回收?

  13. Java 中都有哪些引用类型?

  14. 说一下 JVM 有哪些垃圾回收算法?

  15. 新生代垃圾回收器和老生代垃圾回收器都有哪些?有什么区别?

  16. 简述分代垃圾回收器是怎么工做的?

  17. 说一下 JVM 调优的工具?

  18. 经常使用的 JVM 调优的参数都有哪些?

RabbitMQ 17题

 

  1. RabbitMQ 的使用场景有哪些?
  2. RabbitMQ 有哪些重要的角色?
  3. RabbitMQ 有哪些重要的组件?
  4. RabbitMQ 中 vhost 的做用是什么?
  5. RabbitMQ 的消息是怎么发送的?
  6. RabbitMQ 怎么保证消息的稳定性?
  7. RabbitMQ 怎么避免消息丢失?
  8. 要保证消息持久化成功的条件有哪些?
  9. RabbitMQ 持久化有什么缺点?
  10. RabbitMQ 有几种广播类型?
  11. RabbitMQ 怎么实现延迟消息队列?
  12. RabbitMQ 集群有什么用?
  13. RabbitMQ 节点的类型有哪些?
  14. RabbitMQ 集群搭建须要注意哪些问题?
  15. RabbitMQ 每一个节点是其余节点的完整拷贝吗?为何?
  16. RabbitMQ 集群中惟一一个磁盘节点崩溃了会发生什么状况?
  17. RabbitMQ 对集群节点中止顺序有要求吗?

MySQL 14题

 

  1. 若是有不少数据插入MYSQL 你会选择什么方式?
  2. 若是查询很慢,你会想到的第一个方式是什么?索引是干吗的?
  3. 若是建了一个单列索引,查询的时候查出2列,会用到这个单列索引吗?
  4. 若是建了一个包含多个列的索引,查询的时候只用了第一列,能不能用上这个索引?查三列呢?
  5. 接上题,若是where条件后面带有一个 i + 5 < 100 会使用到这个索引吗?
  6. 怎么看是否用到了了某个索引?
  7. like %aaa%会使用索引吗? like aaa%呢?
  8. drop、truncate、delete的区别?
  9. 平时大家是怎么监控数据库的? 慢SQL是怎么排查的?
  10. 大家数据库是否支持emoji表情,若是不支持,如何操做?
  11. 大家的数据库单表数据量是多少?通常多大的时候开始出现查询性能急剧降低?
  12. 查询死掉了,想要找出执行的查询进程用什么命令?找出来以后通常你会干吗?
  13. 读写分离是怎么作的?你认为中间件会怎么来操做?这样操做跟事务有什么关系?
  14. 分库分表有没有作过?线上的迁移过程是怎么样的?如何肯定数据是正确的?

springboot 22题

我掏空了各大搜索引擎,给你整理了154道Java干货面试题

 

  1. 什么是 Spring Boot?
  2. Spring Boot 有哪些优势?
  3. 什么是 JavaConfig?
  4. 如何从新加载 Spring Boot 上的更改,而无需从新启动服务器?
  5. Spring Boot 中的监视器是什么?
  6. 如何在 Spring Boot 中禁用 Actuator 端点安全性?
  7. 如何在自定义端口上运行 Spring Boot 应用程序?
  8. 什么是 YAML?
  9. 如何实现 Spring Boot 应用程序的安全性?
  10. 如何集成 Spring Boot 和 ActiveMQ?
  11. 如何使用 Spring Boot 实现分页和排序?
  12. 什么是 Swagger?你用 Spring Boot 实现了它吗?
  13. 什么是 Spring Profiles?
  14. 什么是 Spring Batch?
  15. 什么是 FreeMarker 模板?
  16. 如何使用 Spring Boot 实现异常处理?
  17. 您使用了哪些 starter maven 依赖项?
  18. 什么是 CSRF 攻击?
  19. 什么是 WebSockets?
  20. 什么是 AOP?
  21. 什么是 Apache Kafka?
  22. 咱们如何监视全部 Spring Boot 微服务?

Spring Cloud 8题

  1. 什么是 Spring Cloud?

  2. 使用 Spring Cloud 有什么优点?

  3. 服务注册和发现是什么意思?Spring Cloud 如何实现?

  4. 负载平衡的意义什么?

  5. 什么是 Hystrix?它如何实现容错?

  6. 什么是 Hystrix 断路器?咱们须要它吗?

  7. 什么是 Netflix Feign?它的优势是什么?

  8. 什么是 Spring Cloud Bus?咱们须要它吗?

 

监控、稳定性 4题

  1. 业务日志是经过什么方式来收集的?
  2. 线上机器如何监控?采用什么开源产品或者自研的产品?它是分钟级的仍是秒级的?
  3. 若是让你来想办法收集一个JAVA后端应用的性能数据,你会在乎哪些方面? 你会选择什么样的工具、思路来收集?
  4. 通常你调用第三方的时候会不会监控调用状况?

 

Redis - 14题

我掏空了各大搜索引擎,给你整理了154道Java干货面试题

 

  1. 缓存穿透能够介绍一下么?你认为应该如何解决这个问题
  2. 你是怎么触发缓存更新的?(好比设置超时时间(被动方式), 好比更新的时候主动update)?若是是被动的方式如何控制多个入口同时触发某个缓存更新?
  3. 大家用Redis来作什么?为何不用其余的KV存储例例如Memcached,Cassandra等?
  4. 大家用什么Redis客户端? Redis高性能的缘由大概能够讲一些?
  5. 你熟悉哪些Redis的数据结构? zset是干什么的? 和set有什么区别?
  6. Redis的hash, 存储和获取的具体命令叫什么名字?
  7. LPOP和BLPOP的区别?
  8. Redis的有一些包含SCAN关键字的命令是干吗的? SCAN返回的数据量是固定的吗?
  9. Redis中的Lua有没有使用过? 能够用来作什么? 为何能够这么用?
  10. Redis的Pipeline是用来干什么的? -- 运维
  11. Redis持久化大概有几种方式? aof和rdb的区别是什么? AOF有什么优缺点吗?
  12. Redis Replication的大体流程是什么? bgsave这个命令的执行过程? -- 偏题
  13. 若是有不少 KV数据要存储到Redis, 可是内存不足, 经过什么方式能够缩减内存? 为何这样能够缩小内存?
  14. Redis中List, HashTable都用到了ZipList, 为何会选择它

一线互联网企业精品面试题60道

  1.  junit 用法,before,beforeClass,after, afterClass 的执行顺序
  2. 分布式锁
  3.  nginx 的请求转发算法,如何配置根据权重转发
  4. 用 hashmap 实现 redis 有什么问题(死锁,死循环,可用 ConcurrentH ashmap)
  5. 线程的状态
  6. 线程的阻塞的方式
  7.  sleep 和 wait 的区别
  8. hashmap 的底层实现
  9. 一万我的抢 100 个红包,如何实现(不用队列),如何保证 2 我的不能抢到同一个红包,可用分布式锁
  10. java 内存模型,垃圾回收机制,不可达算法
  11. 两个 Integer 的引用对象传给一个 swap 方法在方法内部交换引用,返回后,两个引用的值是否会发现变化
  12. aop 的底层实现,动态代理是如何动态,假若有 100 个对象,如何动态 的为这 100 个对象代理
  13. 是否用过 maven install。 maven test。git(make install 是安装本地 jar 包)
  14.  tomcat 的各类配置,如何配置 docBase

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

  16. web.xml 的配置
  17.  spring 的监听器。
  18.  zookeeper 的实现机制,有缓存,如何存储注册服务的
  19.  IO 会阻塞吗?readLine 是否是阻塞的
  20. 用过 spring 的线程池仍是 java 的线程池?
  21. 字符串的格式化方法 (20,21 这两个问题问的过低级了)
  22. 时间的格式化方法
  23. 定时器用什么作的
  24. 线程如何退出结束
  25. java 有哪些锁?乐观锁 悲观锁 synchronized 可重入锁 读写锁,用过 reentrantlock 吗?reentrantlock 与 synmchronized 的区别
  26. ThreadLocal 的使用场景
  27. java 的内存模型,垃圾回收机制
  28. 为何线程执行要调用 start 而不是直接 run(直接 run,跟普通方法没 什么区别,先调 start,run 才会做为一个线程方法运行)
  29. qmq 消息的实现机制(qmq 是去哪儿网本身封装的消息队列)
  30. 遍历 hashmap 的三种方式
  31. 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. mybatis 如何映射表结构
  44. 二叉树遍历
  45. 主从复制
  46. mysql 引擎区别
  47. 静态内部类加载到了哪一个区?方法区
  48. class 文件编译后加载到了哪
  49. web 的 http 请求如何总体响应时间变长致使处理的请求数变少,该如何处理?用队列,当处理不了那么多 http 请求时将请求放到队列中慢慢处理,web 如何实现队列77. 线程安全的单例模式
  50. 快速排序性能考虑
  51. volatile 关键字用法
  52. 求表的 size,或作数据统计可用什么存储引擎