- 博客(16)
- 资源 (1)
- 收藏
- 关注
原创 JVM 四种引用
[size=medium]1. 强引用[/size]指通过普通方式创建一个对象,并把这个对象赋给一个引用变量。只要还有引用变量指向,就不会被JVM回收,即使在内存不足时。[size=medium]2. 软引用[/size]通过SoftReference实现。和强引用类似,区别是当内存不足时会被JVM回收。[code="java"]public sta...
2014-04-24 19:56:09 115
原创 PushbackInputStream 源码分析
扩展java.io.FilterInputStream,代表的是可放回输入流。用于根据特定字符来判断流类型或编码等。[size=medium]1. 内部存储:[/size][code="java"]protected byte[] buf; // 缓冲区,从底层流获取数据protected int pos; // 下一个要读取字节的位置protected vol...
2014-04-19 12:04:46 143
原创 NIO UDP 编程
和TCP的SocketChannel类似,UDP的[color=red]DatagramChannel[/color]能充分利用NIO的优势。服务端:Selector, [color=red]DatagramChannel[/color], ByteBuffer客户端:[color=red]DatagramChannel[/color], ByteBuffer区别:...
2014-04-17 23:18:09 214
原创 Kafka 安装和测试
[size=medium]1. 简介[/size]kafka (官网地址:[url]http://kafka.apache.org[/url])是一款分布式消息发布和订阅的系统,具有高性能和高吞吐率。[img]http://dl2.iteye.com/upload/attachment/0096/1014/758475a7-1c1b-3c60-a753-c04a6debec0d.j...
2014-04-15 10:31:04 469
原创 Spring AOP系列之五:后置通知
和前置通知类似,通过实现[color=red]org.springframework.aop.AfterReturningAdvice[/color]来完成后置通知:[code="java"]public class CarAfterAdvice implements AfterReturningAdvice { @Override // returnValue 方法返...
2014-04-14 08:59:58 123
原创 Spring AOP系列之四:前置通知
通过实现[color=red]org.springframework.aop.MethodBeforeAdvice[/color]来完成前置通知:[code="java"]public class CarBeforeAdvice implements MethodBeforeAdvice { @Override // method 目标类方法,args 方...
2014-04-13 21:28:21 125
原创 Spring AOP系列之三:环绕代理
通过实现[color=red]org.aopalliance.intercept.MethodInterceptor[/color]接口来实现环绕通知:[code="java"]public class CarAroundProxy implements MethodInterceptor { @Override public Object invoke(MethodInv...
2014-04-13 18:20:29 111
原创 Spring AOP系列之二:Java代理
通过Java代理的方式:汽车的代理,需要实现[color=red]java.lang.reflect.InvocationHandler[/color]接口[code="java"]public class CarJavaProxy implements InvocationHandler { private Object car; public void setCar...
2014-04-13 18:00:53 97
原创 Spring AOP系列之一:手动方式
AOP (Aspect Oriented Programming)面向切面编程,是对OOP (Object Oriented Programming)面向对象编程很好的补充,可以在不改变原始目标原型的情况下,动态地添加通用逻辑,完成业务逻辑和通用处理分离,实现解耦和利于扩展。首先看下手动方式,没有使用AOP代理:车辆接口:[code="java"]public in...
2014-04-13 17:44:05 89
原创 Eclipse TCP/IP Monitor 的使用
Eclipse自带的TCP/IP Monitor为我们检查请求和响应提供了方便。正常情况下,请求和响应走的流程是:i. 客户端 ----> 请求包 ----> 服务端:端口号 ii. 服务端:端口号 ----> 响应包 ---> 客户端经过Monitor拦截后,变成:i. 客户端 ----> 请求包 ----> TCP监视器:端口号 ii. TC...
2014-04-13 17:03:07 172
原创 BeanCopier系列之三:缓存BeanCopier提升性能
[url=http://czj4451.iteye.com/blog/1998750]BeanCopier系列之一:特性测试[/url][url=http://czj4451.iteye.com/blog/2044101]BeanCopier系列之二:使用Converter[/url]BeanCopier拷贝速度快,性能瓶颈出现在创建BeanCopier实例的过程中。所以,...
2014-04-12 18:14:13 374
原创 BeanCopier系列之二:使用Converter
[url=http://czj4451.iteye.com/blog/1998750]BeanCopier系列之一:特性测试[/url][url=http://czj4451.iteye.com/blog/2044150]BeanCopier系列之三:缓存BeanCopier提升性能[/url] 当源和目标类的属性类型不同时,不能拷贝该属性,此时我们可以通过实现Converter...
2014-04-12 17:36:30 360
原创 BeanCopier系列之一:特性测试
[url=http://czj4451.iteye.com/blog/2044101]BeanCopier系列之二:使用Converter[/url][url=http://czj4451.iteye.com/blog/2044150]BeanCopier系列之三:缓存BeanCopier提升性能[/url]cglib是一款比较底层的操作java字节码的框架。下面通过拷贝b...
2014-04-12 15:15:35 141
原创 NIO Socket 编程
Java NIO (Nonblocking IO)解决了常规IO的瓶颈:a. 服务端的监听操作会阻塞而无法处理其它事务。多线程方式受到线程池和系统资源的限制,同步操作将会变得复杂。多线程操作磁盘将会导致响应慢甚至死锁。b. 普通I/O通过Stream来操作,开发简单,但是对I/O的控制力弱c. 普通IO的读取或写入会在JVM内存和操作系统内存之间进行复制,开销较大。...
2014-04-11 22:48:32 135
原创 Linux安装JDK
[size=medium]1. 下载[/size][url]http://www.oracle.com/technetwork/java/javase/downloads/index.html[/url][img]http://dl2.iteye.com/upload/attachment/0095/8744/f0405064-4c6b-35ec-9a22-4fca077aa9cb...
2014-04-08 23:04:56 78
原创 myBatis系列之七:事务管理
[url=http://czj4451.iteye.com/blog/1976365]myBatis系列之一:搭建开发环境[/url][url=http://czj4451.iteye.com/blog/1980569]myBatis系列之二:以接口方式交互数据[/url][url=http://czj4451.iteye.com/blog/1982653]myBatis系列之三:增删改查...
2014-04-01 15:36:13 354
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人