-
May 28, 2019
前言
弱类型语言的隐式类型转换是其立足之本,也是让程序员最头疼的特性,如果对其内部的类型转换规则不熟悉的情况下,往往导致线上出现始料不及的bug,比如众所周知的JavaScript中的“==”和“===”,最近在写Mybatis的dynamic SQL也遇到了这样的问题。
-
Mar 30, 2019
前言
这篇文章很早就打算写了,但是因为之前没有保存导致写了一半的文章丢失,后来在内部做技术分享的时候才想起来这件事,于是时隔几个月之后又重新整理了一下,分成了两篇文章,这篇文章主要想聊一下invokeinterface在JVM7和JVM8中的小区别,下一篇重点关注invokeinterface和invokevirtual的区别,由于个人技术水平有限,有些地方也不甚了解,只能将问题抛出,希望以后能有机会找到答案。
-
Feb 10, 2019
1. MySQL5.6的两种复制方式对比,这里只记录一些常见的,详细的请查阅原文
-
Dec 11, 2018
前言
最近在项目里搭建了一套DAO层的测试框架(也可以说是集成测试框架),数据库使用的H2,数据连接池与线上一样使用的Druid,为了保证test case之间彼此状态独立,需要保证transaction在test method后被rollback而不是commit,听起来很简单,但是过程还是遇到了一些H2的DataSource和Druid的DataSource的实现上的坑。
-
Dec 11, 2018
前言
上一篇文章提到了问题的起因,以及简单的介绍了invokeinterface,这篇文章着重于invokevirtual与invokeinterface的区别,同样,由于个人技术水平有限,有些问题暂时没有找到答案,仅在此将其列出。
-
Dec 11, 2018
问题起因:
收到线上告警,日志提示某条mapper中配置的SQL遇到org.apache.ibatis.ognl.NoSuchPropertyException
-
Oct 15, 2018
前言
Spring中支持三种注入方式,分别是构造器注入,属性注入,方法注入,这三者之间的优缺点本文不做阐述,有兴趣的可以参考这两篇文章,我觉得写的不错,Setter injection vs constructor injection ,浅谈spring为什么推荐使用构造器注入。
其中,构造器注入发生在createBeanInstance期间,而属性注入和方法注入则发生在populateBean期间,整个getBean的时序图大致如下:
-
Oct 15, 2018
JVM中对象的由object header+object instance+padding组成,而object header又由mark word以及klass pointer组成,其中klass pointer和padding是非必需的,后面将会由详细的解释。
-
Oct 14, 2018
分页的主要使用场景大致分为两种,一种是topN查询,这种在实时响应系统中比较常见,另一种是全量查询,在批处理系统中比较常见。
-
Jan 4, 2016
2015年很快就过去了。