面试官如此问你,丝毫不用慌张。 你只需:
微笑看着面试官,轻拍手掌,微微颔首,把手指伸进水还剩一半的一次性纸杯里,然后在桌子上缓缓写出“没有”两个字,对面试官说: “当然没有,分析Mybatis源码有什么用? 实际工作中根本用不到! ”
在面试官惊愕的神情中,转身离去…
-------------- 以上大误 --------------
为什么面试都喜欢问原理、问源码?很多朋友都这么问我,我一般反问他们:如果不看源码,不懂原理,出了问题你怎么解决?他们的答案基本都是两个字:“搜索”。
在外界看来,程序员都很神秘,很牛逼,但我们自己清楚,许多同事最喜欢的就是复制、粘贴。出了问题,内问百度,外问Google。
某天关系 很好 的朋友问了我一个问题,他说:
为什么我传的是空字符串,但是用Mybatis的if标签判断该
空字符串 == 0
竟然是成立的
我 写了个最简单的demo来进行测试 ,输出结果如下 :
百度、Google都没有搜索到满意的答案,分析源码发现:
首先他会获取两个判断对象的类型,当拿一个字符串和一个数字判断的时候,因为类型不一样嘛,当mybatis发现,这个字符串是可以转换成数字的,那么就会把这个字符串转成数字,然后再和这个数字判断。
那么问题就来了,这个空字符串会转换成什么数字呢?
从源码的这个
1return s.length() == 0 ? 0.0D : Double.parseDouble(s);
就可以看出,这个空字符串,是会被转成0的。最终通过这个找到了解决方案,可见学会分析源码的重要性。
为了帮助大家学会分析源码,在借 ( 复 ) 鉴 (制) 别人的代码出现问题的时候,快速分析出问题所在,我们特邀前一线互联网资深架构师lison老师,为大家带来这堂 《MyBatis从青铜到王者之路》 ,从一段快速入门代码开始,解析MyBatis源码,从浅到深的剖析MyBatis的骨架和运行流程,不但能学习到大牛编写代码的经验和技巧,更能领略到面向对象设计原则和设计模式在源码中的运用。
公众号粉丝专享优惠29.9元
(按时学习之后还可以赚钱哦)
10.29-10 .31 晚上8点 钟,复旦大学工程硕士、 高级架构师Lison老师 3天带你 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 ”添加小姐姐报名吧
限时优惠,先到先得
▲ 附赠Java架构进阶资料
“愿你一路披荆斩棘,收获黎明。”