自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(132)
  • 资源 (1)
  • 收藏
  • 关注

原创 java常用数据结构类图

2015-04-05 19:56:18 3022

原创 Spring IoC容器构建过程分析(二)(草稿,持续整理中)

接上一篇的内容:

2014-07-12 17:17:36 5796 1

原创 Spring IoC容器构建过程分析(一)

ApplicationContext是spring IoC容器的顶级接口,其类结构图如下:

2014-07-09 22:26:55 6888 2

原创 Spring的BeanFactoryPostProcessor和BeanPostProcessor

BeanFactoryPostProcessor和BeanPostProcessor都是Spring初始化bean时使用扩展点

2014-06-28 11:20:15 69174 37

原创 spring的PropertyPlaceholderConfigurer和PropertyOverrideConfigurer

spring的PropertyPlaceholderConfigurer和PropertyOverrideConfigurer,类图如下:

2014-06-27 22:39:57 2488

原创 Executors提供的四种线程池

newCachedThreadPool创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程。newFixedThreadPool 创建一个定长线程池,可控制线程最大并发数,超出的线程会在队列中等待。newScheduledThreadPool 创建一个定长线程池,支持定时及周期性任务执行。newSingleThreadExecutor 创建一个单

2014-06-14 22:28:44 8250

原创 linux vi命令学习

一、查找 查找命令 /pattern :向下查找pattern匹配字符串 ?pattern:向上查找pattern匹配字符串 使用了查找命令之后,使用如下两个键快速查找: n:按照同一方向继续查找 N:按照反方向查找

2014-04-05 10:27:51 1141

转载 堆内存的分配和回收步骤

本文摘自公司牛人的分享。                                                                    堆内存的分配和回收步骤【一些基础知识】-Xms:为jvm启动时分配的内存,比如-Xms200m,表示分配200M。(一般该值设置与-Xmx相同,以避免每次垃圾回收完成后JVM重新分配内存。-Xms设置的内存,不包含持

2014-03-14 23:19:48 4818

原创 spring集成ibatis,涉及到的一些核心类

近期研究了下spring集成ibatis,涉及到的一些核心类,下面一个图大体的描述了这些类之间的一些关系:

2014-02-16 20:12:48 2299

原创 ibatis配置文件解析过程中对DTD的加载处理

一、背景知识    使用JAXP(Java API for XML Parsing)来解析XML文档,支持基于对象和基于事件的两种解析方式。基于对象的解析,目前只支持W3C DOM解析,基于事件的解析,只有SAX解析模式被支持。    SAX是一种基于事件的解析模式,解析文档的时候,当遇到开始标签,结束标签或字符等,SAX都会产生相应的事件。一个SAX解释器解析XML文档的

2014-02-16 19:57:05 6945

原创 linux curl命令

curl是利用URL语法在命令行方式下工作的文件传输工具。该命令的语法格式:curl [options...] 该命令提供了很多选项,可以通过这个命令,获取详细的帮助信息:curl -h下面列出其中一些参数的使用:1、访问http页面内容,输出到标准输出# curl http://www.neocanable.com2、将结果输出到文件中,参数-o,指定具体的文

2013-10-17 19:03:01 12692

原创 linux xargs命令

查看xargs命令的帮助文档:man xags结果如下:NAME       xargs - build and execute command lines from standard inputSYNOPSIS       xargs [-0prtx] [-E eof-str] [-e[eof-str]] [--eof[=eof-str]] [--null] [-d deli

2013-08-24 11:15:51 2644

转载 Git常用命令备忘

git常用命令:http://robbinfan.com/blog/34/git-common-command

2013-07-14 20:33:11 1428

转载 几种经典的网络服务器架构模型的分析与比较

本文转自:http://blog.jobbole.com/42895/                                    几种经典的网络服务器架构模型的分析与比较前言事件驱动为广大的程序员所熟悉,其最为人津津乐道的是在图形化界面编程中的应用;事实上,在网络编程中事件驱动也被广泛使用,并大规模部署在高连接数高吞吐量的服务器程序中,如 http 服务器程序、ftp

2013-07-10 19:55:51 1639

原创 设计模式之五:单例模式

《Head First设计模式》第五章学习笔记一、单例模式    单例模式:确保一个类只有一个实例,并提供一个全局访问点。    在java中实现单例模式,需要:私有的构造器、一个静态变量和一个静态方法。类图如下:二、单例模式实现  实现方式一:不考虑多线程情况public class Singleton { priv

2013-06-23 11:07:16 1517 2

原创 读书《浪潮之巅》

《浪潮之巅》是一本很不错的书籍,目前正在阅读中。unix的发展史:1) unix传奇(上篇) http://blog.csdn.net/haoel/article/details/15423402) unix传奇(下篇) http://blog.csdn.net/haoel/article/details/15423533) unix 40年 http://blog.csdn.ne

2013-06-15 12:18:53 1313

原创 JDBC学习

java的持久层,与数据库打交道,其实最终的底层实现都是通过JDBC相关的接口和类来完成。JDBC,主要涉及以下一些主要的接口和类:1、java.sql.DriverManager:管理一组JDBC驱动程序的基本服务。该类包以下几个主要的方法:1)registerDriver(java.sql.Driver driver):向DriverManager注册给定的驱动程序。通常,

2013-06-01 19:00:24 1273

转载 Servlet 中文乱码问题及解决方案剖析

看到一个很不错的文章,就转载了。本文转自:http://blog.csdn.net/xiazdong/article/details/7217022 一、常识了解1.GBK包含GB2312,即如果通过GB2312编码后可以通过GBK解码,反之可能不成立;2.java.nio.charset.Charset.defaultCharset() 获得平台默认字符编码;3.getByt

2013-06-01 08:32:13 1362

原创 设计模式之四:工厂模式(简单工厂、工厂方法、抽象工厂)

《Head First设计模式》第四章学习笔记一、设计原则   要依赖抽象,不要依赖具体类。当你直接实例化一个对象时,就是在依赖它的具体类。   如果有一个不像是会改变的类,那么在代码中直接实例化具体类也就没什么大碍。二、工厂模式、简单工厂模式   简单工厂模式:就是由一个类的方法(可以是静态方法)根据传入的参数,决定创建出哪一种具体产品类的实例。   简单工厂其实不是

2013-05-25 16:04:15 2324

原创 设计模式之三:装饰器模式

《Head First设计模式》第三章学习笔记一、设计原则    类应该对扩展开放,对修改关闭。即开放-关闭原则(OCP)。    我们的目标是允许类容易扩展,在不修改现有代码的情况下,就可以搭配新的行为。二、装饰器模式    装饰器模式:动态地将责任附加到对象上。若要扩展功能,装饰器提供了比继承更有弹性的替代方案。类图如下:从上面类图可以看出,在装饰器模式

2013-05-05 08:40:44 1650

原创 设计模式之二:观察者模式

《Head First设计模式》第二章学习笔记一、OO基础:     抽象二、OO原则:     为交互对象之间的松耦合设计而努力三、观察者模式      观察者模式,又叫发布--订阅模式、模型--视图模式、源--监听器模式或从属者模式。观察者模式定义了对象之间的一对多依赖,这样一来,当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新。主

2013-04-17 20:46:05 1438

转载 linux grep命令

1.  grep中应用正则表达式的实例:    需要说明的是下面所涉及的正则表达式在上一篇中已经给出了详细的说明,因此在看下面例子的时候,可以与前一篇的正则说明部分结合着看。    /> cat testfile    northwest        NW      Charles Main           3.0     .98     3       34    west

2013-04-14 18:20:29 1161

转载 linux shell正则表达式

Linux Shell环境下提供了两种正则表达式规则,一个是基本正则表达式(BRE),另一个是扩展正则表达式(ERE)。    下面是这两种表达式的语法列表,需要注意的是,如果没有明确指出的Meta字符,其将可同时用于BRE和ERE,否则将尽适用于指定的模式。正则元字符模式含义用例\通常用于关闭其后续字符的特殊意义,恢复其原意。

2013-04-14 17:25:07 1386

原创 设计模式之一:策略模式

《Head First设计模式》第一章学习笔记一、OO基础:  抽象、  封装、  多态、  继承二、OO原则:1、封装变化     1)找出应用中可能需要变化之处,把它们独立出来,不要和那些不需要变化的代码混在一起。   换句话说:把会变化的部分取出并封装起来,以便以后可以轻易的改动或扩充此部分,而不影响不需要变化的其他部分。     2)所有的模式都提供了一套方法,

2013-04-06 15:59:48 1847

原创 linux top命令

top命令经常用来监控linux的系统状况,比如cpu、内存的使用等。top命令执行结果如下图所示:top前五行统计信息第一行:15:48:01表示当前系统时间。up 391 days, 22:56表示系统已经运行了391天22小时56分钟(在这期间没有重启过)1 users表示当前有1个用户登录系统load aver

2013-04-05 16:33:11 1741

原创 java io

左边字节流,右边字符流java io,使用了装饰器模式,已输入流为例:InputStream,是装饰器模式中的抽象组件;FileInputStream、ByteArrayInputStream、ObjectInputStream等类是具体的组件,可以被其他装饰器包装起来;FilterInputStream,是一个抽象的装饰器;BufferedInputStream、Data

2013-03-28 20:07:56 1708

转载 Java程序员应该知道的10个调试技巧

本文转自:http://soft.chinabyte.com/database/273/12553773.shtml    Java程序员应该知道的10个调试技巧      调试不仅可以查找到应用程序缺陷所在,还可以解决缺陷。对于Java程序员来说,他们不仅要学会如何在Eclipse里面开发像样的程序,更需要学会如何调试程序。本文介绍了Java程序员必知的10个调试技巧,保证让你受益匪浅!

2013-03-06 07:39:53 1621

原创 Spring容器中的Bean几种初始化方法和销毁方法的先后顺序

Spring 容器中的 Bean 是有生命周期的,Spring 允许 Bean 在初始化完成后以及销毁前执行特定的操作。下面是常用的三种指定特定操作的方法:通过实现InitializingBean/DisposableBean 接口来定制初始化之后/销毁之前的操作方法;通过 元素的 init-method/destroy-method属性指定初始化之后 /销毁之前调用的操作方法;在指定方法

2013-03-03 17:10:34 81258 1

原创 awk入门

awk简介    awk是一种用于处理文本、模式匹配的编程语言。与sed和grep,俗称Linux下的三剑客。    awk将文本文件视为由字段和记录组成的文本数据库。它将输入解析成多个记录,默认情况下,记录的分隔符是\n,因此可以认为一行就是一个记录,记录的分隔符可以通过内置变量RS更改。当记录匹配某个pattern时,才会执行后续的action命令。而每个记录由进一步地被分隔成多个字段

2013-01-12 15:08:33 1569

转载 又一篇深入分析ConcurrentHashMap的文章

本文转自:http://www.infoq.com/cn/articles/ConcurrentHashMap之前的一篇文章是:http://blog.csdn.net/caihaijiang/article/details/7435828线程不安全的HashMap因为多线程环境下,使用HashMap进行put操作会引起死循环,导致CPU利用率接近100%,所以在并发情

2012-11-24 14:50:16 2077

转载 可重入与线程安全

本文转自:http://zh.wikipedia.org/wiki/%E5%8F%AF%E9%87%8D%E5%85%A5若一个程序或子程序可以“安全的被并行执行(Parallel computing)”,则称其为可重入(reentrant或re-entrant)的。即当该子程序正在运行时,可以再次进入并执行它(并行执行时,个别的执行结果,都符合设计时的预期)。可重入概念是在单线程

2012-11-10 10:11:29 1165

原创 性能相关

术语:TPS:Transaction Per Second,代表每秒钟系统能够处理的事务的数量。Load:系统平均负载,被定义为在特定时间间隔内运行队列中的平均进程数QPS:Query Per Second 每秒钟内完成的请求数量,是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准RT:Response Time,单个请求的响应时间公式:1. 单线程的情况下,QP

2012-08-12 10:36:15 1135

转载 java.lang.String的substring、split方法引起的内存问题

本文大部分内容,摘自下面两篇文章:           http://blog.xebia.com/2007/10/04/leaking-memory-in-java/、            http://www.iteye.com/topic/626801先用一个极端例子说明String的substring方法引起的OutOfMemoryError问题:public cla

2012-07-15 13:51:24 8074 1

原创 MAT分析JAVA内存问题

Java的内存泄露多半是因为对象被遗留在全局的HashMap中得不到释放,如果发现Java应用程序占用的内存出现了泄露的迹象,那么我们一般采用下面的步骤分析:    1. 把Java应用程序使用的heap dump下来    2. 使用Java heap分析工具(如MAT),找出内存占用超出预期的嫌疑对象    3. 根据情况,分析嫌疑对象和其他对象的引用关系。    4. 分析程

2012-07-13 20:28:49 16740

原创 mysql函数

函数IFNULL语法:IFNULL(expr1,expr2)    功能:如果expr1不是NULL,IFNULL()返回expr1,否则它返回expr2。 IFNULL()返回一个数字或字符串值,取决于它被使用的上下文环境。     函数IF语法:IF(expr1,expr2,expr3)          功能:如果expr1是TRUE(expr1NULL)

2012-05-20 19:26:47 1269

原创 使用JSR303进行参数校验

JSR 303 – Bean Validation 是一个数据验证的规范。在任何时候,当你要处理一个应用程序的业务逻辑时,必须要考虑数据校验,确保输入进来的数据从语 义上来讲是正确的。在通常的情况下,应用程序是分层的,不同的层由不同的开发人员来完成。很多时候同样的数据验证逻辑会出现在不同的层,这样就会导致代码冗余、不利于维护等问题。使用Bean Validation,将验证逻辑与相应的域模型进

2012-04-15 19:52:07 14799 1

原创 Spring事件体系

Spring事件体系包括三个组件:事件,事件监听器,事件广播器。事件:ApplicationEvent事件监听器:ApplicationListener,对监听到的事件进行处理。事件广播器:ApplicationEventMulticaster,将Springpublish的事件广播给所有的监听器。Spring在ApplicationContext接口的抽象实现

2012-04-14 16:22:33 15474 3

原创 Java并发集合类

在Java类库中出现的第一个关联的集合类是 Hashtable。 Hashtable 提供了一种易于使用的、线程安全的、关联的map功能。然而,线程安全性付出代价是――Hashtable 的所有方法都是同步的。Hashtable 的后继者HashMap 是作为JDK1.2中的集合框架的一部分出现的,它通过提供一个不同步的基类和一个同步的包装器Collections.synchronizedMap

2012-04-08 11:16:55 8101

转载 探索 ConcurrentHashMap 高并发性的实现机制

今天看到“探索 ConcurrentHashMap 高并发性的实现机制”这篇文章,感觉很不错,所以转过来收藏。                                        探索 ConcurrentHashMap 高并发性的实现机制简介ConcurrentHashMap 是 util.concurrent 包的重要成员。本文将结合 Java 内存模型,分析 JDK 源

2012-04-07 19:18:43 2134 2

原创 TCP状态

在使用命令 netstat -a时,可以看到结果中,有一列state,该列的值,通常有:ESTABLISHED、CLOSE_WAIT、TIME_WAIT等。这些值,都是TCP的一些状态。TCP初始化连接以及连接关闭时,均涉及到状态的变迁。TCP三次握手,初始化连接:客户端向服务器端发SYN包,然后服务器端返回ACK/SYN包给客户端,客户端收到回复之后,再发向服务器端发送ACK包,连接正式

2012-03-18 10:07:06 3911

Spring框架的设计理念与设计模式分析之一

Spring作为现在最优秀的框架之一,被广泛的使用并有很多对其分析的文章。本文将从另外一个视角试图剖析出Spring框架的作者设计Spring框架的骨骼架构的设计理念,有那几个核心组件?为什么需要这些组件?它们又是如何结合在一起构成Spring的骨骼架构?Spring的AOP特性又是如何利用这些基础的骨骼架构来工作的?Spring中又使用了那些设计模式来完成它的这种设计的?它的这种设计理念对对我们以后的软件设计有何启示?本文将详细解答这些问题。

2010-10-04

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除