本文主要是介绍近5年BATJ大厂必考高级Java面试题分享,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
话不多说,这些都是这几年来BATJ面试问的最多关于Java的面试题,大家可以以这个为标准!多做准备!
Mysql
- 与 Oracle 相比, Mysql 有什么优势?
- 简洁描述 Mysql 中 InnoDB 支持的四种事务隔离级别名称,以及逐级之间的区别?
- 在 Mysql 中 ENUM 的用法是什么?
- Mysql 中使用什么存储引擎?
- 如何使用 Unix shell 登录 Mysql
- Mysql 中有哪几种锁?简单介绍一下
JVM
- GC 的三种收集方法:标记清除、标记整理、复制算法的原理与特点,分别用在什么地方,如果让你优化收集方法,有什么思路?
- GC 收集器有哪些? CMS 收集器与 G1 收集器的特点。
- JVM 内存分哪几个区,每个区的作用是什么?
- 如和判断一个对象是否存活?(或者 GC 对象的判定方法)
- 简述 java 类加载机制?
- 什么是类加载器,类加载器有哪些?
Tomcat
- Tomcat 的缺省端口是多少,怎么修改?
- tomcat 有哪几种 Connector 运行模式(优化)?
- Tomcat 有几种部署方式?
- 监视 Tomcat 的内存使用情况
- Tomcat 一个请求的完整过程
- Tomcat 工作模式
Redis
- redis 主从复制如何实现的? redis 的集群模式如何实现? redis 的 key 是如何寻址的?
- 使用 redis 如何设计分布式锁?说一下实现思路?使用 zk 可以吗?如何实现?这两种有什么区别?
- 知道 redis 的持久化吗?底层如何实现的?有什么优点缺点?
- redis 过期策略都有哪些? LRU 算法知道吗?写一下 java 代码实现
- 缓存穿透、缓存击穿、缓存雪崩解决方案?
- 在选择缓存时,什么时候选择 redis,什么时候选择 memcached
多线程
- 现在有 T1、 T2、 T3 三个线程,你怎样保证 T2 在 T1 执行完后执行, T3 在 T2 执行完后执行?
- 在 java 中 wait 和 sleep 方法的不同?
- 用 Java 编程一个会导致死锁的程序,你将怎么解决?
- 什么是竞争条件?你怎样发现和解决竞争?
- 为什么我们调用 start()方法时会执行 run()方法,为什么我们不能直接调用 run()方法?
- Java 中你怎样唤醒一个阻塞的线程?
设计模式
- 在 Java 中,为什么不允许从静态方法中访问非静态变量?
- 在 Java 中,什么时候用重载,什么时候用重写?
- 举例说明什么情况下会更倾向于使用抽象类而不是接口?
- Java 中什么叫单例设计模式?请用 Java 写出线程安全的单例模式
- 什么是设计模式?你是否在你的代码里面使用过任何设计模式?
- 请列举出在 JDK 中几个常用的设计模式?
Nginx
- 请列举 Nginx 的一些特性
- 请解释 Nginx 如何处理 HTTP 请求。
- 使用“反向代理服务器”的优点是什么?
- 请列举 Nginx 服务器的最佳用途。
- 请解释你如何通过不同于 80 的端口开启 Nginx?
- 在 Nginx 中,解释如何在 URL 中保留双斜线?
ActiveMQ
- ActiveMQ 服务器宕机怎么办?
- ActiveMQ 中的消息重发时间间隔和重发次数吗?
Kafka
- Kafka 判断一个节点是否还活着有那两个条件?
- Kafa consumer 是否可以消费指定分区消息?
- Kafka 消息是采用 Pull 模式,还是 Push 模式?
- Kafka 存储在硬盘上的消息格式是什么?
- Kafka 创建 Topic 时如何将分区放置到不同的 Broker 中
- kafka 的 ack 机制
以上这些都是我总结的Java面试题,以下2022最新整理出的BATJ资深Java必考题和答案。
这篇关于近5年BATJ大厂必考高级Java面试题分享的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!