BATJ高级Java面试题分享:JVM+Redis+Kafka +数据库+设计模式

话不多说,这些都是这几年来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面试题,以下2019最新整理出的BATJ资深Java必考题和答案。

BATJ高级Java面试题分享:JVM+Redis+Kafka +数据库+设计模式

需要上图更多java面试题的私信笔者“java”领取哦

另外喜欢这篇文章的可以给笔者点个赞,关注一下,每天都会分享Java相关文章!还有不定时的福利赠送,包括整理的学习资料,面试题,源码等~


分享到:


相關文章: