转载

面试官问你分析过Mybatis源码吗?

面试官如此问你,丝毫不用慌张。 你只需:

微笑看着面试官,轻拍手掌,微微颔首,把手指伸进水还剩一半的一次性纸杯里,然后在桌子上缓缓写出“没有”两个字,对面试官说: “当然没有,分析Mybatis源码有什么用? 实际工作中根本用不到! 面试官问你分析过Mybatis源码吗?

在面试官惊愕的神情中,转身离去…

-------------- 以上大误 --------------

为什么面试都喜欢问原理、问源码?很多朋友都这么问我,我一般反问他们:如果不看源码,不懂原理,出了问题你怎么解决?他们的答案基本都是两个字:“搜索”。

在外界看来,程序员都很神秘,很牛逼,但我们自己清楚,许多同事最喜欢的就是复制、粘贴。出了问题,内问百度,外问Google。

某天关系 很好 的朋友问了我一个问题,他说:

为什么我传的是空字符串,但是用Mybatis的if标签判断该 空字符串 == 0  竟然是成立的

写了个最简单的demo来进行测试 ,输出结果如下

百度、Google都没有搜索到满意的答案,分析源码发现:

首先他会获取两个判断对象的类型,当拿一个字符串和一个数字判断的时候,因为类型不一样嘛,当mybatis发现,这个字符串是可以转换成数字的,那么就会把这个字符串转成数字,然后再和这个数字判断。

那么问题就来了,这个空字符串会转换成什么数字呢?

从源码的这个

1return s.length() == 0 ? 0.0D : Double.parseDouble(s);

就可以看出,这个空字符串,是会被转成0的。最终通过这个找到了解决方案,可见学会分析源码的重要性。

为了帮助大家学会分析源码,在借 (制) 别人的代码出现问题的时候,快速分析出问题所在,我们特邀前一线互联网资深架构师lison老师,为大家带来这堂 《MyBatis从青铜到王者之路》 ,从一段快速入门代码开始,解析MyBatis源码,从浅到深的剖析MyBatis的骨架和运行流程,不但能学习到大牛编写代码的经验和技巧,更能领略到面向对象设计原则和设计模式在源码中的运用。

公众号粉丝专享优惠29.9元

(按时学习之后还可以赚钱哦) 面试官问你分析过Mybatis源码吗?

10.29-10 .31 晚上8点 钟,复旦大学工程硕士、 高级架构师Lison老师 3天带你 MyBatis 从青铜到王者之路 面试官问你分析过Mybatis源码吗?

MyBatis 从青铜到王者之路

面试官问你分析过Mybatis源码吗?

10.29-10.31晚上8点准时直播

10月29日 20:00-22:00

MyBatis 快速入门

为什么不用JDBC?

怎么下载源码包?

MyBatis架构分析

你不得不知的设计原则

日志模块需求分析

适配器模式

日志模块类分析

代理模式

怎么样优雅的植入日志能力?

10月30日  20:00-22:00

数据源模块需求分析

工厂模式与数据源类图分析

数据库连接池核心类解析

获取连接和释放链接的算法分析

缓存模块需求分析

使用继承实现需求的尴尬

装饰器模式分析

缓存模块关键类分析

阻塞式缓存装饰器详解

CacheKey缓存的唯一标识

10月31日  20:00-22:00

反射模块需求分析

反射核心类分析

反射核心类实操

MyBatis 的核心运行流程

看源码的正确姿势

3天你可以学到什么?

你将会掌握怎么下载源码、怎么修改源码;然后学习MyBatis的架构设计和功能模块的划分,课程对MyBatis日志模块、数据源模块、缓存模块以及反射模块进行了深入的分析,不但能学习到源码中你必须了解的关于并发编程、提升性能的编程技巧和经验,更为重要的是领略外观模式、适配器模式、工厂模式、代理模式、装饰器模式等经典设计模式在源码中的运用;通过学习本课程,可以让自己的开发水平提升一个档次!

立即 发送暗号“ 666 ”添加小姐姐报名吧

面试官问你分析过Mybatis源码吗?

限时优惠,先到先得

面试官问你分析过Mybatis源码吗?

附赠Java架构进阶资料

“愿你一路披荆斩棘,收获黎明。”

原文  http://mp.weixin.qq.com/s?__biz=MzIxMjE5MTE1Nw==&mid=2653200277&idx=1&sn=8c668f60f9b71765e9ab999a91c4e68f
正文到此结束
Loading...