写点什么

2021 秋招必刷题:Redis+Mybatis+MySQL+ 并发编程(1-5 年必看)

用户头像
Java架构师
关注
发布于: 20 小时前


​2021 年金三银四已过,金九银十马上就要来了,准备跳槽的同学是否都摩拳擦掌准备大面好几场,今天给大家准备了互联网面试必备(背)的 1-5 年 Java 面试者都需要掌握的面试题,内容为 Redis+Mybatis+MySQL+并发编程系列等等,掌握这些薪资涨个 10k 是没什么问题的!

今天给大家分享的都是现在主流企业使用频率最高的面试题库,也是 Java 版本升级之后,重新整理归纳的最新答案,会让面试者少走很多不必要的弯路。同时每个专题都做到了详尽的面试解析文档,以确保每个阶段的读者都能看得懂。

一、深入理解 Redis

  1. 什么是 Redis

  2. Redis 有哪些优缺点

  3. 为什么要用 Redis /为什么要用缓存

  4. 为什么要用 Redis 而不用 map/guava 做缓存?

  5. Redis 为什么这么快

  6. Redis 有哪些数据类型

  7. Redis 的应用场景

  8. 什么是 Redis 持久化?

  9. Redis 的持久化机制是什么?各自的优缺点?

  10. 如何选择合适的持久化方式

  11. Redis 持久化数据和缓存怎么做扩容?

  12. Redis 的过期键的删除策略

  13. Redis key 的过期时间和永久有效分别怎么设置?

  14. 我们知道通过 expire 来设置 key 的过期时间,那么对过期的数据怎么处理呢?

  15. Redis 的内存淘汰策略有哪些

  16. Redis 主要消耗什么物理资源?

  17. Redis 的内存用完了会发生什么?

  18. Redis 如何做内存优化?

  19. Redis 主从架构

  20. Redis 集群的主从复制模型是怎样的?

  21. 生产环境中的 redis 是怎么部署的?

  22. 说说 Redis 哈希槽的概念?

  23. Redis 集群会有写操作丢失吗?为什么?

  24. Redis 集群之间是如何复制的?

  25. Redis 集群最大节点个数是多少?

  26. Redis 集群如何选择数据库?



深入理解 Mybatis

  1. MyBatis 是什么?

  2. ORM 是什么

  3. 为什么说 Mybatis 是半自动 ORM 映射工具?它与全自动的区别在哪里?

  4. 传统 JDBC 开发存在的问题

  5. JDBC 编程有哪些不足之处,MyBatis 是如何解决这些问题的?

  6. Mybatis 优缺点

  7. MyBatis 框架适用场景

  8. Hibernate 和 MyBatis 的区别

  9. MyBatis 编程步骤是什么样的?

  10. 请说说 MyBatis 的工作原理

  11. MyBatis 的功能架构是怎样的

  12. MyBatis 的框架架构设计是怎么样的

  13. 为什么需要预编译

  14. 模糊查询 like 语句该怎么写

  15. 在 mapper 中如何传递多个参数

  16. Mybatis 如何执行批量操作

  17. 如何获取生成的主键

  18. 当实体类中的属性名和表中的字段名不-样,怎么办

  19. Mapper 编写有哪几种方式? .

  20. 什么是 MyBatis 的接绑定?有哪些实现方式?

  21. 使用 MyBatis 的 mapper 接口调用时有哪些要求?

  22. Mybatis 的 Xml 映射文件中,不同的 Xml 映射文件, id 是否可以重复?

  23. 简述 Mybatis 的 Xml 映射文件和 Mybatis 内部数据结构之间的映射关系?

  24. Mybatis 是如何将 sq|执行结果封装为目标对象并返回的?都有哪些映射形式?

  25. Xml 映射文件中,除了常见的 selectlinsertlupdaeldelete 标签之外,还有哪些标签?



深入理解 MySQL

  1. 为什么要使用数据库

  2. 什么是 SQL?

  3. 什么是 MySQL?

  4. 数据库三大范式是什么

  5. mysq|有关权限的表都有哪几个

  6. MySQL 的 binlog 有有几种录入格式?分别有什么区别?

  7. mysq|有哪些数据类型

  8. MySQL 存储引擎 MyISAM 与 InnoDB 区别

  9. MyISAM 索引与 InnoDB 索引的区别?

  10. InnoDB 引擎的 4 大特性

  11. 存储引擎选择

  12. 什么是索引?

  13. 索引有哪些优缺点?

  14. 索引使用场景(重点)

  15. 索引有哪几种类型?

  16. 索弓的数据结构(b 树, hash)

  17. 索引的基本原理

  18. 索引算法有哪些?

  19. 索引设计的原则?

  20. 创建索引的原则(重中之重)

  21. 创建索引的三种方式,删除索引

  22. 创建索引时需要注意什么?

  23. 使用索引查询-定能提高查询的性能吗?为什么

  24. 百万级别或以上的数据如何删除

  25. 前缀索引

  26. 什么是最左前缀原则?什么是最左匹配原则

  27. B 树和 B+树的区别

  28. 使用 B 树的好处

  29. 使用 B+树的好处

  30. Hash 索引和 B+树所有有什么区别或者说优劣呢?

  31. 数据库为什么使用 B+树而不是 B 树

  32. B +树在满足聚簇索引和覆盖索引的时候不需要回表查询数据,

  33. 什么是聚簇索引?何时使用聚簇索引与非聚簇索引

  34. 非聚簇索引一定会回表查询吗?

  35. 联合索引是什么?为什么需要注意联合索引中的顺序?



深入理解并发编程

  1. 为什么要使用并发编程(并发编程的优点)

  2. 并发编程有什么缺点

  3. 并发编程三要素是什么?在 Java 程序中怎么保证多线程的运行安全?

  4. 并行和并发有什么区别?

  5. 什么是多线程,多线程的优劣?

  6. 什么是线程和进程?

  7. 进程与线程的区别

  8. 什么是上下文切换?

  9. 守护线程和用户线程有什么区别呢?

  10. 如何在 Windows 和 Linux.上查找哪个线程 cpu 利用率最高?

  11. 什么是线程死锁

  12. 形成死锁的四个必要条件是什么

  13. 如何避兔线程死锁

  14. 说说线程的生命周期及五种基本状态?

  15. Java 中用到的线程调度算法是什么?

  16. 线程的调度策略

  17. 什么是线程调度器(Thread Scheduler)和时间分片(Time Slicing )?

  18. 请说出与线程同步以及线程调度相关的方法。

  19. sleep0 和 wait0 有什么区别?

  20. 你是如何调用 wait0 方法的?使用 if 块还是循环?为什么?

  21. 为什么线程通信的方法 wait0, notify0 和 notifyAll0 被定义在 Object 类里?

  22. 为什么 wait0, notify0 和 ntfifAll 必须在同步方法或者同步块中被调用?

  23. Thread 类中的 yield 方法有什么作用?

  24. 为什么 Thread 类的 sleep0 和 yield 0 方法是静态的?

  25. 线程的 sleep0 方法和 yield0 方法有什么区别?

  26. 如何停止一个正在运行的线程?

  27. Java 中 interrupted 和 isInterrupted 方法的区别?

  28. 什么是阻塞式方法?

  29. Java 中你怎样唤醒一个阻塞的线程?

  30. notify0 和 notifyAll0 有什么区别?

  31. 如何在两个线程间共享数据?

  32. Java 如何实现多线程之间的通讯和协作?

  33. 同步方法和同步块,哪个是更好的选择?

  34. 什么是线程同步和线程互斥,有哪几种实现方式?

  35. 在监视器(Monitor)内部,是如何做线程同步的?程序应该做哪种级别的同步?

  36. 如果你提交任务时,线程池队列已满,这时会发生什么

  37. 什么叫线程安全? servlet 是线程安全吗?

  38. 在 Java 程序中怎么保证多线程的运行安全?

  39. 你对线程优先级的理解是什么?

  40. 线程类的构造方法、静态块是被哪个线程调用的

  41. Java 中怎么获取一-份线程 dump 文件?你如何在 Java 中获取线程堆栈?

  42. 一个线程运行时发生异常会怎样?

  43. Java 线程数过多会造成什么异常?



由于资料内容太多,平台篇幅限制,小编就展现了以上部分面试专题与资料,如需获取以下全部面试资料的同学点击此处】即可获得

用户头像

Java架构师

关注

还未添加个人签名 2021.05.28 加入

还未添加个人简介

评论

发布
暂无评论
2021秋招必刷题:Redis+Mybatis+MySQL+并发编程(1-5年必看)