JavaShuo
栏目
标签
Java 常见面试题整理
时间 2019-11-16
标签
java
常见
面试
整理
栏目
Java
繁體版
原文
原文链接
操做系统
说一下线程和进程,它们的区别
同步和异步的区别
阻塞和非阻塞的区别
操做系统中死锁的四个必要条件
mmap和普通文件读写的区别,mmap的注意点
CPU密集型和IO密集型的区别
Linux
linux 用过的命令
kill 用法,某个进程杀不掉的缘由(进入内核态,忽略 kill 信号)
系统管理命令(如查看内存- 网络状况)
管道的使用
grep 的使用,必定要掌握,每次都会问在文件中查找
shell 脚本
find 命令
awk 使用
讲一下linux的Swap分区
硬连接和软链接区别
讲一下epoll的基本原理,优势
讲一下内核态与用户态,为何要有用户态和内核态,如何切换
讲一下五种IO模型
计算机网络
网络为何要分层
为何有IP地址还须要MAC地址
IP 地址子网划分
DNS 解析过程
URI和URL区别
说一下 TCP 和 UDP 的区别,优缺点
TCP如何保证可靠传输?怎么作到不丢,不重,不漏(三次握手、滑动窗口、流量控制、拥塞控制)
TCP三次握手、TCP四次挥手
TCP粘包和拆包产生的缘由?解决策略?
谈一下你对 HTTP 的理解?
http2 比1.1主要改进了什么,有什么好的办法解决头部阻塞嘛?
既然说 HTTP 是无状态的,那服务器怎么记住上次请求的用户?
GET和POST区别
讲一下你熟悉的HTTP状态码,它们的含义是什么?
讲一下一次完整的HTTP请求过程
HTTPS和HTTP的区别,https是如何保证数据传输的安全?
Session 和 Cookie 区别?
设计模式
说一下你熟悉的设计模式?
简单工厂和抽象工厂有什么区别?
什么是单例模式?在什么状况下须要使用单例模式?
Java基础系列
容器
Collection 和 Collections 有什么区别?
List、Set、Map 之间的区别是什么?
ArrayList初始化默认长度、扩容、拷贝、增长和删除时间复杂度和空间复杂度
ArrayList 是一个线程安全的集合类吗?
ArrayList 和 LinkedList 的区别是什么?
如何实现数组和 List 之间的转换?
ArrayList 和 Vector 的区别是什么?
迭代器 Iterator 是什么?怎么使用?有什么特色?
在 Queue 中 poll()和 remove()有什么区别?
说一下 HashMap 的底层数据结构?
HashMap 和 Hashtable 有什么区别?
如何决定使用 HashMap 仍是 TreeMap?
HashMap 存储元素时 key 彻底同样该怎么处理?
HashMap 的默认长度是多少?如何扩容的?
Hash 会有什么问题 ?怎么避免或者减小哈希碰撞 ?
JDK 1.8 的 HashMap 有什么变化?为何 JDK 1.7 是头插法,JDK 1.8 是尾插法?
ConcurrentHashMap 和 HashMap 的区别?为何 ConcurrentHashMap 会线程安全?
ConcurrentHashMap 虽然是线程安全的,但它也存在什么问题?
了解 TreeMap 吗?TreeMap 最大的特色是什么?为何已经有了 HashMap 了还要有 TreeMap 类?
说一下 Fail-Fast 机制,结合源码说一下
哪些集合类是线程安全的?
怎么确保一个集合不能被修改?
判断一个集合类是否为线程安全的机制是什么?
多线程
线程有哪些状态?
并行和并发有什么区别?
线程和进程的区别?
守护线程是什么?
建立线程有哪几种方式?
说一下 runnable 和 callable 有什么区别?
sleep() 和 wait() 有什么区别?
notify()和 notifyAll()有什么区别?
为何线程通讯的方法wait(), notify()和notifyAll()被定义在Object类里?
线程的 run()和 start()有什么区别?
什么是线程安全?在 java 程序中怎么保证多线程的运行安全?
锁的升级原理是什么?
对象锁和静态锁之间的区别
什么是死锁?怎么防止死锁?
ThreadLocal 是什么?有哪些使用场景?
说一下 synchronized 底层实现原理?
synchronized 和 volatile 的区别是什么?
synchronized 和 Lock 有什么区别?
synchronized 和 ReentrantLock 区别是什么?
说一下 atomic 的原理?
CAS是什么?缺点
说一下 AQS的原理?
如何中止一个线程?
final域的内存语义
java
线程池
线程池的实现原理,为何要用线程池
线程池中Executor、ExecuteService、Executors 的区别
线程池都有哪些状态?
线程池中 submit()和 execute()方法有什么区别?
线程池都有哪几种工做队列?
怎么理解无界队列和有界队列?
ThreadPoolExecutor执行的策略
说说几种常见的线程池及使用场景?特色?为何不推荐经过Executors直接建立线程池
四种拒绝策略
线程池ThreadPoolExecutor参数如何设置
单机上一个线程池正在处理服务,若是突然断电了怎么办(正在处理和阻塞队列里的请求怎么处理)?
mysql
反射
什么是反射?
什么是 Java 序列化?什么状况下须要序列化?
动态代理是什么?有哪些应用?
怎么实现动态代理?
对象拷贝
为何要使用克隆?
如何实现对象克隆?
深拷贝和浅拷贝区别是什么?
异常
Java 异常的体系结构
throw 和 throws 的区别?
final、finally、finalize 有什么区别?
try-catch-finally 中哪一个部分能够省略?
try-catch-finally 中,若是 catch 中 return 了,finally 还会执行吗?
常见的异常类有哪些?
JVM
说一下对jvm的理解,jvm的组成部分,各个部分的存储内容以及常见的jvm的问题排查步骤。
对JVM熟不熟悉?简单说说类加载过程,里面执行的那些操做?
JVM方法区存储内容 是否会动态扩展 是否会出现内存溢出 出现的缘由有哪些。
介绍介绍CMS。
介绍介绍G1。
为何jdk8用metaspace数据结构用来替代perm?
简单谈谈堆外内存以及你的理解和认识。
JVM的内存模型的理解,threadlocal使用场景及注意事项?
JVM老年代和新生代的比例?
jstack,jmap,jutil分别的意义?如何线上排查JVM的相关问题?
Java虚拟机中,数据类型能够分为哪几类?
怎么理解栈、堆?堆中存什么?栈中存什么?
为何要把堆和栈区分出来呢?栈中不是也能够存储数据吗?
在Java中,什么是是栈的起始点,同是也是程序的起始点?
为何不把基本类型放堆中呢?
Java中的参数传递时传值呢?仍是传引用?
Java中有没有指针的概念?
Java中,栈的大小经过什么参数来设置?
一个空Object对象的占多大空间?
对象引用类型分为哪几类?
讲一讲垃圾回收算法。
如何解决内存碎片的问题?
如何解决同时存在的对象建立和对象回收问题?
讲一讲内存分代及生命周期。
什么状况下触发垃圾回收?
如何选择合适的垃圾收集算法?
JVM中最大堆大小有没有限制?
堆大小经过什么参数设置?
JVM有哪三种垃圾回收器?
吞吐量优先选择什么垃圾回收器?响应时间优先呢?
如何进行JVM调优?有哪些方法?
如何理解内存泄漏问题?有哪些状况会致使内存泄露?如何解决?
MySQL
说一下 ACID 是什么?
说一下四种隔离级别,默认的隔离级别是什么,怎么避免不可重复读?
char 和 varchar 的区别是什么?
float 和 double 的区别是什么?
mysql 的内链接、左链接、右链接有什么区别?
mysql 索引是怎么实现的?
B+树索引和哈希索引的区别
B树和B+树的区别
汇集索引和辅助索引
什么状况下应不建或少建索引,致使索引失效的一些状况
key和index的区别
怎么验证 mysql 的索引是否知足需求?
说一下 mysql 经常使用的引擎?MyISAM和InnoDB的区别?如何选择?
说一下 mysql 的行锁和表锁?
锁的算法(Record Lock、Gap Lock、Next-Key Lock)
MySQL怎么实现redo log和binlog的一致性
说一下乐观锁和悲观锁?
说一下MySQL分区怎么实现,对业务层透明吗?MySQL支持的分区类型有哪些?使用场景?分区与分表的区别?
mysql主从同步原理
说一下MVVC
mysql 问题排查都有哪些手段?
如何作 mysql 的性能优化?
Netty
Netty为何比NIO快?
讲一下Netty零拷贝原理,为何会有内核空间?怎么管理?
NIO必定比IO快吗?什么状况下会比IO慢?
Spring
为何要使用 spring?
讲一下aop的实现原理?JDK动态代理和CGLIB代理的区别
讲一下ioc的实现原理?
spring 有哪些主要模块?
spring 经常使用的注入方式有哪些?
spring 中的 bean 是线程安全的吗?
spring 支持几种 bean 的做用域?
spring 自动装配 bean 有哪些方式?
spring 事务实现方式有哪些?事务失效的几种缘由
说一下 spring 的事务隔离?
说一下 spring mvc 运行流程?
spring mvc 有哪些组件?
@RequestMapping 的做用是什么?
@Autowired 的做用是什么?
Spring Boot
什么是 Spring Boot?为何要用 Spring Boot?和Spring有什么区别?
Spring Boot 核心配置文件是什么?
Spring Boot配置文件有哪几种类型?它们有什么区别?
Spring Boot 有哪些方式能够实现热部署?
微服务怎么拆分
讲一下DDD
MyBatis
mybatis的特性
mybatis的#号和$号有什么区别
mybatis如何进行类型转换
mybatis的xml有什么标签
mybatis底层如何加载mapper,以及SQL语句具体怎么执行
mybatis 有哪些执行器(Executor)?
mybatis 有几种分页方式?
RowBounds 是一次性查询所有结果吗?为何?
mybatis 逻辑分页和物理分页的区别是什么?
mybatis 是否支持延迟加载?延迟加载的原理是什么?
MyBatis 如何处理批量请求?
说一下 mybatis 的一级缓存和二级缓存?(高频)
mybatis 分页插件的实现原理是什么?
mybatis 如何编写一个自定义插件?
消息队列
说说你使用过什么消息中间件?
为何要在系统里引入消息中间件?
消息中间件技术选型为何是RabbitMQ?技术选型的依据是什么?
怎么保证消息中间件的高可用性?避免消息中间件故障后引起系统总体故障?
RabbitMQ的高可用性怎么实现。
怎么保证投递出去的消息只有一条,不会出现重复的数据?
消息重复是什么形成的,从生产端和消费端两个角度来考虑
如何保证消息的顺序性?若是不须要保证消息顺序,为何不须要?
是否遇到过消息积压的生产故障?若是没遇到过,你考虑一下如何应对?
说说RabbitMQ的底层架构原理,逻辑架构、物理架构以及数据持久化机制?
大家RabbitMQ的最高峰QPS每秒是多少?线上如何部署的,部署了多少台机器,机器的配置如何?
说说Kafka的底层架构原理,磁盘上数据如何存储的,总体分布式架构是如何实现的?
说说Kafka是如何保证数据的高容错性的?零拷贝等技术是如何运用的?高吞吐量下如何优化生产者和消费者的性能?
说说你对Kafka源码的理解?
RocketMQ的一个特色是对分布式事务的支持,说说他在分布式事务支持的底层原理?
RocketMQ的源码看过么,聊聊你对RocketMQ源码的理解?
若是让你来动手实现一个分布式消息中间件,总体架构你会如何设计实现?
Redis
Redis 都有哪些数据类型?它们的内部数据结构是什么?分别在哪些场景下使用比较合适?
Redis有人说是单线程和有人说是多线程,你怎么看?Redis 为何是单线程的?
Redis 和 Memcached 有什么区别?为何单线程的 Redis 比多线程的 Memcached 效率要高得多?
Redis 的线程模型是什么?讲一下多路I/O复用模型?
Redis主从复制是怎么实现的
什么是 Redis 的雪崩和穿透?Redis 崩溃以后会怎么样?系统该如何应对这种状况?如何处理 Redis 的穿透?
Redis 的持久化有哪几种方式?区别?持久化机制具体底层是如何实现的?
redis 支持的 java 客户端都有哪些?jedis 和 redisson 有哪些区别?
如何保证缓存与数据库的双写一致性?
Redis 的并发竞争问题是什么?如何解决?了解 Redis 事务的 CAS 方案吗?
Redis 集群模式的工做原理?Redis 的 key 是如何寻址的?分布式寻址都有哪些算法?了解一致性 hash 算法吗?如何动态增长和删除一个节点?
Redis 怎么实现分布式锁?有什么缺陷?
Redis 如何作内存优化?
Redis 设置过时时间的原理?
Redis 淘汰策略有哪些?
Redis 常见的性能问题有哪些?该如何解决?
Redis 和MySQL区别,MySQL也有存储文档格式的存储引擎Memory,它们什么区别?
Zookeeper
raft协议相比paxos的优劣
Nginx
讲一下nginx负载均衡,优点,Apache和Nginx区别
cgi和fastcgi区别
Nginx架构、模块关系、accept_mutex的实现以及多进程的负载均衡
nginx部署的时候出现502了吗,500何时出现的
Nginx负载均衡致使用户两次调用服务不在一个IP上,怎么保持链接
MongoDB
MongoDB和MySQL区别,MySQL也有存储文档格式的存储引擎Archive,它们什么区别?
Solr
Solr全量索引的时候发现数据有丢失,怎么处理?
Solr地理位置搜索的原理是什么?
倒排索引的优点?
相关文章
1.
常见Java面试整理
2.
Java常见面试题整理【1】
3.
Java基础常见面试题整理
4.
Java 常见面试题整理
5.
常见C++笔试面试题整理
6.
Redis常见面试题整理
7.
Java面试----2018年MyBatis常见实用面试题整理
8.
java程序员面试常见面试题及答案整理
9.
面试常见问题整理
10.
Spring常见面试题整理(2020.07.17)
更多相关文章...
•
Scala 异常处理
-
Scala教程
•
C# 异常处理
-
C#教程
•
☆技术问答集锦(13)Java Instrument原理
•
Java Agent入门实战(三)-JVM Attach原理与使用
相关标签/搜索
Java面试题
面试试题
常见问题
Java面试题八
Java面试题四
Java面试题十
面试常考
常见
常见异常
面试题
快乐工作
Java
PHP教程
MySQL教程
NoSQL教程
面试
java
Java 8
0
分享到微博
分享到微信
分享到QQ
每日一句
每一个你不满意的现在,都有一个你没有努力的曾经。
最新文章
1.
gitlab新建分支后,android studio拿不到
2.
Android Wi-Fi 连接/断开时间
3.
今日头条面试题+答案,花点时间看看!
4.
小程序时间组件的开发
5.
小程序学习系列一
6.
[微信小程序] 微信小程序学习(一)——起步
7.
硬件
8.
C3盒模型以及他出现的必要性和圆角边框/前端三
9.
DELL戴尔笔记本关闭触摸板触控板WIN10
10.
Java的long和double类型的赋值操作为什么不是原子性的?
本站公众号
欢迎关注本站公众号,获取更多信息
相关文章
1.
常见Java面试整理
2.
Java常见面试题整理【1】
3.
Java基础常见面试题整理
4.
Java 常见面试题整理
5.
常见C++笔试面试题整理
6.
Redis常见面试题整理
7.
Java面试----2018年MyBatis常见实用面试题整理
8.
java程序员面试常见面试题及答案整理
9.
面试常见问题整理
10.
Spring常见面试题整理(2020.07.17)
>>更多相关文章<<