Welcome 微信登录

首页 / 软件开发 / JAVA

WildFly评估之消息子系统

WildFly评估之消息子系统

WildFly评估之消息子系统2014-10-14 infoq 吴杰WildFly,前身是JBoss AS,从V8开始为区别于JBoss EAP,更名为WildFly。HornetQ是JBoss开发的一个独立的消息中间件,被整合进WildFly作为消息子系统。HornetQ完全支持JMS,HornetQ不但支持JMS1.1 API同时也定义属于自己的消息API(如下图中的Core Client),以最大限度地提升HornetQ的性能和灵活性。图 1 客户程...
java程序中双重检查锁定与延迟初始化

java程序中双重检查锁定与延迟初始化

java程序中双重检查锁定与延迟初始化2014-10-14 infoq 程晓明在java程序中,有时候可能需要推迟一些高开销的对象初始化操作,并且只有在使用这些对象时才进行初始化。此时程序员可能会采用延迟初始化。但要正确实现线程安全的延迟初始化需要一些技巧,否则很容易出现问题。比如,下面是非线程安全的延迟初始化对象的示例代码:public class UnsafeLazyInitialization {private static Instance ins...
Spring学习(一)Spring概述

Spring学习(一)Spring概述

Spring学习(一)Spring概述2014-10-14现在很多的企业级项目中基本上都会用到了Spring框架,那么为什么会出现Spring,Spring是什么?这次的博文我主要为大家简单介绍一下Spring。Java EE优缺点我们都知道在2003年Spring兴起之前,企业普遍使用J2EE技术来开发企业级应用,为什么用J2EE呢?主要原因有以下几个:1、Java本身的跨平台能力,可移植性强2、J2EE服务器内置了大量的容器服务,比如事务服务、JNDI...
Spring学习(二) IoC详解

Spring学习(二) IoC详解

Spring学习(二) IoC详解2014-10-14上次的博客深入浅出Spring(一)Spring概述中,我给大家简单介绍了一下Spring相关概念。重点是这么一句:Spring是为了解决企业应用开发的复杂性而创建的一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。在这句话中重点有两个,一个是IoC,另一个是AOP。今天我们讲第一个IoC。IoC概念控制反转(Inversion of Control)是一个重要的面向对象编程的法则来削减计算...
Spring学习(三) AOP详解

Spring学习(三) AOP详解

Spring学习(三) AOP详解2014-10-14上次的博文深入浅出Spring(二) IoC详解中,我为大家简单介绍了一下Spring框架核心内容中的IoC,接下来我们继续讲解另一个核心AOP(Aspect Oriented Programming),即面向切面编程。1、OOP回顾在介绍AOP之前先来回顾一下大家都比较熟悉的OOP(Object Oriented Programming)。OOP主要是为了实现编程的重用性、灵活性和扩展性。它的几个特征...
Spring学习(四) Spring实例分析

Spring学习(四) Spring实例分析

Spring学习(四) Spring实例分析2014-10-14上次的博文中 深入浅出Spring(二) IoC详解 和 深入浅出Spring(三) AOP详解中,我们分别介绍了一下Spring框架的两个核心一个是IoC,一个是AOP。接下来我们来做一个Spring的实例。为了更好的讲解Spring的相关内容,这次的博文会针对一个【添加用户】的实例,进行逐步的解剖和优化,再此过程中,细节内容大家不需要考虑,只需要加深对Spring的理解即可。1、实例一首先...
Java 下一代: 没有继承性的扩展(一)

Java 下一代: 没有继承性的扩展(一)

Java 下一代: 没有继承性的扩展(一)2014-10-22 ibm Neal Ford了解 Groovy、Scala 和 Clojure 如何将行为融入到类中Java 语言的设计有目的地进行了一定的删减,以避免前代产品中已发现的一些问题。例如,Java 语言的设计人员感觉 C++ 中的多重继承性带来了太多复杂性,所以它们选择不包含该特性。事实上,他们在该语言中很少构建扩展性选项,仅依靠单一继承和接口。其他语言(包括 Java 下一代语言)存在巨大的扩展...
Java 下一代: 没有继承性的扩展(二)探索 Clojure 协议

Java 下一代: 没有继承性的扩展(二)探索 Clojure 协议

Java 下一代: 没有继承性的扩展(二)探索 Clojure 协议2014-10-22 IBM Neal Ford“没有继承性的扩展,第 1 部分” 主要讨论了 Goovy、Scala 和 Clojure 中为现有类添加新方法的机制,这也是 Java 下一代语言实现无继承扩展的方法之一。本文将探讨 Clojure 的协议如何以创新的方法拓展 Java 扩展功能,为表达式问题提供出色的解决方案。尽管这期文章主要关注可扩展性,但也会略...
Java 下一代: 没有继承性的扩展(三)

Java 下一代: 没有继承性的扩展(三)

Java 下一代: 没有继承性的扩展(三)2014-10-22 IBM Neal FordGroovy 元编程为您提供常见问题的简单解决方案Java 下一代语言扩展现有的类和其他构件的方法有很多,前两期 Java 下一代 文章探讨了其中的一些方法。在本期文章中,我将继续该探索,仔细查看在多种上下文中实现扩展的 Groovy 元编程技术。在 “没有继承性的扩展,第 1 部分” 中,在讨论使用类别类 和 ExpandoMetaClass...
Hibernate中新的TableGenerator 机制

Hibernate中新的TableGenerator 机制

Hibernate中新的TableGenerator 机制2014-10-22 ibm 吕 焱飞从 initialValue 说起问题的发现源自对 JPA 中 TableGenerator 的测试。测试的环境有这样几个条件:为方便查询的测试,Employee 表格在初始化时会导入部分记录,这部分记录的主键在初始脚本中手动写好,比如 1、2、3、4。(参看文章所附示例代码中的import_data.sql 文件)。Employee 实体使用 TableGen...
JBPM工作流引擎

JBPM工作流引擎

JBPM工作流引擎2014-10-22java.lang.NoSuchMethodError: antlr.collections.AST.getLine()IERP,OA,CRM内网系统,需要多个人(多个步骤)处理JBPM是由JBoss推出的,用来完成工作流的一套开发包。工作流并不是技术的概念,而是通过程序描述业务流程的功能。一般使用工作流实现的功能有:请假,报销,出差申请,保险理赔等在开发JBPM时,需要先建立一个JBoss的流程描述文件(加入插件),...
Java集合源码剖析:Java集合框架

Java集合源码剖析:Java集合框架

Java集合源码剖析:Java集合框架2014-10-26 csdn博客 兰亭风雨Java集合工具包位于Java.util包下,包含了很多常用的数据结构,如数组、链表、栈、队列、集合、哈希表等。学习Java集合框架下大致可以分为如下五个部分:List列表、Set集合、Map映射、迭代器(Iterator、Enumeration)、工具类(Arrays、Collections)。Java集合类的整体框架如下:从上图中可以看出,集合类主要分为两大类:Colle...
Java集合源码剖析:LinkedList源码剖析

Java集合源码剖析:LinkedList源码剖析

Java集合源码剖析:LinkedList源码剖析2014-10-26 csdn 兰亭风雨LinkedList简介LinkedList是基于双向循环链表(从源码中可以很容易看出)实现的,除了可以当做链表来操作外,它还可以当做栈、队列和双端队列来使用。LinkedList同样是非线程安全的,只在单线程下适合使用。LinkedList实现了Serializable接口,因此它支持序列化,能够通过序列化传输,实现了Cloneable接口,能被克隆。LinkedL...
Java集合源码剖析:ArrayList源码剖析

Java集合源码剖析:ArrayList源码剖析

Java集合源码剖析:ArrayList源码剖析2014-10-26 csdn 兰亭风雨ArrayList简介ArrayList是基于数组实现的,是一个动态数组,其容量能自动增长,类似于C语言中的动态申请内存,动态增长内存。ArrayList不是线程安全的,只能用在单线程环境下,多线程环境下可以考虑用Collections.synchronizedList(List l)函数返回一个线程安全的ArrayList类,也可以使用concurrent并发包下的C...
Java集合源码剖析:Vector源码剖析

Java集合源码剖析:Vector源码剖析

Java集合源码剖析:Vector源码剖析2014-10-26 csdn 兰亭风雨Vector简介Vector也是基于数组实现的,是一个动态数组,其容量能自动增长。LinkedList是JDK1.0引入了,它的很多实现方法都加入了同步语句,因此是线程安全的(其实也只是相对安全,有些时候还是要加入同步语句来保证线程的安全),可以用于多线程环境。LinkedList没有丝线Serializable接口,因此它不支持序列化,实现了Cloneable接口,能被克隆...
Java集合源码剖析:HashMap源码剖析

Java集合源码剖析:HashMap源码剖析

Java集合源码剖析:HashMap源码剖析2014-10-26 csdn 兰亭风雨HashMap简介HashMap是基于哈希表实现的,每一个元素是一个key-value对,其内部通过单链表解决冲突问题,容量不足(超过了阀值)时,同样会自动增长。HashMap是非线程安全的,只是用于单线程环境下,多线程环境下可以采用concurrent并发包下的concurrentHashMap。HashMap 实现了Serializable接口,因此它支持序列化,实现了...
Java集合源码剖析:Hashtable源码剖析

Java集合源码剖析:Hashtable源码剖析

Java集合源码剖析:Hashtable源码剖析2014-10-26 csdn 兰亭风雨Hashtable简介Hashtable同样是基于哈希表实现的,同样每个元素是一个key-value对,其内部也是通过单链表解决冲突问题,容量不足(超过了阀值)时,同样会自动增长。Hashtable也是JDK1.0引入的类,是线程安全的,能用于多线程环境中。Hashtable同样实现了Serializable接口,它支持序列化,实现了Cloneable接口,能被克隆。H...
Java集合源码剖析:TreeMap源码剖析

Java集合源码剖析:TreeMap源码剖析

Java集合源码剖析:TreeMap源码剖析2014-10-26 csdn 兰亭风雨前言本文不打算延续前几篇的风格(对所有的源码加入注释),因为要理解透TreeMap的所有源码,对博主来说,确实需要耗费大量的时间和经历,目前看来不大可能有这么多时间的投入,故这里意在通过于阅读源码对TreeMap有个宏观上的把握,并就其中一些方法的实现做比较深入的分析。红黑树简介TreeMap是基于红黑树实现的,这里只对红黑树做个简单的介绍,红黑树是一种特殊的二叉排序树,关...
<< 281 282 283 284 285 286 287 288 289 290 >>