自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(44)
  • 收藏
  • 关注

转载 在 Java 中高效使用锁的技巧--转载

竞争锁是造成多线程应用程序性能瓶颈的主要原因区分竞争锁和非竞争锁对性能的影响非常重要。如果一个锁自始至终只被一个线程使用,那么 JVM 有能力优化它带来的绝大部分损耗。如果一个锁被多个线程使用过,但是在任意时刻,都只有一个线程尝试获取锁,那么它的开销要大一些。我们将以上两种锁称为非竞争锁。而对性能影响最严重的情况出现在多个线程同时尝试获取锁时。这种情况是 JVM 无法优化的,而且通常...

2014-10-31 18:56:00 56

转载 通过扩展RandomAccessFile类使之具备Buffer改善I/O性能--转载

主体:目前最流行的J2SDK版本是1.3系列。使用该版本的开发人员需文件随机存取,就得使用RandomAccessFile类。其I/O性能较之其它常用开发语言的同类性能差距甚远,严重影响程序的运行效率。开发人员迫切需要提高效率,下面分析RandomAccessFile等文件类的源代码,找出其中的症结所在,并加以改进优化,创建一个"性/价比"俱佳的随机文件访问类BufferedRa...

2014-10-31 18:26:00 51

转载 Java 下实现锁无关数据结构--转载

介绍通常在一个多线程环境下,我们需要共享某些数据,但为了避免竞争条件引致数据出现不一致的情况,某些代码段需要变成原子操作去执行。这时,我们便需要利用各种同步机制如互斥(Mutex)去为这些代码段加锁,让某一线程可以独占共享数据,避免竞争条件,确保数据一致性。但可惜的是,这属于阻塞性同步,所有其他线程唯一可以做的就是等待。基于锁(Lock based)的多线程设计更可能引发死锁、优先级...

2014-10-31 17:59:00 69

转载 common-httpclient 用户名密码认证示例

import java.io.IOException; import java.util.ArrayList; import java.util.List; import org.apache.commons.httpclient.DefaultHttpMethodRetryHandler; import org.apache.commons.http...

2014-10-30 11:48:00 127

转载 RabbitMQ Management HTTP API--官方文档

IntroductionApart from this help page, all URIs will serve only resources of typeapplication/json, and will require HTTP basic authentication (using the standard RabbitMQ user database). The d...

2014-10-30 10:44:00 396

转载 Understanding Extension Class Loading--官方

http://docs.spring.io/spring-amqp/docs/1.3.6.RELEASE/reference/html/sample-apps.html#d4e1285http://docs.spring.io/spring-amqp/reference/html/index.htmlhttp://docs.spring.io/spring-amqp/docs/1...

2014-10-28 10:59:00 67

转载 Linux中date命令的各种实用方法--转载

在linux环境中,不管是编程还是其他维护,时间是必不可少的,也经常会用到时间的运算,自己也曾经为时间的各种表示方法和如何修改时间而困惑,熟练运用date命令来表示自己想要表示的时间,肯定可以给自己的工作带来诸多方便, 以下是我在工作中积累的关于date命令的用法,绝大多数都有解释说明,并配有范例,记录了linux中date命令的各种特定时间的表示方法,如何修改为特定的时间等,相信...

2014-10-27 14:09:00 77

转载 Java 日志缓存机制的实现--转载

概述日志技术为产品的质量和服务提供了重要的支撑。JDK 在 1.4 版本以后加入了日志机制,为 Java 开发人员提供了便利。但这种日志机制是基于静态日志级别的,也就是在程序运行前就需设定下来要打印的日志级别,这样就会带来一些不便。在 JDK 提供的日志功能中,日志级别被细化为 9 级,用以区分不同日志的用途,用来记录一个错误,或者记录正常运行的信息,又或是记录详细的调试信息。由...

2014-10-25 22:50:00 58

转载 Java 实现 SSH 协议的客户端登录认证方式--转载

背景在开篇之前,让我们先对 SSH 协议有个宏观的大致了解,这样更有利于我们对本文的加深了解。首先要提到的就是计算机网络协议,所谓计算机网络协议,简单的说就是定义了一套标准和规则,使得不同计算机之间能够进行正常的网络通信,不至于出现在一台机器上发出的指令到另一台机器上成了不可认的乱码,SSH 就是众多协议的其中之一。经典的七层 OSI 模型(Open System Interconn...

2014-10-25 22:48:00 545

转载 使用 Java 配置进行 Spring bean 管理--转

概述众所周知,Spring 框架是控制反转 (IOC) 或依赖性注入 (DI) 模式的推动因素,而这种推动是通过基于容器的配置实现的。过去,Spring 允许开发人员使用基于 XML 的配置,通过利用应用程序上下文 XML 文件来管理 bean 依赖性。此文件处于应用程序的外部,包含 bean 及其与该应用程序的依赖项的定义。尽管使用 XML 配置较为简单和便捷,但仍有另外一种方法可...

2014-10-25 22:47:00 55

转载 几种任务调度的 Java 实现方法与比较--转载

前言任务调度是指基于给定时间点,给定时间间隔或者给定执行次数自动执行任务。本文由浅入深介绍四种任务调度的 Java 实现:TimerScheduledExecutor开源工具包 Quartz开源工具包 JCronTab此外,为结合实现复杂的任务调度,本文还将介绍 Calendar 的一些使用方法。回页首Timer相信大家都已经非常熟悉 j...

2014-10-25 18:23:00 60

转载 Java Math 类中的新功能--浮点数

Java™语言规范第 5 版向java.lang.Math和java.lang.StrictMath添加了 10 种新方法,Java 6 又添加了 10 种。这个共两部分的系列文章的第 1 部分介绍了很有意义的新的数学方法。它提供了在还未出现计算机的时代中数学家比较熟悉的函数。在第 2 部分中,我主要关注这样一些函数,它们的目的是操作浮点数,而不是抽象实数。就像我在第 1 部...

2014-10-25 18:19:00 125

转载 Java 类的热替换---转载

构建基于 Java 的在线升级系统Java ClassLoader 技术剖析在本文中,我们将不对 Java ClassLoader 的细节进行过于详细的讲解,而是关注于和构建在线升级系统相关的基础概念。关于 ClassLoader 的详细细节许多资料可以参考,有兴趣的读者可以自行研读。要构建在线升级系统,一个重要的技术就是能够实现 Java 类的热替换 —— 也就是在不停止正...

2014-10-25 18:09:00 49

转载 Java 理论与实践: 用弱引用堵住内存泄漏---转载

要让垃圾收集(GC)回收程序不再使用的对象,对象的逻辑生命周期(应用程序使用它的时间)和对该对象拥有的引用的实际生命周期必须是相同的。在大多数时候,好的软件工程技术保证这是自动实现的,不用我们对对象生命周期问题花费过多心思。但是偶尔我们会创建一个引用,它在内存中包含对象的时间比我们预期的要长得多,这种情况称为无意识的对象保留(unintentional object retentio...

2014-10-24 22:22:00 79

转载 Java 异常处理的误区和经验总结--转载

本文着重介绍了 Java 异常选择和使用中的一些误区,希望各位读者能够熟练掌握异常处理的一些注意点和原则,注意总结和归纳。只有处理好了异常,才能提升开发人员的基本素养,提高系统的健壮性,提升用户体验,提高产品的价值。误区一、异常的选择图 1. 异常分类图 1 描述了异常的结构,其实我们都知道异常分检测异常和非检测异常,但是在实际中又混淆了这两种异常的应用。由于非检测异常使...

2014-10-24 22:16:00 52

转载 深入探讨 java.lang.ref 包--转

概述Java.lang.ref 是 Java 类库中比较特殊的一个包,它提供了与 Java 垃圾回收器密切相关的引用类。这些引用类对象可以指向其它对象,但它们不同于一般的引用,因为它们的存在并不防碍 Java 垃圾回收器对它们所指向的对象进行回收。其好处就在于使者可以保持对使用对象的引用,同时 JVM 依然可以在内存不够用的时候对使用对象进行回收。因此这个包在用来实现与缓存相关的应用...

2014-10-24 22:05:00 141

转载 基于 Java 2 运行时安全模型的线程协作--转

在 Java 2 之前的版本,运行时的安全模型使用非常严格受限的沙箱模型(Sandbox)。读者应该熟悉,Java 不受信的 Applet 代码就是基于这个严格受限的沙箱模型来提供运行时的安全检查。沙箱模型的本质是,任何本地运行的代码都是受信的,有完全的权限来存取关键的系统资源。而对于 Applet,则属于不受信的代码,只能访问沙箱范围内有限的资源。当然,您可以通过数字签名的方式配置您的...

2014-10-24 17:49:00 105

转载 Spring AOP 实现原理与 CGLIB 应用--转

AOP(Aspect Orient Programming),作为面向对象编程的一种补充,广泛应用于处理一些具有横切性质的系统级服务,如事务管理、安全检查、缓存、对象池管理等。AOP 实现的关键就在于 AOP 框架自动创建的 AOP 代理,AOP 代理则可分为静态代理和动态代理两大类,其中静态代理是指使用 AOP 框架提供的命令进行编译,从而在编译阶段就可生成 AOP 代理类,因此也称为...

2014-10-24 15:55:00 86

转载 java 类加载过程

1. 使用命令行查看类加载过程,在eclipse测试类的run configuration中配置-verbose:class或者-verbose,如下图所示:运行结果如下所示:[Opened D:\Program Files\jdk6\jre\lib\rt.jar][Loaded java.lang.Object from D:\Program Files\jd...

2014-10-24 12:03:00 106

转载 JDK动态代理实现原理--转载

之前虽然会用JDK的动态代理,但是有些问题却一直没有搞明白。比如说:InvocationHandler的invoke方法是由谁来调用的,代理对象是怎么生成的,直到前几个星期才把这些问题全部搞明白了。 废话不多说了,先来看一下JDK的动态是怎么用的。Java代码packagedynamic.proxy;importjava.l...

2014-10-23 11:55:00 49

转载 通过分析 JDK 源代码研究 Hash 存储机制--转载

通过 HashMap、HashSet 的源代码分析其 Hash 存储机制集合和引用就像引用类型的数组一样,当我们把 Java 对象放入数组之时,并不是真正的把 Java 对象放入数组中,只是把对象的引用放入数组中,每个数组元素都是一个引用变量。实际上,HashSet 和 HashMap 之间有很多相似之处,对于 HashSet 而言,系统采用 Hash 算法决定集合元...

2014-10-22 09:51:00 46

转载 Java 编程的动态性,第 8 部分: 用代码生成取代反射--转载

既然您已经看到了如何使用 Javassist 和 BCEL 框架来进行 classworking (请参阅本系列以前的一组文章), 我将展示一个实际的 classworking 应用程序。这个应用程序用运行时生成的、并立即装载到 JVM 的类来取代反射。在综合讨论的过程中,我将引用本系列的前两篇文章,以及对 Javassist 和 BCEL 的讨论,这样本文就成为了对这个很长的系列文章...

2014-10-19 22:38:00 68

转载 Java 编程的动态性,第 7 部分: 用 BCEL 设计字节码--转载

在本系列的最后三篇文章中,我展示了如何用 Javassist 框架操作类。这次我将用一种很不同的方法操纵字节码——使用 Apache Byte Code Engineering Library (BCEL)。与 Javassist 所支持的源代码接口不同,BCEL 在实际的 JVM 指令层次上进行操作。在希望对程序执行的每一步进行控制时,底层方法使 BCEL 很有用,但是当两者都可以胜任...

2014-10-19 22:25:00 55

转载 Java 编程的动态性,第 6 部分: 利用 Javassist 进行面向方面的更改--转载

本系列的第 4 部分和第 5 部分讨论了如何用 Javassist 对二进制类进行局部更改。这次您将学习以一种更强大的方式使用该框架,从而充分利用 Javassist 对在字节码中查找所有特定方法或者字段的支持。对于 Javassist 功能而言,这个功能至少与它以类似源代码的方式指定字节码的能力同样重要。对选择替换操作的支持也有助于使 Javasssist 成为一个在标准 Java...

2014-10-19 22:12:00 89

转载 Java 编程的动态性,第 5 部分: 动态转换类--转载

在第 4 部分“用 Javassist 进行类转换”中,您学习了如何使用 Javassist 框架来转换编译器生成的 Java 类文件,同时写回修改过的类文件。这种类文件转换步骤对于做出持久变更是很理想的,但是如果想要在每次执行应用程序时做出不同的变更,这种方法就不一定很方便。对于这种暂时的变更,采用在您实际启动应用程序时起作用的方法要好得多。JVM 体系结构为我们提供了这样做的便...

2014-10-19 21:59:00 61

转载 Java 编程的动态性, 第4部分: 用 Javassist 进行类转换--转载

讲过了 Java 类格式和利用反射进行的运行时访问后,本系列到了进入更高级主题的时候了。本月我将开始本系列的第二部分,在这里 Java 类信息只不过是由应用程序操纵的另一种形式的数据结构而已。我将这个主题的整个内容称为classworking。我将以 Javassist 字节码操作库作为对 classworking 的讨论的开始。Javassist 不仅是一个处理字节码的库,而且更...

2014-10-19 21:47:00 86

转载 Java 编程的动态性,第3部分: 应用反射--转载

在上个月的文章中,我介绍了Java Reflection API,并简要地讲述了它的一些基本功能。我还仔细研究了反射的性能,并且在文章的最后给出了一些指导方针,告诉读者在一个应用程序中何时应该使用反射,何时不应该使用反射。在本月这一期的文章中,我将通过查看一个应用程序来更深入地讨论这一问题,这个应用程序是用于命令行参数处理的一个库,它能够很好地体现反射的强项和弱点。一开始,在真正进...

2014-10-19 21:39:00 43

转载 Java编程 的动态性,第 2部分: 引入反射--转载

在“Java编程的动态性,第1部分,”我为您介绍了Java编程类和类装入。该篇文章介绍了一些Java二进制类格式的相关信息。这个月我将阐述使用Java反射API来在运行时接入和使用一些相同信息的基础。为了使已经熟知反射基础的开发人员关注本文,我将在文章中包括反射性能如何与直接接入相比较。使用反射不同于常规的Java编程,其中它与元数据--描述其它数据的数据协作。Java语言反射接...

2014-10-19 21:15:00 79

转载 Java 编程的动态性 第1 部分: 类和类装入--转载

原文地址:http://www.ibm.com/developerworks/cn/java/j-dyn0429/本文是这个新系列文章的第一篇,该系列文章将讨论我称之为Java 编程的动态性的一系列主题。这些主题的范围从 Java 二进制类文件格式的基本结构,以及使用反射进行运行时元数据访问,一直到在运行时修改和构造新类。贯穿整篇文章的公共线索是这样一种思想:在 Java 平...

2014-10-18 13:07:00 69

转载 斐波那契数列(fabnacci)java实现

斐波那契数列定义:From Wikipedia, the free encyclopediahttp://en.wikipedia.org/wiki/Fibonacci_numberInmathematics, theFibonacci numbersorFibonacci sequenceare the numbers in the followinginteger...

2014-10-17 14:56:00 146

转载 Chrome调试大全--转载

作为一名前端开发者,打交道最多的可能是和浏览器。市面上各种浏览器多不胜数,主流的有Chrome,Firefox,Safari,IE,Opera,非主流的如360,遨游,QQ浏览器,搜狗浏览器,据说淘宝最近也要出浏览器了。不过个人最喜欢的还是Chrome,因为它的简洁和快速,还有功能的强大。FF什么的我觉得它已经慢得跟不上时代了:-D,这是个人意见,喜欢FF的朋友尽管吐槽。虽然IE和Fir...

2014-10-17 09:32:00 76

转载 jboss7 加载module过程

1. 调试类:org.jboss.as.server.Main的main方法断点:Module.registerURLStreamHandlerFactoryModule(Module.getBootModuleLoader().loadModule(ModuleIdentifier.create("org.jboss.vfs")));2.程序过程如下: 2.1 ...

2014-10-16 18:07:00 168

转载 UML解惑:图说UML中的六大关系--转

UML定义的关系主要有六种:依赖、类属、关联、实现、聚合和组合。这些类间关系的理解和使用是掌握和应用UML的关键,而也就是这几种关系,往往会让初学者迷惑。这里给出这六种主要UML关系的说明和类图描述,一看之下,清晰明了;以下就分别介绍这几种关系:继承指的是一个类(称为子类、子接口)继承另外的一个类(称为父类、父接口)的功能,并可以增加它自己的新功能的能力,继承是类与类或者接口与接...

2014-10-16 09:11:00 81

转载 jboss学习 - vfs---转载

jboss的VFS是为了解决什么问题,他为什么有用呢在jboss中有很多类似的资源操作的代码都分散在程序的各个地方,大多数情况下代码首先确定操作的资源的类型,比如是文件或者是文件夹,通过URL加载的资源等,在不同的代码中其中包含了相同的代码。例如public static URL[] search(ClassLoader cl, String prefix, String...

2014-10-15 19:27:00 103

转载 漫谈设计模式--3分钟理解桥接模式:笔和画的关系

其实不需要3分钟,3秒钟就够了,记住桥接模式就是如此简单:一句话,笔有千般形,画有万变化。下面的仅仅助于理解。1. 定义Thebridge patternis adesign patternused insoftware engineeringwhich is meant to"decouple anabstractionfrom itsimplement...

2014-10-15 11:14:00 130

转载 改变eclipse工程中代码的层次结构

1. 代码的层次结构 一般之代码包(package)结构 有两种:扁平结构和继承两种。 扁平结构(flat)如下图所示:继承结构(hierarchical)2. 如何修改: 1. 选中package explorer右边的倒三角,如图所示2. 选中package presentation选项,选择flag或者hi...

2014-10-15 10:20:00 269

转载 jQuery UI Widget(1.8.1)工作原理--转载

先看下代码的相关注释:/*! * jQuery UI Widget 1.8.1 * * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about) * Dual licensed under the MIT (MIT-LICENSE.txt) * and GPL (GPL-LICENSE.txt) li...

2014-10-14 15:00:00 77

转载 cas 官方文档

1. 架构http://jasig.github.io/cas/4.0.0/planning/Architecture.htmlSystem ComponentsThe CAS server and clients comprise the two physical components of the CAS system architecture that commun...

2014-10-13 14:47:00 294

转载 Injecting and Binding Objects to Spring MVC Controllers--转

I have written two previous posts on how to inject custom, non Spring specific objects into the request handling methods of a controller in Spring MVC. One was usingHandlerMethodArgumentResolver...

2014-10-11 18:34:00 119

转载 Garbage Collectors - Serial vs. Parallel vs. CMS vs. G1 (and what's new in Java 8)--转

The 4 Java Garbage Collectors - How the Wrong Choice Dramatically Impacts PerformanceThe year is 2014 and there are two things that still remain a mystery to most developers - Garbage collectio...

2014-10-11 12:08:00 104

空空如也

空空如也

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

TA关注的人

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