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

面试官如此问你,丝毫不用慌张。 你只需:
微笑看着面试官,轻拍手掌,微微颔首,把手指伸进水还剩一半的一次性纸杯里,然后在桌子上缓缓写出“没有”两个字,对面试官说: “当然没有,分析Mybatis源码有什么用? 实际工作中根本用不到! smiley_0.png
在面试官惊愕的神情中,转身离去…
-------------- 以上大误 --------------
为什么面试都喜欢问原理、问源码?很多朋友都这么问我,我一般反问他们:如果不看源码,不懂原理,出了问题你怎么解决?他们的答案基本都是两个字:“搜索”。
在外界看来,程序员都很神秘,很牛逼,但我们自己清楚,许多同事最喜欢的就是复制、粘贴。出了问题,内问百度,外问Google。
某天关系 很好 的朋友问了我一个问题,他说:

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

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

640 百度、Google都没有搜索到满意的答案,分析源码发现:
首先他会获取两个判断对象的类型,当拿一个字符串和一个数字判断的时候,因为类型不一样嘛,当mybatis发现,这个字符串是可以转换成数字的,那么就会把这个字符串转成数字,然后再和这个数字判断。
那么问题就来了,这个空字符串会转换成什么数字呢?

从源码的这个

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

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

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

公众号粉丝专享优惠29.9元

(按时学习之后还可以赚钱哦)2_02.png

10.29-10.31晚上8点钟,复旦大学工程硕士、高级架构师Lison老师3天带你 MyBatis从青铜到王者之路 640

MyBatis从青铜到王者之路

640?wx_fmt=png

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”添加小姐姐报名吧640

640?wx_fmt=jpeg

限时优惠,先到先得

640

附赠Java架构进阶资料

“愿你一路披荆斩棘,收获黎明。”
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值