自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 收藏
  • 关注

Volatile语义的一些探讨

  好吧,这里我只想说说volatile在JMM中的语义。   当我们在使用volatile的时候,实际上它表达了下面那么些意思。    1. 可见性。       这个是大多数人都知道的一个特质, JAVA的线程有自己的工作内存区,与主存区不同,当我们对变量使用了volatile后,那么不管对这个变量的读或写,都会在主存中进行,而不会在处理器的缓存或者寄存器中进行。这个很好理...

2011-05-13 15:01:46 136

TCPIP读书札记-IP要不要分片?

我们知道,当应用层程序之间进行网络数据传输时,在发送端,数据会从应用层沿着协议栈向下传输,通过TCP/IP层,然后经由链路层发送出去,而在接收端,则是相反的顺序,数据经由链路层接收,然后沿着协议栈向上传输,通过IP/TCP层,最后由应用层程序进行读取。  而在IP层往链路层传输数据的时候,往往会做一个分片的操作,对于大多数链路层来讲,它都有一个最大传输单元(MTU),表示能够发送数...

2011-01-04 13:11:20 198

代码之美一---超时了怎么办?

我们在开发的时候,常常会有这样的需要,需要保证某个操作只运行一段时间,如果超时了,就执行对应的超时操作。 比如,在读取网络请求的时候,我们希望3秒内能读到数据,如果超过了3秒没有读到,那么就不读了,提示用户,超时了,需要重试。比如,我们开启了一个进程来执行一条命令,这个命令可能是批量处理一批文件并生成一个报告,或者其它,我们知道这个命令肯定不会执行超过30分钟,那么,我们需要给它设定一...

2010-12-19 19:59:21 1413

怎么正确处理InterruptedException

在多核的时代,我们开始编写并发程序,于是碰到了InterruptedException,SUN的java文档告诉我们,当一个线程在sleep(),wait()或者join()的时候,如果被其他线程中断(通过thread.interrupt()方法),线程内部都会抛出这个InterruptedException异常。在知道了来龙去脉后,我们开始处理InterruptedException异常,于...

2010-12-16 16:21:39 260

Java Thread问题集之Thread.stop()篇

为什么不能使用Thread.stop()方法?从SUN的官方文档可以得知,调用Thread.stop()方法是不安全的,这是因为当调用Thread.stop()方法时,会发生下面两件事:1. 即刻抛出ThreadDeath异常,在线程的run()方法内,任何一点都有可能抛出ThreadDeath Error,包括在catch或finally语句中。2. 释放该线程所持有的所有的锁 ...

2010-12-16 15:17:48 1495

Groovy中的隐式构造函数

Groovy 中提供了一种可以将List直接转成对象的方式,这种方式将隐式调用Groovy bean中定义的构造函数来创建对象。 假设我们有如下Groovy bean定义:  class Addr{ String homeAddr String workAddr Addr(def home,def office) { this.homeAddr=ho...

2010-11-28 17:11:19 761

原创 Groovy闭包中的this,owner和delegate

要想了解Groovy闭包中的this,owner和delegate的含义,首先我们需要知道闭包能在哪些上下文中进行创建。 创建闭包的上下文 首先,闭包可以在方法体中创建(类的实例方法或者静态方法均可) class Person{ def static method(){ def methodClosure={ println "methodClosu...

2010-11-28 12:57:49 308

原创 Groovy的named parameter

Groovy的named parameter 一般有两个用途:1. 用在groovybean的构造函数中,提供一种便利的方式来创建新对象。2. 用在方法中(static or not-static),如果传入的参数是named parameter的话,那么该方法会自动收集这些named parameter,然后当成该方法的第一个参数。 我们先来看看第一种用途,假设我们有...

2010-11-19 11:49:10 220

说一说Java的native2ascii中的encoding

     如果大家处理过多语言资源,那么对JDK这个自带的native2ascii肯定不会陌生,它能够帮我们把不同的编码转化成统一的unicode编码,来实现国际化。    一般我们都这么用,假设我们有这么一个文件zh.txt,其内容只有这么一行:        然后我们使用native2ascii来将其内容转成unicode编码:          很简单,但是你考虑...

2010-04-17 17:12:43 227

关于Observer模式不得不说的二三事

   今天有同事问我关于Observer模式的一个问题,说观察者(Observer)为什么要依赖于主题(Subject),如下图所示:      从上图可以看出,具体的观察者对具体的主题有一个依赖, 而且从JDK本身提供的Observer接口,我们也可以看到,确实对主题(在JDK的实现中,为Observable接口)有一个依赖,如代码所示:   public interface...

2010-04-10 12:18:57 263

Java泛型之上限界定符总结

    在学习Java泛型的过程中,我们常常看到这样泛型的使用, class Person<E extends Number>, 这个表示什么呢,这个其实就是java 泛型的upper bound(上限界定),它给我们带来了什么呢?实际上,它定义了以下3个内容: 限定了一组可用于实例化泛型参数的类型。能够访问基类所定义的所有非private成员(方法以及属性)。在编译...

2010-04-05 18:20:54 400

学习设计模式的一个硬伤

     很多人在学习设计模式,也都能把GOF书中的factory, state, singleton, decorator等等说的叽里呱啦的,但是很多人其实都不知道怎么来用设计模式,工作几年,看过一些优秀的设计,但看过的更多的是滥用模式的设计,大部分人对设计模式的了解也都停留在层面上,在工作中曾有机会去对资历年长过自己的同行进行过面试,GOF中的模式随便挑一些出来问询,模式的用途,解决的问题以及...

2010-04-03 16:21:32 98

并发中的遍历

     在开发多线程并发的程序时,对列表进行遍历是一个很常见的操作。比如说在观察者模式中,当某个事件发生时,就需要通知到对应的观察者进行事件的处理,这里就需要对观察者列表进行遍历,逐一触发观察者进行事件的处理。那么,如何保证并发中的遍历操作的原子性呢?大概有下面几种方式:1. 首先,最容易想到的肯定是使用JAVA内置的同步机制-synchronized,把整个遍历操作当作一个原子操作。s...

2009-12-19 13:38:48 409

闲话Command模式的异常处理

     Command模式是GOF中较为简单的,用来封装行为的一个模式。在我们初涉设计模式的领域前,我们可能就在不知不觉中使用了它。比如说JAVA多线程中的Ruuable接口,比如说swing编程中用于处理事件的action,这些通通都是Command模式的使用。跟很多行为型模式一样,command模式用于降低接收者和发送者的耦合,我们经常可以在一些开源框架中看到,command实例对象常在层与...

2009-11-22 22:04:05 673

闲话COR

   说起COR(责任链模式),大家最熟悉可能就是阎老在他那部大部头《设计模式》中举的‘击鼓传花’的形象例子,那里实现了一个很传统的COR模式。而从我看过的COR实现的方式上讲,从业务角度上区分,可分为两种:完全推卸责任的COR部分推卸责任的COR   当我们在开发一个项目或者产品时,为了职责分离以及开发的效率,我们常常采用的是分层分模块开发,一部分人负责前台,一部分人负责业务层,...

2009-11-20 21:56:17 255

How to write your own Model MBean

     Since Model MBean is much more flexible and is easy to decouple your manageable resouce from the mbean implementation details, people like to use it as the basic MBean. After we examine the Model...

2009-11-08 21:16:51 133

JMX Dynamic MBean

    The second MBean I want to bring in is the Dynamic MBean, the main purpose of using Dynamic MBean is that your management interface varies very often, just think of a simplest case, we have a mana...

2009-10-18 12:17:04 89

JMX Model MBean

  As we know, Standard MBean is easy to use and implement, but it requires that the MBean interface has to be stable. If the manageable resoures are evolving over time, we need Dynamic MBean to help u...

2009-10-14 22:08:08 95

JMX Standard MBean

   As we metioned before, JMX has three types of MBean, and the standard MBean is the simplest MBean of them, the other two are Dynamic MBean and Model MBean which we will cover in later articles.  ...

2009-10-09 16:48:42 86

MBeanRegistration and MBeanServer

   If you have spring experience, you might know what MBeanRegistration interface is for.In fact, in my point of view, it acts as BeanFactoryAware interface in Spring framework. BeanFactoryAware is us...

2009-10-08 22:13:12 131

JMX Notification Model

  Since Notification Model is actually a typical observer model, I will start with the observer model, and evolve it to the Notification Model in JMX.   Simply, the observer pattern allows one obj...

2009-10-05 12:56:43 95

JMX Monitoring Service

 1.Purpose of Monitoring service   JMX Monitoring service provide a mechanism of monitoring your observable object with a predefined observable attribute. In the simplest case, you might want to get...

2009-10-03 21:29:38 90

JMX M-LET Service

1.What does M-LET service can do?   M-Let service provide a mechanism of dynamic loading new MBeans without restarting your agent. Sounds like the things Dynamic MBean can do,huh? But there are some...

2009-09-30 08:46:05 175

JMX Basic

1.What is JMX architecture?    First, let's get a overview of the JMX architecture, it contains three layers as below:  Instrumentation Layer: This layer only contains the manageable resources whic...

2009-09-29 12:05:53 122

空空如也

空空如也

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

TA关注的人

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