摘要:
一、序 只要是Java Web的开发者,相信没有不知道大名鼎鼎的Spring框架的。作为一个优秀的开源框架,Spring包含9大组件,如果想要通过源码去理解每一个组件,复杂度和所花费的时间都容易让人望而却步——笔者平时习惯阅读源码,但是在学习Spring这种级别的框架面前显然不是一个好选择。但是问题 阅读全文
摘要:
在项目中看到茫茫多的if else,相信每一个有追求的程序员都会有优化的欲望。策略模式就是一种很好的优化途径。刚好最近在项目中实践了一次策略模式,不敢说是最佳实践,但也算是个人的一次实践经验分享。场景如下: 业务需要将网络上来源不同的数据文件解析,然后将解析得到的数据插入数据库。那么代码在这里主要做 阅读全文
摘要:
关系型数据库为了满足ACID的特性,需要使用事务来对其进行保证,其中的D(持久性)需要调用fsync()函数将数据持久化到磁盘,就是俗称的“刷盘,这里只讨论MySQL最常用的存储引擎InnoDB以及MySQL5.6以及之后的版本。但是fsync()这种操作是比较昂贵的,一秒钟能进行几百次就不错了,为 阅读全文
摘要:
近来在吸收新知识和复习以前所学,但一直没有好好梳理一下。为了将“内化”所学,也是时候做个总结了。Redis和Memcache是当前缓存层讨论的最多解决方案。我们需要根据实际的使用场景来决定选择哪个。 Redis和Memcache本质上都是基于k/v实现的缓存,但是Memcache正如其名,依赖于内存 阅读全文
摘要:
Java的泛型一直是我比较感兴趣的部分,但是既然说起泛型,就不得不提到擦除。Java泛型是使用擦除实现的,使用泛型时,具体的类型信息都被“擦除”了。举个例子:List<String>和List<Integer>在运行时实际上都是相同的类型,都被擦除成了“原生的”类型,即List。 泛型类型参数将擦除 阅读全文
摘要:
在将html转成图片这个领域,Html2Image这个工具使用率是不低的。但是这个工具有个明显的坑。 一、当你的html页面引入外部的CSS文件以及JS文件,生成的图片是无法带有这些动态效果的。也就是说,它不支持复杂的动态特性,只能支持写在html代码里的css效果。 二、当html代码里带有图片时 阅读全文
摘要:
深入理解HTTP Session session在web开发中是一个非常重要的概念,这个概念很抽象,很难定义,也是最让人迷惑的一个名词,也是最多被滥用的名字之一,在不同的场合,session一次的含义也很不相同。这里只探讨HTTP Session。 为了说明问题,这里基于Java Servlet理解 阅读全文
摘要:
finally的两种特性: 对于没有垃圾回收和析构函数自动调用机制的语言来说,Java中的finally非常重要。它能使程序员保证: 1、无论异常是否被抛出,finally子句总能被执行。这个特性我们可以用来解决以下问题:Java的异常不允许我们回到异常抛出的地点时,该如何应对?把try块放在循环里 阅读全文
摘要:
近来开发用的电脑是一部内存4g,32位系统的Windows 7。在2017年,这样的配置可以说是非常朴素了(这里顺便赞扬下自己的艰苦奋斗精神)。同时在开发项目的时候,也不可避免的会遇到JVM内存溢出的尴尬。 通常,我们会在编译器得到一个错误信息如: java.lang.OutOfMemoryErro 阅读全文
摘要:
正则表达式是一种强大而灵活的文本处理工具。使用它我们能以编程的方式,构造复杂的文本模式,并对输入的字符串进行搜索。一旦找到了匹配这些模式的部分,你就能够随心所欲地对它们进行处理。 关于正则表达式的语法,网上对此有介绍的文章实在是多不胜数,实在找不到,还可以查看Java的API文档,就不多介绍了。这里 阅读全文