- 博客(16)
- 收藏
- 关注
转载 设计模式——策略模式
在项目中看到茫茫多的if else,相信每一个有追求的程序员都会有优化的欲望。策略模式就是一种很好的优化途径。刚好最近在项目中实践了一次策略模式,不敢说是最佳实践,但也算是个人的一次实践经验分享。场景如下: 业务需要将网络上来源不同的数据文件解析,然后将解析得到的数据插入数据库。那么代码在这里主要做3件事情: 1、解析数据,得到数据实体对象POJO1; 2、将得到的数据...
2018-10-17 01:02:00
96
转载 数据库——深入理解MySQL事务
关系型数据库为了满足ACID的特性,需要使用事务来对其进行保证,其中的D(持久性)需要调用fsync()函数将数据持久化到磁盘,就是俗称的“刷盘,这里只讨论MySQL最常用的存储引擎InnoDB以及MySQL5.6以及之后的版本。但是fsync()这种操作是比较昂贵的,一秒钟能进行几百次就不错了,为了提高数据库性能,就要尽量减少fsync()这种操作。MySQL是通过组提交(Grou...
2018-09-10 23:27:00
136
转载 Java Web框架——自己动手实现一个简化版的Spring IOC框架
一、序 只要是Java Web的开发者,相信没有不知道大名鼎鼎的Spring框架的。作为一个优秀的开源框架,Spring包含9大组件,如果想要通过源码去理解每一个组件,复杂度和所花费的时间都容易让人望而却步——笔者平时习惯阅读源码,但是在学习Spring这种级别的框架面前显然不是一个好选择。但是问题又来了,不阅读源码,如何深入理解Spring呢?笔者在搜索学习资料的时候在gith...
2018-08-19 22:48:00
214
转载 缓存——Redis和Memcache的对比
近来在吸收新知识和复习以前所学,但一直没有好好梳理一下。为了将“内化”所学,也是时候做个总结了。Redis和Memcache是当前缓存层讨论的最多解决方案。我们需要根据实际的使用场景来决定选择哪个。 Redis和Memcache本质上都是基于k/v实现的缓存,但是Memcache正如其名,依赖于内存,不支持数据的持久化,服务器关闭后数据丢失。而Redis在很多方面具备数据库的特...
2018-02-25 22:20:00
136
转载 设计模式——工厂方法&模版方法
Java的泛型一直是我比较感兴趣的部分,但是既然说起泛型,就不得不提到擦除。Java泛型是使用擦除实现的,使用泛型时,具体的类型信息都被“擦除”了。举个例子:List<String>和List<Integer>在运行时实际上都是相同的类型,都被擦除成了“原生的”类型,即List。 泛型类型参数将擦除到它的第一个边界,如List<T>将被擦除成...
2017-10-04 22:45:00
123
转载 Html2Image转换html成图片的一些坑
在将html转成图片这个领域,Html2Image这个工具使用率是不低的。但是这个工具有个明显的坑。 一、当你的html页面引入外部的CSS文件以及JS文件,生成的图片是无法带有这些动态效果的。也就是说,它不支持复杂的动态特性,只能支持写在html代码里的css效果。 二、当html代码里带有图片时,生成的程序必须有一定的等待时间,否则生成的图片就会是这样的如果你不想...
2017-08-14 17:30:00
3027
转载 【转载】深入理解HTTP Session
深入理解HTTP Sessionsession在web开发中是一个非常重要的概念,这个概念很抽象,很难定义,也是最让人迷惑的一个名词,也是最多被滥用的名字之一,在不同的场合,session一次的含义也很不相同。这里只探讨HTTP Session。为了说明问题,这里基于Java Servlet理解Session的概念与原理,这里所说Servlet已经涵盖了JSP技术,因...
2017-07-07 11:21:00
100
转载 Java异常-可能会出现异常丢失的情况&finally
finally的两种特性: 对于没有垃圾回收和析构函数自动调用机制的语言来说,Java中的finally非常重要。它能使程序员保证: 1、无论异常是否被抛出,finally子句总能被执行。这个特性我们可以用来解决以下问题:Java的异常不允许我们回到异常抛出的地点时,该如何应对?把try块放在循环里,建立了一个“程序继续执行之前必须要达到”的条件。还可以加入一个static类...
2017-05-21 16:07:00
209
转载 JVM内存调优——记一次本地开发环境JVM调优过程
近来开发用的电脑是一部内存4g,32位系统的Windows 7。在2017年,这样的配置可以说是非常朴素了(这里顺便赞扬下自己的艰苦奋斗精神)。同时在开发项目的时候,也不可避免的会遇到JVM内存溢出的尴尬。 通常,我们会在编译器得到一个错误信息如:java.lang.OutOfMemoryError:PermGenspace。按字面意思去理解就是我们的“永久代”(...
2017-05-12 23:03:00
376
转载 Java正则表达式——测试正则表达式的一个小工具
正则表达式是一种强大而灵活的文本处理工具。使用它我们能以编程的方式,构造复杂的文本模式,并对输入的字符串进行搜索。一旦找到了匹配这些模式的部分,你就能够随心所欲地对它们进行处理。 关于正则表达式的语法,网上对此有介绍的文章实在是多不胜数,实在找不到,还可以查看Java的API文档,就不多介绍了。这里主要介绍一个可以测试正则表达式的小工具。直接上代码: 1 packa...
2017-03-28 22:41:00
154
转载 Java内部类——闭包与回调
前些天研究单例模式时看到了静态内部类,感觉对于内部类的理解还不是很清晰透彻,于是重新翻了下书和网上的资料关于Java内部类的资料。整理如下:内部类是什么: “可以将一个类的定义放在另一个类的定义内部,这就是内部类”——这是《Thinking in Java》的解释。在最初,内部类看起来就像是一种代码隐藏机制,但不仅如此,它还能与外围类通信,并持有其引用。为什么需要内部类:...
2017-03-02 20:01:00
139
转载 Java容器&数据结构——总结&迭代器与适配器
对于容器类库,Java使用者都不会陌生。“温故而知新,可以为师矣。”,我们仍然有必要对于这个日复一日使用的工具进行更深入的了解。这里仅对前段时间针对“容器”的学习做一个总结。 Java提供了大量的持有对象的方式: 1)数组将数字与对象联系起来。它保存类型明确的对象,查询时,不需要对结果做类型转换,可以是多维的,可以保存基本类型的数据。但是,数组一旦生成,容量就不能改变了。...
2017-03-02 13:04:00
148
转载 Java容器&数据结构——栈
“栈”通常指“后进先出”的(LIFO)容器。本文将分别介绍基于LinkedList和不依赖LinkedList的两种实现方法。 友情提示:这里,我假设读者已经了解泛型,内部类,LinkedList容器以及递归的概念,如果没有,可能会对您的理解造成一点不便。一、基于LinkedList的实现 在Java中,LinkedList具有能够实现栈的所有功能的方法,因此可以将L...
2017-03-02 12:59:00
222
转载 设计模式——单例模式
关于基本的懒汉式,饿汉式等写法网上介绍多如牛毛,这里不再赘述,直接讨论加了volatile关键字的双重锁(Double check),静态内部类以及枚举等写法,如有不对,恳请读者指出,欢迎讨论。1.加了volatile关键字的双重锁:public class Singleton { private static volatile Singleton sin...
2017-02-21 23:01:00
92
转载 selenium框架与chrome浏览器的不兼容问题
在一次偶然的情况下,在chrome上用selenium框架去抓取某个id为XX的页面元素,使用WebDriver的findElement().click()方法进行点击,原来在firefox浏览器运行得好好的程序报错了。编译器给报了InvocationTargetException,有点经验的coder都知道,这个异常范围太广了,并且最蛋疼的是不给出任何异常信息(Stacktrace...
2016-07-10 00:04:00
232
转载 【转载】web.xml中的url-pattern映射规则
web.xml中的url-pattern映射规则(转自棂枫)这几天在做web项目分页的时候用到了过滤器,在配置web.xml文件时没搞明白映射,于是看到了博主的这篇文章,特意在这里分享一下,以下是正文Servlet和filter是J2EE开发中常用的技术,使用方便,配置简单。servlet和filter中的url-pattern有一些文章在里面的,总结了一些东西,以免遇...
2016-03-20 10:50:00
88
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人