自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(56)
  • 问答 (1)
  • 收藏
  • 关注

AKKA 学习(三)--- AKKA 2.3 理解 Actor

      上一节的Actor系统解释了Actor的层次和构建的应用程序的最小单元。本节着眼于单独的一个Actor,解释为了实现它你需要了解的概念。更深入的详细信息,请参阅Actors (Scala)和无类型的Actor(JAVA)(链接暂时缺失)。       一 个Actor包含状态(State),行为(Behavio),邮箱(Mailbox),子Actor(Children)和监管策略 (...

2014-10-25 19:04:25 167

AKKA 学习(二)--- AKKA 2.2 Actor 系统

     Actor是封装了状态和行为的对象,它们仅仅通过交换消息(messages)实现相互通信。这些消息被放置到收件人的邮箱(mailbox)中。从某种意义上说,Actor是面向对象编程的最严格的形式,同时它让人更好理解它们:考虑使用Actor的解决方案,假设一群人,并指派子任务给他们,按照他们的职能作用将他们划分到一个组织结构中,并且需要思考如何处理失败的场景(所有不实际与人打交道的,这意...

2014-10-09 08:44:28 195

AKKA 学习(一)--- AKKA 2.1 术语和概念

首先简单介绍一下 AKKA:Akka是一个开发库和运行环境,可以用于构建高并发、分布式、可容错、事件驱动的基于JVM的应用。使构建高并发的分布式应用更加容易。有兴趣的童鞋可以看看官网 ,本系列翻译至它2.3.6版本的文档 , 前面的介绍、特性、使用安装就不说了,从第二章开始。在本章中,我们尝试建立一些共同的术语,来为akka的目标并发和分布式系统的交流打一个坚实基础。值得注意的是,...

2014-10-07 12:42:13 162

Apache Commons Pipeline 使用学习(二)

 接上篇:Apache Commons Pipeline 使用学习(一) stage生命周期     当pipeline组装、运行的时候,每个stage通常是在它自己的线程中运行(pipeline的所有线程由同一个JVM实例所拥有)。这种多线程的方法在多处理器系统中有处理上的优势。对于给定的stage,各种stage的方法按照顺序运行: init(), preprocess(...

2014-10-06 15:57:02 950

原创 Apache Commons Pipeline 使用学习(一)

本系列源于对commons-pipeline 使用的学习: 首先是:翻译官方文档 本文是针对使用 Apache Commons Pipeline工作流程框架的基础介绍,本文档目标读者为需要组装现有stages或编写自己的stages的开发人员。该项目提供了一个Java类库旨在提升使用和重用模块化的stage的易用性。 一、Pipeline结构:Stages:st...

2014-10-06 14:31:00 1273

OGNL & MVEL &java调用 性能误解

一、OGNL & MVEL关于OGNL的使用参见: http://www.ibm.com/developerworks/cn/opensource/os-cn-ognl/关于MVEL的使用参见:http://mvel.codehaus.org/Getting+Started+for+2.0 二、性能关于OGNL&MVEL两者的性能一开始看到 http://mv...

2014-07-08 20:29:54 1006

原创 apache+mod_jk+tomcat(jboss) 架构连接池相关配置解读及原则

         在实际使用apache+mod_jk+tomcat(jboss) 架构的过程中,时常碰到对各处连接池数设置含义不清楚,设置错误,导致故障。本文集中讲述连接池相关内容:一、apache在 apache 2.0 中,引入了影响性能的最核心模块:MPM(multi‐processing‐modules), MPM包含多种工作模式,MPM={beos|worker|pre...

2014-06-28 19:12:29 160

mod-jk 迁移mod-proxy URL decode 问题记录

问题描述:   之前系统使用mod-jk+ajp协议链接apache+tomcat。正常请求  http://xxx.com/show.htm 在某一处转义为:http://xxx.com/sho%2577.htm 。这样的链接。并且可以正常访问。   迁移mod-proxy之后转义之后的URL不能访问。 原因: 1、mod-jk  1.2.23 以下的版本默认会做一...

2014-05-27 20:50:23 116

spring 3+ fastjson bug 记录

场景描述: 使用fastjson的JSON.toJSONString(Domain)的时候,如果Domain中有字段是通过spring proxy出来的,在spring3以上版本会报错,spring3以下不受影响:代理代码如下:  ProxyFactory proxy = new ProxyFactory(Manager); proxy.addAdvi...

2014-05-08 09:44:55 239

EXT JS 4 Store Filter 在下拉框中,第一次不生效

问题记录: 在extjs 4,使用combox的store的filter,但是第一次始终不起作用,第二次开始正常。 解决办法如下:http://docs.sencha.com/extjs/4.0.7/#!/api/Ext.form.field.ComboBox-property-lastQuery 即添加:  queryMode: 'local', ...

2014-04-07 19:16:56 391

jboss 4.5 迁移到 jboss 7 cookie 特殊字符 问题记录

一、背景:    公司最近将jboss的版本从4.5 升级到7,之后发现从cookie中,获取不到用户的信息了。经过debug发现,保存用户信息的cookie,在request.getCookie()之后就是被截断了。本来是 key=x_l=1&x_locale=zh_CN&no_popup_today=n&user=xxx|xxx|xxx|xxx|xxx&am...

2014-01-01 16:20:07 430

原创 JAVA 8 :从永久区(PermGen)到元空间(Metaspace)

本文系翻译:原文地址你注意到了吗?JDK 8早期可访问版本已经提供下载了,java 开发人员可以使用java 8 提供的新的语言和运行特性来做一些实验。其中一个特性就是完全的移除永久代(Permanent Generation (PermGen)),这从JDK 7开始Oracle就开始行动了,比如:本地化的String从JDK 7开始就被移除了永久代(Permanent Generati...

2013-11-04 19:50:30 3182 1

java垃圾回收精华

本文系翻译: 原文地址:mechanical-sympathy.blogspot.com/2013/07/java-garbage-collection-distilled.htmljava垃圾回收精华串行(Serial),并行(Parallel),并发(Concurrent),CMS,G1,年轻代(Young Gen),新生代(New Gen),老生代(Old Gen),永久代(Pe...

2013-10-30 14:24:15 150

基于锁的并发算法 vs 无锁的并发算法

文本通过实例比较了各种基于锁的并发算法和无锁并发算法的性能:系 http://mechanical-sympathy.blogspot.com/2013/08/lock-based-vs-lock-free-concurrent.html  文翻译       上周在由Heinz Kabutz通过JCrete 组织的开放空间会议(unconference)上,我参加一个新的java规范...

2013-10-17 17:55:39 268

原创 Linux内核的内存屏障

文本详细介绍了linux 内存屏障的知识:系 https://www.kernel.org/doc/Documentation/memory-barriers.txt 文翻译============================Linux内核的内存屏障============================By: David Howells <dhowells@red...

2013-06-13 18:54:08 258

BeanUtils.copyProperties VS PropertyUtils.copyProperties

 BeanUtils.copyProperties VS  PropertyUtils.copyProperties 作为两个bean属性copy的工具类,他们被广泛使用,同时也很容易误用,给人造成困然;比如:昨天发现同事在使用BeanUtils.copyProperties copy有integer类型属性的bean时,没有考虑到会将null转换为0,而后面的业务依赖于null来判断,导...

2013-05-17 23:09:59 280

Mechanical Sympathy 系列翻译---合并写(write combining )

 此文乃是翻译。。原文地址:http://mechanical-sympathy.blogspot.com/2011/07/write-combining.html墙内地址:http://ifeve.com/write-combining/                   合并写(write combining )    现代CPU采用大量的技术来抵消内存访问延迟。...

2013-05-13 21:25:50 364

原创 Mechanical Sympathy 系列翻译 内存访问模型

重要的内存访问模型在高性能的计算中,我们常说缓存失效(cache-miss)是一个算法中最大性能损失点。 近些年来,我们的处理器处理能力的增长速度已经大大超过了访问主内存的延迟的增长。 通过更宽的,多通道的总线,到主内存的带宽已经大大增加,但延迟并没有相应显著减少。 为了减少延迟,处理器采用愈加复杂的多层的高速缓存子系统。 在1994年的一篇论文“Hitting the memor...

2013-03-28 17:28:18 294

原创 jsoup 处理HTML 坑记录

    jsoup 是一款非常优秀的处理HTML的java工具,最大的特点就是拥有类似jquery的select操作。使用非常简单,但是最近本人在使用过程中,由于不熟悉踩了一个坑,记录已备忘。 代码如下:    public static void main(String[] args) { String content = "<a href=\"test....

2013-02-23 16:39:24 341

原创 Mechanical Sympathy 系列翻译 (CPU Cache Flushing Fallacy)

 前言:    由于最近在学习LMAX Disruptor, 它是一个高效的并发框架,里面涉及到许多底层的并发话题,后来在http://mechanical-sympathy.blogspot.com/这个博客上,发现很多很好的文章。于是起心翻译之,一来借翻译加深学习印象,二来推广之。。     Mechanical Sympathy   这个短语非常有意思,直译过来是Mechan...

2013-02-19 19:50:55 259

原创 ConcurrentHashMap 解读(一)

一、核心思想 1、锁分离技术:ConcurrentHashMap首先将数据分成一段一段(segment)的存储,然后给每一段数据配一把锁,当一个线程占用锁访问其中一个段数据的时候,其他段的数据也能被其他线程访问。 2、 final 关键字保证HashEntery 对象的不变性,来降低执行读操作的线程在遍历链表期间对加锁的需求:ConcurrentHashMap完全允许多个读操作并...

2013-01-02 21:45:41 110

原创 CopyOnWriteArrayList 解读

一、 核心思想:CopyOnWriteArrayList的核心思想是利用高并发往往是读多写少的特性,对读操作不加锁,对写操作,先复制一份新的集合,在新的集合上面修改,然后将新集合赋值给旧的引用,并通过volatile 保证其可见性,当然写操作的锁是必不可少的了。二、类图预览: 方法基本分为CopyOnWriteArrayList、indexOf、contains、get、set、...

2013-01-01 09:50:08 199

原创 python 排序之Schwartzian转换

一、pthone 排序 1、[].sort 排序:在Python里,可以使用`[].sort`实现默认的自然排序,其效率还不错。2、自定义函数排序:列表排序的顺序只是适用自然顺序,很多时候,你需要特定的顺序。比如需要排序的字段不是第一个字符,按照默认排序是毫无意义的。通过定义一个自定义函数返回-1则表示前者排在后者之前,返回0则表示二者顺序相同,返回1则表示后者排在前者之前,...

2012-12-24 21:29:52 161

原创 国际化、本地化及Spring MVC 的设计

本文不讲述具体使用配置过程。。请先google了解需要配置的三个地方。。 一、概述: 各个框架对于国际化和本地化的支持方式都类似,从用户使用角度大致分为以下两步: 1、准备资源文件,比如:message.xml,message_zh_CN.xml,message_zh_TW.xml,当然properties 文件也是一样了,里面核心的内容是key1=value1,2、...

2012-11-30 22:06:53 169

原创 linux crontab 定时任务脚本

啥,这么多年居然没有写过这种脚本。。应一个兄弟请求,帮忙写个每天定时下载的任务脚本,记录如下: 1、编写任务的shell脚本  #! /bin/shworkpath="/home/***/Downloads/";cd $workpath;dateStr=$(date -u +%Y%m%d);fileName=top-${dateStr}.zip;echo ...

2012-10-14 22:10:51 172

dump线程让死锁无处可逃

昨天看到有人问:”一个程序在运行的时候,如何知道它是否发生死锁,如果发生死锁,如何找到发生死锁的位置?“;便贴了一段dump线程的数据,今天又有人问我怎么从dump文件中分析死锁,随做此文:1、首先构造死锁,代码如下:  public class Deadlocker { private static Object lock_1 = new int[1]; ...

2012-10-12 20:12:51 311

原创 BeanUtils 的陷阱

由于BeanUtils 的美名远播,加之学艺不精;项目中想当然直接使用BeanUtils;结果华丽丽的掉进了陷阱;且看下面场景:1、待copy类public class SiteSupplierTrade { private Long longAttr; private String[] StringArrayAttr; private Inte...

2012-10-12 18:48:16 85

原创 CLASS 文件使用例子四--AOP字节码增强探索二

在上一篇中我们分析了  public class HelloWorld{ public static void main(String [] arvgs){ System.out.println("before log"); System.out.println("hello world"); Syste...

2012-04-20 17:16:02 107

code review --没有完美的代码(一)

 我们不但要每天写代码,更应该时时停下来去看看自己的代码:下面是最近项目中code review 发现的一些问题;好的code review 不仅可以减少bug,更加是一个互相学习的过程:  一、代码背景:很多时候都会碰到数据类型的转换,特别是string 和number之间的转换,这个时候处理的不好,碰上复杂的业务场景,在用户行为不可控的时候,甚至遭到恶意访问的时候,很容易抛出大...

2012-02-24 21:24:46 145

Java.util.concurrent 源码解读(一)

前面已经可以了解到AQS的设计,接下看一下具体的使用和实现:1、java.util.concurrent 的结构:曾经有一张图可以十分清楚地展示java.util.concurrent的结构,我也借来用一下,有助于理清楚整个大的结构,接下去主要是对各个部分的具体实现进行分析,首先还是从锁说起;  2、lock部分实现的类图:上图是整个AQS的类图,红色框类表示J...

2011-12-25 15:52:48 108

JAVA.util.concurrent 同步框架(翻译四)

 接上一篇: http://caoyaojun1988-163-com.iteye.com/blog/1302936 5 性能虽然除了互斥锁,同步框架也支持其他许多风格的同步;但是锁的性能是最容易比较和衡量的,即便如此,还有很多不同的测量方法。这里的实验旨在揭示开销和吞吐量。在每项测试中,每个线程多次更新一个伪随机数,计算使用函数:nextRandom(INT种子): ...

2011-12-17 21:55:55 79

JAVA.util.concurrent 同步框架(翻译三)

 接上一篇: http://caoyaojun1988-163-com.iteye.com/blog/1290759 4、运用:AbstractQueuedSynchronizer类将上述功能联系在一起,作为一个“模板方法模式[6]”中的模板类,作为其他同步器的基类。子类只是实现预定义方法,实现通过获取锁和释放锁的操作来检查和更新状态。然而,AbstractQueuedSy...

2011-12-10 17:12:16 104

JAVA.util.concurrent 同步框架(翻译二)

 接上一篇:http://caoyaojun1988-163-com.iteye.com/admin/blogs/1279097 3.3 队列     框架的核心是维护阻塞线程的队列,队列的策略是先进先出(FIFO),因此,该框架不支持基于优先级的同步      一直以来,对于同步队列的最合适的选择是无阻塞的数据结构有不小的争议,这种数据结构本身并不需要使用较低级别的锁来构...

2011-12-03 22:20:09 86

JAVA.util.concurrent 同步框架(翻译一)

最近在使用memcache客户端的时候,发现一个可能是多线程的问题,客户端的实现是NIO+JUC,由于出现频率很低,场景没有办法复原,一直没有找到问题的真正原因,通过代码走查也没有发现任何问题,于是决定回顾一下JUC的东西,看看是不是可以受到启发,于是决定先看一下大牛Doug Lea的论文,顺便翻译一下。由于英文水平很挫,又是第一次,希望不要误导了大家。废话不表。  JAVA.util...

2011-11-26 22:54:16 121

spring+ibatis基于方法粒度的轻量级容错重试机制方案设计

1

2011-08-21 17:22:27 126

CLASS 文件使用例子三--AOP字节码增强探索一

在上一篇中有提到spring aop的动态字节码增强,我自己也没看过spring 的实现方式,按照大家的说法应该是动态生产一个子类去重写方法,由于自己没去看过,暂且不表,接下去,可能还是打算从分析字节码的角度去看类似于spring aop这个功能反应到字节码有哪些变化,或者说实现方式,这个例子还是基于最简单的HelloWorld,还请大家回顾一下前面的几个章节,最要是这个 HelloWorl...

2011-07-24 14:09:01 123

HelloWorld.class 文件的解读---方法解读

前面两个例子,一个简单的替换了二进制的编码,一个通过理解class的文件格式,可以增加输出的内容,都非常简单,但是实际可能用到的不会这么简单,更多的是对方法的操作,比如spring aop的实现方式有两种动态代理和字节码增强,其中字节码增强便可以通过修改class的二进制文件完成,另外对性能分析、调试跟踪和日志记录,也可以通过这种方式简单的实现,当然在现实中我们不会去真正的操作二进制码,我们一般...

2011-07-10 14:24:08 496

CLASS 文件使用例子二

 上一节我们看了一个简单的例子,我们通过直接改变二进制的class文件,改变程序的行为,这一节继续上面的例子看一些其他的情况,用前面的HelloWorld为例 先看java 文件:  public class HelloWorld{ public static void main(String [] arvgs){ System.out.println("he...

2011-07-06 22:44:37 92

CLASS 文件使用例子一

上一节我们分析了一个简单的HelloWorld的class文件,那知道了这个结构有什么用呢,接下来我们通过几个例子来简单的了解一下。一、先看一个简单的例子,这个例子了,我们通过直接改变二进制的class文件,改变程序的行为,以前面的HelloWorld为例。先看java 文件:  public class HelloWorld{ public static void ma...

2011-07-06 22:18:31 121

HelloWorld.class 文件的解读

这一篇主要针对最简单的HelloWorld的class文件进行分析,按照上一篇文章的结构去实例化的分析一个class文件。下面是java源文件  public class HelloWorld{ public static void main(String [] arvgs){ System.out.println("hello world");}} ...

2011-07-04 22:41:35 358

空空如也

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

TA关注的人

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