春招失利,狂刷 200+ 面试文档,终斩获头条,阿里 offer~(Java 岗)
Posted 我是老实人辶
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了春招失利,狂刷 200+ 面试文档,终斩获头条,阿里 offer~(Java 岗)相关的知识,希望对你有一定的参考价值。
从面试之前的准备,到面试后的总结,个人感觉在拿到 offer 之后还是有些想总结下来的东西,把面试分享给大家。因为时间比较久了,可能会有一点疏漏,都是个人的想法,如有不妥请多包涵。
本篇面试专题共包含:ActiveMQ、Dubbo、JVM、Kafka、Linux、memcached、MongoDB、MyBatis、mysql、Netty、nginx、RabbitMQ、Redis、Spring Cloud、Spring Boot、Spring MVC、Spring、SQL、Tomcat、zookeeper、并发编程、多线程、开源框架、设计模式、微服务共计 25 类知识点的面试真题
注意,文章中出现的面试真题与指导,还有一些技术文档等等,都是可以免费分享给我这篇文章的读者朋友们的,如果你们有需要的话,查看文末下载地址即可无偿获取到!
一、ActiveMQ 篇
-
1.什么是 ActiveMQ?
-
ActiveMQ 服务器宕机怎么办?
-
丢消息怎么办?
-
持久化消息非常慢
-
消息的不均匀消费
-
死信队列
-
ActiveMQ 中的消息重发时间间隔和重发次数吗?
二、MySQL 篇
-
一张表,里面有 ID 自增主键,当 insert 了 17 条记录之后,删除了第 15,16,17 条记录,再把 Mysql 重启,再 insert 一条记录,这条记录的 ID 是 18 还是 15 ?
-
Mysql 的技术特点是什么?
-
Heap 表是什么?
-
Mysql 服务器默认端口是什么?
-
如何区分 FLOAT 和 DOUBLE?
-
区分 CHAR_LENGTH 和 LENGTH
-
请简洁描述 Mysql 中 InnoDB 支持的四种事务隔离级别名称,以及逐级之间的区别
-
在 Mysql 中 ENUM 的用法是什么?
-
如何定义 REGEXP?
-
CHAR 和 VARCHAR 的区别?
-
列的字符串类型可以是什么?
-
如何获取当前的 Mysql 版本?
-
Mysql 中使用什么存储引擎?
-
Mysql 驱动程序是什么?
-
TIMESTAMP 在 UPDATE CURRENT_TIMESTAMP 数据类型上做什么?
-
主键和候选键有什么区别?
-
如何使用 Unix shell 登录 Mysql?
-
myisamchk 是用来做什么的?
-
MYSQL 数据库服务器性能分析的方法命令有哪些?
-
如何做 mysql 的性能优化?
-
如何控制 HEAP 表的最大尺寸?
三、Dubbo 篇
-
Dubbo 支持哪些协议,每种协议的应用场景,优缺点?
-
Dubbo 超时时间怎样设置?
-
Dubbo 有些哪些注册中心?
-
Dubbo 是什么?
-
Dubbo 的主要应用场景?
-
Dubbo 的核心功能?
-
Dubbo 的核心组件?
-
Dubbo 服务注册与发现的流程?
-
Dubbo 的架构设计?
-
Dubbo 的服务调用流程?
-
Dubbo 中 zookeeper 做注册中心,如果注册中心集群都挂掉,发布者和订阅者之间还能通信么?
-
Dubbo 服务负载均衡策略
-
Dubbo 在安全机制方面是如何解决的?
-
Dubbo 连接注册中心和直连的区别
-
Dubbo 通信协议 dubbo 协议为什么采用异步单一长连接
-
RMI 协议
-
Hessian 协议
四、JVM 篇
-
说一下 jvm 的主要组成部分?及其作用?
-
说一下 jvm 运行时数据区?
-
说一下堆栈的区别?
-
队列和栈是什么?有什么区别?
-
什么是双亲委派模型?
-
说一下类加载的执行过程?
-
怎么判断对象是否可以被回收?
-
java 中都有哪些引用类型?
-
说一下 jvm 有哪些垃圾回收算法?
-
说一下 jvm 有哪些垃圾回收器?
-
详细介绍一下 CMS 垃圾回收器?
-
新生代垃圾回收器和老生代垃圾回收器都有哪些?有什么区别?
-
简述分代垃圾回收器是怎么工作的?
-
说一下 jvm 调优的工具?
-
常用的 jvm 调优的参数都有哪些?
五、Kafka 篇
-
kafka 可以脱离 zookeeper 单独使用吗?为什么?
-
kafka 有几种数据保留的策略?
-
kafka 同时设置了 7 天和 10G 清除数据,到第五天的时候消息达到了 10G,这个时候 kafka 将如何处理?
-
什么情况会导致 kafka 运行变慢?
-
使用 kafka 集群需要注意什么?
-
Kafka 的设计时什么样的呢?
-
Kafka 存储在硬盘上的消息格式是什么?
-
Kafka 高效文件存储设计特点
-
kafka 的 ack 机制
六、Linux 篇
-
Linux 中的用户模式和内核模式是什么含意?
-
怎样申请大块内核内存?
-
用户进程间通信主要哪几种方式?
-
Linux 中主要有哪几种内核锁?
-
通过伙伴系统申请内核内存的函数有哪些?
-
对文件或设备的操作函数保存在那个数据结构中?
-
创建进程的系统调用有那些?
-
调用 schedule()进行进程切换的方式有几种?
-
Linux 调度程序是根据进程的动态优先级还是静态优先级来调度进程的?
-
Linux 中有哪几种设备?
-
如何唯一标识一个设备?
-
Linux 中的浮点运算由应用程序实现还是内核实现?
memcached 篇
-
memcached 是怎么工作的?
-
memcached 最大的优势是什么?
-
memcached 和 MySQL 的 query cache 相比,有什么优缺点?
-
memcached 和服务器的 local cache(比如 php 的 APC、mmap 文件等)相比,有什么优点?
-
memcached 的 cache 机制是怎样的?
-
memcached 如何实现冗余机制?
-
memcached 如何处理容错的?
-
如何将 memcached 中 item 批量导入导出?
-
我需要把 memcached 中的 item 批量导出导入,怎么办?
-
memcached 是如何做身份验证的?
-
memcached 的多线程是什么?如何使用它们?
-
memcached 能接受的 key 的最大长度是多少?
-
memcached 对 item 的过期时间有什么限制?
-
为什么单个 item 的大小被限制在 1M byte 之内?
七、MongoDB 篇
-
你说的 NoSQL 数据库是什么意思?NoSQL 与 RDBMS 直接有什么区别?为什么要使用和不使用 NoSQL 数据库?说一说 NoSQL 数据库的几个优点?
-
NoSQL 数据库有哪些类型?
-
MySQL 与 MongoDB 之间最基本的差别是什么?
-
你怎么比较 MongoDB、CouchDB 及 CouchBase?
-
MongoDB 成为最好 NoSQL 数据库的原因是什么?
-
32 位系统上有什么细微差别?
-
journal 回放在条目(entry)不完整时(比如恰巧有一个中途故障了)会遇到问题吗?
-
分析器在 MongoDB 中的作用是什么?
-
名字空间(namespace)是什么?
-
如何执行事务/加锁?
-
什么是 master 或 primary?
-
数据在什么时候才会扩展到多个分片(shard)里
八、MyBatis 篇
-
mybatis 中 #{}和 ${}的区别是什么?
-
mybatis 有几种分页方式?
-
RowBounds 是一次性查询全部结果吗?为什么?
-
mybatis 逻辑分页和物理分页的区别是什么?
-
mybatis 是否支持延迟加载?延迟加载的原理是什么?
-
说一下 mybatis 的一级缓存和二级缓存?
-
mybatis 和 hibernate 的区别有哪些?
-
mybatis 有哪些执行器(Executor)?
-
mybatis 分页插件的实现原理是什么?
-
mybatis 如何编写一个自定义插件?
九、Netty 篇
-
NIO 和 AIO 的区别?
-
NIO 的组成?
-
Netty 的特点?
-
TCP 粘包/拆包的原因及解决方法?
-
了解哪几种序列化协议?
-
如何选择序列化协议?
-
Netty 的零拷贝实现?
-
Netty 的高性能表现在哪些方面?
-
NIOEventLoopGroup 源码?
十、Nginx 篇
-
请解释一下什么是 Nginx?
-
请列举 Nginx 的一些特性
-
请列举 Nginx 和 Apache 之间的不同点
-
请解释 Nginx 如何处理 HTTP 请求
-
在 Nginx 中,如何使用未定义的服务器名称来阻止处理请求?
-
使用“反向代理服务器”的优点是什么?
-
请列举 Nginx 服务器的最佳用途
-
请解释 Nginx 服务器上的 Master 和 Worker 进程分别是什么?
-
请解释你如何通过不同于 80 的端口开启 Nginx?
-
请解释是否有可能将 Nginx 的错误替换为 502 错误、503?
-
在 Nginx 中,解释如何在 URL 中保留双斜线
-
请解释 ngx_http_upstream_module 的作用是什么?
-
请解释什么是 C10K 问题?
-
请陈述 stub_status 和 sub_filter 指令的作用是什么?
-
解释 Nginx 是否支持将请求压缩到上游?
-
解释如何在 Nginx 中获得当前的时间?
十一、RabbitMQ 篇
-
rabbitmq 的使用场景有哪些?
-
rabbitmq 有哪些重要的角色?
-
rabbitmq 有哪些重要的组件?
-
rabbitmq 中 vhost 的作用是什么?
-
rabbitmq 的消息是怎么发送的?
-
rabbitmq 怎么保证消息的稳定性?
-
rabbitmq 怎么避免消息丢失?
-
要保证消息持久化成功的条件有哪些?
-
rabbitmq 持久化有什么缺点?
-
rabbitmq 有几种广播类型?
-
rabbitmq 怎么实现延迟消息队列?
-
rabbitmq 集群有什么用?
-
rabbitmq 节点的类型有哪些?
-
rabbitmq 每个节点是其他节点的完整拷贝吗?为什么?
-
rabbitmq 集群中唯一一个磁盘节点崩溃了会发生什么情况?
-
rabbitmq 对集群节点停止顺序有要求吗?
-
rabbitmq 集群搭建需要注意哪些问题?
十二、Redis 篇
-
redis 是什么?都有哪些使用场景?
-
redis 有哪些功能?
-
redis 和 memecache 有什么区别?
-
redis 为什么是单线程的?
-
什么是缓存穿透?怎么解决?
-
redis 支持的数据类型有哪些?
-
redis 和 redisson 有哪些区别?
-
怎么保证缓存和数据库数据的一致性?
-
redis 持久化有几种方式?
-
redis 怎么实现分布式锁?
-
redis 分布式锁有什么缺陷?
-
redis 如何做内存优化?
-
redis 淘汰策略有哪些?
-
redis 常见的性能问题有哪些?该如何解决?
十三、Spring Cloud/Boot 篇
-
什么是 spring boot?
-
为什么要用 spring boot?
-
spring boot 核心配置文件是什么?
-
spring boot 配置文件有哪几种类型?它们有什么区别?
-
spring boot 有哪些方式可以实现热部署?
-
jpa 和 hibernate 有什么区别?
-
什么是 spring cloud?
-
spring cloud 断路器的作用是什么?
-
spring cloud 的核心组件有哪些?
十四、Spring/Spring MVC 篇
-
为什么要使用 spring?
-
解释一下什么是 aop?
-
解释一下什么是 ioc?
-
spring 有哪些主要模块?
-
spring 常用的注入方式有哪些?
-
spring 中的 bean 是线程安全的吗?
-
96.spring 支持几种 bean 的作用域?
-
spring 自动装配 bean 有哪些方式?
-
spring 事务实现方式有哪些?
-
说一下 spring 的事务隔离?
-
spring mvc 有哪些组件?
-
@RequestMapping 的作用是什么?
-
@Autowired 的作用是什么?
十五、SQL 篇
-
一张表,里面有 ID 自增主键,当 insert 了 17 条记录之后,删除了第 15,16,17 条记录,再把 Mysql 重启,再 insert 一条记录,这条记录的 ID 是 18 还是 15 ?
-
Mysql 的技术特点是什么?
-
Heap 表是什么?
-
Mysql 服务器默认端口是什么?
-
与 Oracle 相比,Mysql 有什么优势?
-
如何区分 FLOAT 和 DOUBLE?
-
区分 CHAR_LENGTH 和 LENGTH?
-
请简洁描述 Mysql 中 InnoDB 支持的四种事务隔离级别名称,以及逐级之间的区别?
-
在 Mysql 中 ENUM 的用法是什么
-
如何定义 REGEXP?
-
CHAR 和 VARCHAR 的区别?
-
列的字符串类型可以是什么?
十六、Tomcat 篇
-
Tomcat 的缺省端口是多少,怎么修改?
-
Tomcat 有哪几种 Connector 运行模式(优化)?
-
Tomcat 有几种部署方式?
-
Tomcat 容器是如何创建 servlet 类实例?用到了什么原理?
-
Tomcat 如何优化?
-
内存调优
-
垃圾回收策略调优
-
共享 session 处理
-
添加 JMS 远程监控
-
关于 Tomcat 的 session 数目
-
监视 Tomcat 的内存使用情况
-
打印类的加载情况及对象的回收情况
-
Tomcat 一个请求的完整过程
-
Tomcat 工作模式
十七、zookeeper 篇
-
ZooKeeper 是什么?
-
ZooKeeper 提供了什么?
-
Zookeeper 文件系统
-
四种类型的 znode
-
Zookeeper 通知机制
-
Zookeeper 做了什么?
-
zk 的命名服务(文件系统)
-
zk 的配置管理(文件系统、通知机制)
-
Zookeeper 集群管理(文件系统、通知机制)
-
Zookeeper 分布式锁(文件系统、通知机制)
十八、并发编程篇
-
Synchronized 用过吗,其原理是什么 ?
-
你刚才提到获取对象的锁,这个“锁”是什么?如何确定对象的锁?
-
什么是可重入性?为什么说 Synchronized 是可重入锁?
-
JVM 对 Java 的原生锁做了哪些优化?
-
为什么说 Synchronized 是非公平锁?
-
什么是锁消除和锁粗化?
-
为什么说 Synchronized 是一个悲观锁?乐观锁的实现原理又是什么?
-
什么是 CAS,它有什么特性?
-
乐观锁一定就是好的吗?
-
跟 Synchronized 相比,可重入 ReentrantLock 其实现原理有什么不同?
-
请谈谈 AQS 框架是怎么回事
-
请尽可能详尽地对比下 Synchronized 和 ReentrantLock 的异同
-
ReentrantLock 是如何实现可重入性的?
-
除了 ReentrantLock,你还接触过 JUC 中的哪些并发工具?
-
请谈谈 ReadWriteLock 和 StampedLock
-
如何让 Java 的线程彼此同步?你还了解过哪些同步器?请分别介绍一下
-
CyclicBarrier 和 CountDownLatch 看起来很相似,请对比一下
-
Java 中的线程池是如何实现的?
-
创建线程池的几个核心构造参数
-
线程池中的线程是怎么创建的?是一开始就随着线程池的启动创建好的吗?
-
既然提到可以通过配置不同参数创建不同的线程池,那么 Java 中默认实现好的线程池又有哪些?请比较它们的异同
-
如何在 Java 线程池中提交线程?
-
什么是 Java 的内存模型,Java 中各个线程是怎么彼此看到对方的变量的?
-
请谈谈 Volatile 有什么特点,它为什么能保证变量对所有线程的可见性?
-
既然 Volatile 能保证县城见的变量可见性,是不是就意味着基于 Volatile 变量的运算就是并发安全的?
-
请对比下 Volatile 和 Synchronized 的异同
-
请谈谈 RhreadLocal 是怎么解决并发安全的?
-
很多人都说要慎用 TheadLocal,谈谈你的理解,使用 TheadLocal 需要注意些什么?
十九、多线程篇
-
现在有 T1、T2、T3 三个线程,你怎样保证 T2 在 T1 执行完后执行,T3 在 T2 执行完后执行?
-
用 Java 写代码来解决生产者——消费者问题
-
用 Java 编程一个会导致死锁的程序,你将怎么解决?
-
什么是原子操作,Java 中的原子操作是什么?
-
Java 中的 volatile 关键是什么作用?怎样使用它?在 Java 中它跟 synchronized 方法有什么不同?
-
你将如何使用 threaddump?你将如何分析 Thread dump?
-
为什么我们调用 start()方法时会执行 run()方法,为什么我们不能直接调用 run()方法?
-
Java 中你怎样唤醒一个阻塞的线程?
-
在 Java 中 CycliBarriar 和 CountdownLatch 有什么区别?
-
你在多线程环境中遇到的常见的问题是什么?你是怎么解决它的?
二十、开源框架篇
-
BeanFactory 和 ApplicationContext 有什么区别?
-
Spring Bean 的生命周期
-
Spring IOC 如何实现?
-
说说 Spring AOP
-
Spring AOP 实现原理
-
动态代理(cglib 与 JDK)
-
Spring 事务实现方式
-
Spring 事务底层原理
-
如何自定义注解实现功能
-
Spring MVC 运行流程
-
Spring MVC 启动流程
-
Spring 的单例实现原理
-
Spring 框架中用到了哪些设计模式
-
为什么选择 Netty
-
说说业务中,Netty 的使用场景
-
原生的 NIO 在 JDK 1.7 版本存在 epoll bug
-
什么是 TCP 粘包/拆包
-
TCP 粘包/拆包的解决办法
-
Netty 线程模型
-
说说 Netty 的零拷贝
-
Netty 内部执行流程
二十一、设计模式篇
-
请列举出在 JDK 中几个常用的设计模式?
-
什么是设计模式?你是否在你的代码里面使用过任何设计模式?
-
Java 中什么叫单例设计模式?请用 Java 写出线程安全的单例模式
-
使用工厂模式最主要的好处是什么?在哪里使用?
-
举一个用 Java 实现的装饰模式(decorator design pattern)?它是作用于对象层次还是类层次?
-
在 Java 中,为什么不允许从静态方法中访问非静态变量?
-
设计一个 ATM 机,请说出你的设计思路?
-
在 Java 中,什么时候用重载,什么时候用重写?
-
举例说明什么情况下会更倾向于使用抽象类而不是接口?
二十二、微服务篇
-
前后端分离是如何做的
-
微服务哪些框架
-
说说 RPC 的实现原理
-
说说 Dubbo 的实现原理
读者福利
本文为大家整理了 25 类面试题,同时还整理了一些学习资料。
如果需要获取本文面试题答案和学习资料的小伙伴“查看下图”无偿获取一份!
以上是关于春招失利,狂刷 200+ 面试文档,终斩获头条,阿里 offer~(Java 岗)的主要内容,如果未能解决你的问题,请参考以下文章
年前三面字节挂了,疫情狂刷左神算法,春招复盘成功入职字节跳动
冲刺春招!带你狂刷算法Leetcode题!短时间内快速获得实战能力!
2021春招面试,已拿到头条跟阿里offer!看看我是如何做到的吧!
春招季如何横扫 Javascript 面试核心考点? | 技术头条