写点什么

Java 入门,java 黑马程序员课后答案第二版第八章,如何成为杰出的程序员

用户头像
极客开源
关注
发布于: 刚刚

我朋友去年九月份换工作,简历投了很多大厂,美团、京东的 offer 都到手了。


阿里的面试进行到了第三轮,刚开始聊得还好,直到阿里面试官揪着 MyBatis 源码一直问,他自己 MyBatis 还是比较常用的,但是没深入看过源码,所以没回答好,结果可想而知了。


现在给大家分享一下阿里面试官问他的一些 mybatis 的部分题目:


  1. MyBatis 与 Hibernate 有哪些不同?

  2. Mybatis 源码中用了哪些设计模式?为什么要用这些设计模式?

  3. MyBatis 是如何为二级缓存动态添加日志、同步控制、阻塞、缓存淘汰策略等附加能力的?用了什么设计模式?

  4. Mybatis 动态 sql 是做什么的?都有哪些动态 sql?能简述一下动态 sql 的执行原理不?

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

  6. Mybatis 是否支持延迟加载?如果支持,它的实现原理是什么?


估计问你你也懵逼,对不对?但是 BAT 等一线互联网公司面试一定会涉及源码解析的问题。


为什么面试官这么喜欢问源码?程序员又为什么要去学源码呢?



学会看源码,可以让你拥有:


  1. 编写优雅、高效的代码经验;

  2. 提升微观的架构设计能力,重点在思维和理念;

  3. 解决工作中、学习中的各种疑难杂症;

  4. 学习大牛解决问题的思维。

怎样高效系统性的学习 Mybatis 呢?

从目前的情况来看,国内图书市场上没有介绍 MyBatis 的书籍,有的只是官方的 API 和少数的几篇博客文章,国外图书市场上的这类书籍也是凤毛麟角,这使得系统学习 MyBatis 困难重重


官方的 API 只是简单介绍了 MyBatis 有些什么功能和一些基本的使用方法,没有告诉我们如何用好,其中原理是什么,需要注意哪些问题,这显然是不够的。


有些文章虽然讲解得比较深入,但是内容支离破碎,没有形成一个完整的知识体系,不易于初学者对 MyBatis 进行系统学习。


随着移动互联网应用的兴起,系统掌握 MyBatis 编程技巧已经成了用 Java 构建移动互联网网站的必要条件


  1. mybatis 简介

  2. 搭建 MyBatis 源码环境

  3. JDBC 规范详解

  4. MyBatis 常用工具类

  5. MyBatis 核心组件介绍

  6. MyBatis 缓存

  7. MyBatis 日志实现

  8. 动态 SQL 实现原理

  9. MyBatis 插件原理及应用

  10. MyBatis 级联映射与懒加载

  11. MyBatis 与 Spring 整合案例

  12. MyBatis Spring 的实现原理


MyBatis 面试专题及答案
  1. 什么是 MyBatis?

  2. 讲下 MyBatis 的缓存

  3. Mybatis 是如何进行分页的?分页插件的原理是什么?

  4. 简述 Mybatis 的插件运行原理,以及如何编写一个插件?

  5. Mybatis 动态 sql 是做什么的?都有哪些动态 sql?能简述一下动态 sql 的执行原理不?

  6. .#{} 和 ${}的区别是什么?

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

  8. Mybatis 是否支持延迟加载?如果支持,它的实现原理是什么?

  9. MyBatis 与 Hibernate 有哪些不同?

  10. MyBatis 的好处是什么?

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

  12. 什么是 MyBatis 的接口绑定,有什么好处?

  13. 接口绑定有几种实现方式,分别是怎么实现的?

  14. 什么情况下用注解绑定,什么情况下用 xml 绑定?

  15. MyBatis 实现一对一有几种方式?具体怎么操作的?

  16. Mybatis 能执行一对一、一对多的关联查询吗?都有哪些实现方式,以及它们之间的区别?

  17. MyBatis 里面的动态 Sql 是怎么设定的?用什么语法?

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

  19. Xml 映射文件中,除了常见的 select|insert|updae|delete 标签之外,还有哪些标签?

  20. 当实体类中的属性名和表中的字段名不一样,如果将查询的结果封装到指定 pojo?


mybatis 思维导图
  1. 快速入门

  2. 主要配置文件

  3. 映射文件

  4. 映射关系

  5. 逆向工程

  6. 缓存

  7. mapper 代理

  8. 动态 SQL


最后

小编在这里分享些我自己平时的学习资料,由于篇幅限制,pdf 文档的详解资料太全面,细节内容实在太多啦,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!


开源分享:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】


程序员代码面试指南 IT 名企算法与数据结构题目最优解


这是” 本程序员面试宝典!书中对 IT 名企代码面试各类题目的最优解进行了总结,并提供了相关代码实现。针对当前程序员面试缺乏权威题目汇总这一-痛点, 本书选取将近 200 道真实出现过的经典代码面试题,帮助广“大程序员的面试准备做到万无一失。 “刷”完本书后,你就是“题王”!



《TCP-IP 协议组(第 4 版)》


本书是介绍 TCP/IP 协议族的经典图书的最新版本。本书自第 1 版出版以来,就广受读者欢迎。


本书最新版进行」护元,以体境计算机网络技不的最新发展,全书古有七大部分共 30 草和 7 个附录:第一部分介绍一些基本概念和基础底层技术:第二部分介绍网络层协议:第三部分介绍运输层协议;第四部分介绍应用层协议:第五部分介绍下一代协议,即 IPv6 协议:第六部分介绍网络安全问题:第七部分给出了 7 个附录。



Java 开发手册(嵩山版)


这个不用多说了,阿里的开发手册,每次更新我都会看,这是 8 月初最新更新的**(嵩山版)**



MySQL 8 从入门到精通


本书主要内容包括 MySQL 的安装与配置、数据库的创建、数据表的创建、数据类型和运算符、MySQL 函数、查询数据、数据表的操作(插入、更新与删除数据)、索引、存储过程和函数、视图、触发器、用户管理、数据备份与还原、MySQL 日志、性能优化、MySQL Repl ication、MySQL Workbench、 MySQL Utilities、 MySQL Proxy、PHP 操作 MySQL 数据库和 PDO 数据库抽象类库等。最后通过 3 个综合案例的数据库设计,进步讲述 MySQL 在实际工作中的应用。



Spring5 高级编程(第 5 版)


本书涵盖 Spring 5 的所有内容,如果想要充分利用这一领先的企业级 Java 应用程序开发框架的强大功能,本书是最全面的 Spring 参考和实用指南。


本书第 5 版涵盖核心的 Spring 及其与其他领先的 Java 技术(比如 Hibemate JPA 2.Tls、Thymeleaf 和 WebSocket)的集成。本书的重点是介绍如何使用 Java 配置类、lambda 表达式、Spring Boot 以及反应式编程。同时,将与企业级应用程序开发人员分享一些见解和实际经验,包括远程处理、事务、Web 和表示层,等等。



JAVA 核心知识点+1000 道 互联网 Java 工程师面试题




企业 IT 架构转型之道 阿里巴巴中台战略思想与架构实战


本书讲述了阿里巴巴的技术发展史,同时也是-部互联网技 术架构的实践与发展史。



本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

用户头像

极客开源

关注

还未添加个人签名 2021.03.18 加入

还未添加个人简介

评论

发布
暂无评论
Java入门,java黑马程序员课后答案第二版第八章,如何成为杰出的程序员