2020最新500道Java***面试题:数据库+微服务 +SSM+并发编程+MySQL+Redis+MongoDB+....
前言
今天分享给大家的都是目前主流企业使用最高频的面试题库,也都是 Java 版本升级之后,重新整理归纳的最新答案,会让面试者少走很多不必要的弯路。同时每个专题都做到了详尽的面试解析文档,以确保每个阶段的读者都能看得懂。
本文收集整理了各大厂常见面试题N道,你想要的这里都有内容涵盖:Java、MyBatis、ZooKeeper、Dubbo、Redis、MySQL、Spring、Spring Boot、Spring Cloud、RabbitMQ、Kafka、Linux 等等,希望大家都能找到适合自己的公司,开开心心的撸代码。
由于资料内容太多,平台篇幅限制,小编只截取展现了以下部分面试专题与资料,全部面试专题资料展现在文末有需要的朋友们可以点击此处自行免费领取!
数据库
- 事务四大特性(ACID)?
- 数据库隔离级别,每个级别会引发什么问题,mysql默认是哪个级别?
- innodb和myisam存储引擎的区別?
- MYSQL的两种存储引擎区别(事务、锁级别等等),各自的适用场景?
- 查询语句不同元素(where、jion、limit, group by、having等等)执行先后顺序?
- 数据库的优化(sql语句优化和索引)?
- 索引有B+索引和hash索引,各自的区别?
- B+索引数据结构,和B树的区別?
- 索引的分类(主键索引、唯一索引),最左前缀原则,哪些情况索引会失效?
- 聚集索引和非聚集索引区别
- 有哪些锁(乐观锁悲观锁),select时怎么加排它锁?
- 关系型数据库和非关系型数据库区别?
- 数据库三范式,根据某个场费设计数据表?
- 数据库的读写分离、主从复制?
- 使用explain优化sql和索引?
- long_query怎么解决?
- 死锁判定原理和具体场景,死锁怎么解决?
- varchar和char的使用场景?
- mysql并发情况下怎么解决(通过事务、隔离级别、锁)?
- 数据库崩溃时事务的恢复机制(REDO日志和UNDO日志) ?
并发编程
- 跟 Synchronized 相比,可重入锁 ReentrantLock 其实现原理有什么不同?
- 那么请谈谈 AQS 框架是怎么回事儿?
- 请尽可能详尽地对比下 Synchronized 和 ReentrantLock 的异同。
- ReentrantLock 是如何实现可重入性的?
- 除了 ReetrantLock,你还接触过 JUC 中的哪些并发工具?
- 请谈谈 ReadWriteLock 和 StampedLock。
- 如何让 Java 的线程彼此同步?你了解过哪些同步器?请分别介绍下。
- CyclicBarrier 和 CountDownLatch 看起来很相似,请对比下呢?
- Synchronized 用过吗,其原理是什么?
- 你刚才提到获取对象的锁,这个“锁”到底是什么?如何确定对象的锁?
- 什么是可重入性,为什么说 Synchronized 是可重入锁?
- JVM 对 Java 的原生锁做了哪些优化?
- 为什么说 Synchronized 是非公平锁?
- 什么是锁消除和锁粗化?
- 为什么说 Synchronized 是一个悲观锁?乐观锁的实现原理又是什么?什么是
- 乐观锁一定就是好的吗?
- 什么是 Java 的内存模型,Java 中各个线程是怎么彼此看到对方的变量的?
- 请谈谈 volatile 有什么特点,为什么它能保证变量对所有线程的可见性?
- 请对比下 volatile 对比 Synchronized 的异同。
- 请谈谈 ThreadLocal 是怎么解决并发安全的?
- 很多人都说要慎用 ThreadLocal,谈谈你的理解,使用 ThreadLocal 需要注意些什么?
- Java 中的线程池是如何实现的?
- 创建线程池的几个核心构造参数?
- 线程池中的线程是怎么创建的?
- 如何在 Java 线程池中提交线程?
Spring
- 为什么需要代理模式?
- 讲讲静态代理模式的优点及其瓶颈?
- 对Java 接口代理模式的实现原理的理解?
- 如何使用 Java 反射实现动态代理?
- Java 接口代理模式的指定增强?
- 谈谈对Cglib 类增强动态代理的实现?
- point cut,advice,Join point是什么?
- join point 和 point cut 的区别?
- 怎么理解面向切面编程的切面?
- 谈谈对SpringAOP Weaving(织入)的理解?
- 谈谈SpringAOP Introduction(引入)的理解?
- 讲解OOP与AOP的简单对比?
- 讲解JDK 动态代理和 CGLIB 代理原理以及区别?
- 讲解Spring 框架中基于 Schema 的 AOP 实现原理?
- 讲解Spring 框架中如何基于 AOP 实现的事务管理?
- 谈谈对控制反转的设计思想的理解?
- 怎么理解 Spring IOC 容器?
MyBatis 面试题
- 什么是Mybatis?
- Mybatis的优点:
- Mybatis框架的缺点:
- Mybatis框架适用场合:
- MyBatis与Hibernate有哪些不同?
- #{}和${}的区别是什么?
- 当实体类中的属性名和表中的字段名不一样 ,怎么办 ?
- 模糊查询like语句该怎么写?
- 通常一个Xml映射文件,都会写一个Dao接口与之对应,请问,这个Dao接口的工作原理
- 是什么?Dao接口里的方法,参数不同时,方法能重载吗?
- Mybatis是如何进行分页的?分页插件的原理是什么?
- Mybatis是如何将sql执行结果封装为目标对象并返回的?都有哪些映射形式?
- 如何执行批量插入?
- 如何获取自动生成的(主)键值?
- Mybatis动态sql有什么用?执行原理?有哪些动态sql?
- Xml映射文件中,除了常见的select|insert|updae|delete标签之外,还有哪些标签?
- Mybatis的Xml映射文件中,不同的Xml映射文件,id是否可以重复?
- 为什么说Mybatis是半自动ORM映射工具?它与全自动的区别在哪里?
- MyBatis实现一对一有几种方式?具体怎么操作的?
- MyBatis实现一对多有几种方式,怎么操作的?
- Mybatis是否支持延迟加载?如果支持,它的实现原理是什么?
- Mybatis的一级、二级缓存:
- 什么是MyBatis的接口绑定?有哪些实现方式?
- 使用MyBatis的mapper接口调用时有哪些要求?
- 简述Mybatis的插件运行原理,以及如何编写一个插件。
Redis面试题
随着应用研发技术的不断成熟,Redis 缓存技术已经成为后台研发同学必备的能力之一。在很多公司面试的过程中,都必不可少地考察 Redis 知识点的掌握。
- 使用 Redis 有哪些好处?
- Redis 是单进程单线程的?
- Redis 的持久化机制是什么?各自的优缺点?
- Redis 常见异常问题和解决方案(雪崩,穿透...)
- redis 过期键的删除策略?
- 为什么 redis 需要把所有数据放到内存中?
- Redis 集群的主从复制模型是怎样的?
- Redis key 的过期时间和永久有效分别怎么设置?
MongoDB
- 什么是MongoDB ?
- MongoDB是由哪种语言写的?
- MongoDB的优势有哪些?
- 什么是数据库?
- 什么是集合?
- 什么是文档?
- MongoDB和关系型数据库术语对比图
- 什么是"mongod" ?
- "mongod"参数有什么?
- 什么是"mongo”?
- MongoDB哪个命令可以切换数据库?
- 什么是非关系型数据库?
- 非关系型数据库有哪些类型?
- 为什么用MOngoDB ?
- 在哪些场景使用MongoDB ?
- MongoDB中的命名空间是什么意思?
- 哪些语言支持MongoDB?
- 在MongoDB中如何创建一个新的数据库 ?
- 在MongoDB中如何查看数据库列表?
- MongoDB中的分片是什么意思?
- 如何查看使用MongoDB的连接?
- 什么是复制?
- 在MongoDB中如何在集合中插入-一个文档?
- 在MongoDB中如何除去-一个数据库?
- 在MongoDB中如何创建一个集合 ?
- 在MongoDB中如何查看一个已经创建的集合 ?
- 在MongoDB中如何删除一-个集合?
- 为什么要在MongoDB中使用分析器?
- MongoDB支持主键外键关系吗?
- MongoDB支持哪些数据类型?
- 为什么要在MongoDB中用"Code”数据类型?
- 为什么要在MongoDB中用" Regular Expression"数据类型?
- 为什么在MongoDB中使用"Object ID"数据类型?
- 如何在集合中插入一个文档?
- "ObjectID"有哪些部分组成?
- 在MongoDb中什么是索引?
- 如何添加索引?
- MongoDB有哪些可替代产品?
- 如何查询集合中的文档?
- 用什么方法可以格式化输出结果?
- 如何使用" AND"或"OR"条件循环查询集合中的文档?
- 在MongoDB中如何更新数据?
- 如何删除文档?
- 在MongoDB中如何排序?
- 什么是聚合?
- 在MongoDB中什么是副本集?
- Mongodb存储特性与内部原理?
MySQL 面试题
如今互联网行业用的最多就是 MySQL,然而对于高级 Web 面试者,尤其对于寻找 30k 下工作的求职者,很多 MySQL 相关知识点基本都会涉及,如果面试中,你的相关知识答的模糊和不切要点,基本大多稍好公司的面试官,基本也不会对你有兴趣,毕竟稍微量大的项目,最终都会让你去深入数据库,而且最终的大多瓶颈首先也会出现在数据库。
- L 相关存储引擎。
- MySQL 索引实现原理。
- MySQL 数据库锁。
- MySQL 的 SQL 调优。
- MySQL 分表分库全局 ID。
- Mysql的技术特点是什么?
- Heap表是什么?
- Mysql服务器默认端口是什么?
- 如何区分FLOAT和DOUBLE?
- 区分CHAR_LENGTH和LENGTH?
- 请简洁描述Mysql中InnoDB支持的四种事务隔离级别名称,以及逐级之间的区别?
- 在Mysql中ENUM的用法是什么?
- 如何定义REGEXP?
- CHAR和VARCHAR的区别?
- Mysql查询是否区分大小写?
- Mysql中有哪些不同的表格?
- 什么样的对象可以使用CREATE语句创建?
- 什么是通用SQL函数?
- MYSQL支持事务吗?
- mysql里记录货币用什么字段类型好
- Mysql中有哪几种锁?
- MYSQL数据库服务器性能分析的方法命令有哪些?
由于资料内容太多,平台篇幅限制,小编就展现了以上部分面试专题与资料,如需获取以下全部面试资料的同学,文章开头有免费领取地址哦,感谢配合与信任!福利再附赠:Spring源码100集学习视频 快快领取吧!
Spring源码100集学习视频