【性能提升神器】Covering Indexes

【性能提升神器】Covering Indexes

可能有小伙伴会问,Covering Indexes到底是什么神器呢?它又是如何来提升性能的呢?接下来我会用最通俗易懂的语言来进行介绍,毕竟不是每个程序猿都要像DBA那样深刻理解数据库,知道如何用以及如何用好神器才是最关键的。[……]

继续阅读

COUNT(*) vs COUNT(col)

COUNT(*) vs COUNT(col)

关于COUNT(*) vs COUNT(col)相信很多程序猿都不是很清楚他们的区别,无意中看到一篇非常经典的分析,醍醐灌顶啊,给大家分享下。虽然是英文,但语法之类的都还比较简单,大家应该都看得懂的。
最近朋友圈经常看到安利英文文档看不懂还做什么高级程序猿得文章,这里我就保留原滋原味,不翻译了,重点位置我会标注。
后面我也会专门写一篇关于覆盖索引(Covering Index )的文章。[……]

继续阅读

C++ STL算法系列1—count函数

C++ STL算法系列1—count函数

algorithm头文件定义了一个count的函数,其功能类似于find。这个函数使用一对迭代器和一个值做参数,返回这个值出现次数的统计结果。
编写程序读取一系列int型数据,并将它们存储到vector对象中,然后统计某个指定的值出现了多少次。[……]

继续阅读

Lombok介绍、使用方法、工作原理和总结

Lombok介绍、使用方法、工作原理和总结

我现在非常坚信一条理念,任何编程语言或插件,都仅仅只是工具而已,即使工具再强大也在于用的人,就如同小米加步枪照样能赢飞机大炮的道理一样。结合具体业务场景和项目实际情况,无需一味追求高大上的技术,适合的才是王道。
Lombok有它的得天独厚的优点,也有它避之不及的缺点,熟知其优缺点,在实战中灵活运用才是王道。[……]

继续阅读

Java transient关键字使用小记

Java transient关键字使用小记

我们都知道一个对象只要实现了Serilizable接口,这个对象就可以被序列化,java的这种序列化模式为开发者提供了很多便利,我们可以不必关系具体序列化的过程,只要这个类实现了Serilizable接口,这个类的所有属性和方法都会自动序列化。

然而在实际开发过程中,我们常常会遇到这样的问题,这个类的有些属性需要序列化,而其他属性不需要被序列化,打个比方,如果一个用户有一些敏感信息(如密码,银行卡号等),为了安全起见,不希望在网络操作(主要涉及到序列化操作,本地序列化缓存也适用)中被传输,这些信息对应的变量就可以加上transient关键字。换句话说,这个字段的生命周期仅存于调用者的内存中而不会写到磁盘里持久化。

总之,java 的transient关键字为我们提供了便利,你只需要实现Serilizable接口,将不需要序列化的属性前添加关键字transient,序列化对象的时候,这个属性就不会序列化到指定的目的地中。[……]

继续阅读