- 博客(150)
- 收藏
- 关注
原创 ASM 和 cglib
ASM我们知道Java是静态语言,而python、ruby是动态语言,Java程序一旦写好很难在运行时更改类的行为,而python、ruby可以。不过基于bytecode层面上我们可以做一些手脚,来使Java程序多一些灵活性和Magic,ASM就是这样一个应用广泛的开源库。ASM is a Java bytecode manipulation framework. It...
2011-06-17 15:38:54
669
原创 AOP
切面类TestAspectJava代码 package com.spring.aop; /** * 切面 * */ public class TestAspect { public void doAfter(Join...
2011-06-17 15:37:33
167
原创 java 多线程
首先来看一下,任务的定义: 所谓的任务,就是抽象,离散的工作单位。你可以简单理解为代码级别的 (Runnable接口) 大多数并发应用程序都是围绕着任务进行管理的. 我们来看一小段代码:Java代码 package com.ivan.concurrent.charpter6; import java.net.Ser...
2011-06-16 10:37:25
133
原创 泛型 上限与下限
//Apple Orange 都继承自Fruit类,同时Jonathan是Apple的子类,Fruit 继承 Food List<? extends Fruit> list = new ArrayList<Apple>(); //list.add(new Apple()); //list.add(new Fruit()); Li...
2011-02-23 16:39:17
129
原创 Hibernate search
Hibernate Search是Hibernate的子项目,把数据库全文检索能力引入到项目中,并通过"透明"(不影响既有系统)的配置,提供一套标准的全文检索接口。这一章我们就来学习这块内容。全文检索的概念在进入正文之前,有必要介绍一下全文检索的概念。简单来说,Google就是一个全文检索引擎。全文检索允许用户输入一些关键字,从数据层中查找到所需要的信息。此外全文检索和数据库"LIKE"语...
2011-02-21 14:44:44
118
原创 Ehcache 缓存
Xml:ehcache.xml <ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="ehcache.xsd"> <diskStore path="c:\\temp" /> <cacheManagerEventLis...
2010-10-19 11:30:49
123
原创 persist save Hibernate
hibernate的保存hibernate对于对象的保存提供了太多的方法,他们之间有很多不同,这里细说一下,以便区别:一、预备知识:在所有之前,说明一下,对于hibernate,它的对象有三种状态,transient、persistent、detached下边是常见的翻译办法:transient:瞬态或者自由态persistent:持久化状态detached:脱管状态或者游离态 脱管状态的...
2010-07-30 13:30:11
129
原创 Java多线程--让主线程等待所有子线程执行完毕
统计所有子进程执行完毕总共的耗时,在第一个子进程创建前记录当前时间用System.currentTimeMillis()在最后一个子进程结束后记录当前时间,两次一减得到的时间差即为总共的用时,代码如下Java代码 long tStart = System.currentTimeMillis(); System.out.print...
2010-07-16 21:14:37
144
原创 插入排序 快速排序
/** * 插入排序,当数组有序的时候是比较快的排序方法 非稳定算法,最快(当数组有序时)为线性(O(n)) 最慢以及平均情况都是为(O(n^2))二次算法 * @param <T> * 范型参数 * @param data * 要排序的数组 */ public static <T extends ...
2010-05-27 16:18:07
108
原创 李开复 写给女儿一封信
Dear Daughter:亲爱的女儿:As we drove off from Columbia, I wanted to write a letter to you to tell you all that is on my mind.当我们开车驶出哥伦比亚大学的时候,我想写一封信给你,告诉你盘旋在我脑中的想法。 First, I want to tell you how ...
2010-05-26 17:23:48
244
原创 SimpleJdbc
SimpleJdbcInsert类和SimpleJdbcCall类主要利用了JDBC驱动所提供的数据库元数据的一些特性来简化数据库操作配置。 这意味着你可以尽可能的简化你的数据库操作配置。当然,你可以可以将元数据处理的特性关闭,从而在你的代码中详细指定这些特性。 11.5.1. 使用SimpleJdbcInsert插入数据让我们从SimpleJdbcInser...
2010-05-26 17:21:17
276
原创 多列索引
单列索引与多列索引索引可以是单列索引,也可以是多列索引。下面我们通过具体的例子来说明这两种索引的区别。假设有这样一个people表: CREATE TABLE people ( peopleid SMALLINT NOT NULL AUTO_INCREMENT, firstname CHAR(50) NOT NULL, lastname CHAR(50) NOT NULL, age SMA...
2010-05-26 17:18:28
191
Hibernate 注解 annotation
一、 实体 Bean每个持久化POJO类都是一个实体Bean, 通过在类的定义中使用 @Entity 注解来进行声明。声明实体Bean@Entitypublic class Flight implements Serializable { Long id; @Id public Long getId() { return id; } public void setId(Long...
2010-05-05 20:37:32
134
ThreadLocal
早在Java 1.2推出之时,Java平台中就引入了一个新的支持:java.lang.ThreadLocal,给我们在编写多线程程序时提供了一种新的选择。使用这个工具类可以很简洁地编写出优美的多线程程序,虽然ThreadLocal非常有用,但是似乎现在了解它、使用它的朋友还不多。 ThreadLocal是什么 ThreadLocal是什么呢?其实ThreadLocal并非是一个线程的本地...
2010-04-09 16:06:03
83
Spring Aop
使用Spring AOP,开发者无需实现业务逻辑对象工厂,无需实现代理工厂,这两个工厂都由Spring容器充当。Spring AOP不仅允许使用XML文件配置目标方法,ProxyHandler也允许使用依赖注入管理,Spring AOP提供了更多灵活的选择。在下面Spring AOP的示例中,InvocationHandler采用动态配置,需要增加的方法也采用动态配置,一个目标对象可以有多个拦截器...
2010-03-13 17:16:38
88
Java中的异常分类
Java中的异常类,包括内置的异常类以及自定义的异常类,都直接或者间接地继承至java.lang.Throwable类。 1. 两个主要分支:在java.lang包中,我们可以看到Throwable类有两个直接子类:Error类和Exception类,如图所示: 图 1. java异常类型层次 Error类及其子类...
2010-03-10 21:53:57
102
Spring Velocity Email
send email with velocity and spring 完整示例1.封装邮件信息类:package com.chenlb.mail;import java.util.Map;import javax.mail.MessagingException;import javax.mail.internet.MimeMessage;import org.apache.common...
2010-03-09 14:38:45
108
原创 StringBuStringffer 和 StringBuilder 区别
String 字符串常量 StringBuffer 字符串变量(线程安全) StringBuilder 字符串变量(非线程安全) 简要的说, String 类型和 StringBuffer 类型的主要性能区别其实在于 String 是不可变的对象, 因此在每次对 String 类型进行改变的时候其实都等同于生成了一个新的 String 对象,然后将指针指向新的 String 对象,所以经常改变内容...
2010-02-05 17:37:34
156
原创 Spring数据源的配置
无论使用何种DAO都需要配置数据源。Spring提供了一些配置数据源的方法,包括通过JDBC驱动,通过JNDI查询以及数据池连接等。下面分别介绍各种数据源配置的方法·使用JNDI数据源 此种方法的好处在于他们可以独立应用程序之外进行配置。应用程序只有在需要访问数据库时才需要请求数据源。通常情况下,应用服务器中配置的数据源是以数据池的方式配置的,这样就可以让系统管理员很容易地进行...
2010-02-03 16:35:35
75
原创 BeanPostProcessor PropertyPlaceholderConfigurer
3.7. 容器扩展点Spring框架的IoC容器被设计为可扩展的。通常我们并不需要子类化各个BeanFactory或ApplicationContext实现类。而通过plugin各种集成接口实现来进行扩展。下面几节专门描述这些不同的集成接口。3.7.1. 用BeanPostProcessor定制bean我们关注的第一个扩展点是...
2010-02-03 16:16:05
173
原创 使用Quartz实现任务调度和任务调度管理
Quartz要求一个任务必须实现接口Job的execute方法,如下一个简单的Job:import java.util.Date;import org.quartz.Job;import org.quartz.JobExecutionContext;import org.quartz.JobExecutionException;public class SimpleJob implements...
2010-01-26 20:54:03
212
原创 build-helper-maven-plugin 配置多 source resource 文件
1. 配置项目的pom文件(Maven配置文件) 1.1 Maven 默认的源文件夹及资源文件夹配置 Maven 默认的源文件夹及资源文件夹的配置代码如下: <build> ... < sourceDirectory > src/main/java </ sourceDirectory > ...
2010-01-15 16:06:36
737
原创 groovy 入门
一、groovy是什么简单地说,Groovy 是下一代的java语言,跟java一样,它也运行在 JVM 中。作为跑在JVM中的另一种语言,groovy语法与 Java 语言的语法很相似。同时,Groovy 抛弃了java烦琐的文法。同样的语句,使用groovy能在最大限度上减少你的击键次数——这确实是“懒惰程序员们”的福音。 二、开发环境1、 jdk 1.5以上2、 ...
2010-01-14 14:03:04
1354
原创 Java timezone
转自:行者买刀 获得java时间时,突然获得的时间不是当前的系统时间 先打开系统时间设置图片 把当前的时区改成其他的随便一个.这时候会出现如下图片一个"根据夏时制自动调节时钟(U).这时我们把这个勾去掉,再把时区设置为原来的时区,这里我的时区是中国GMT+8. 设置完之后,打开你的IDE, public static void main(String[] args)...
2010-01-13 20:57:07
109
原创 Jbpm4 pvm
PVM的过程调度是非常灵活的,PVM提供了一套和token类似的execution过程调度机制,通过对execution的完全操控,节点运行期行为有了无限的可能。 PVM的流程定义模型首先要说明的是,上图里的类全是接口。位于最上层的是ObservableElement,其提供给流程元素以附加Event(事件)的能力。在ObservableElementImpl里,它持有一个event...
2010-01-12 15:51:10
122
原创 JBPM3 JBPM4
JBPM是一个优秀的开源工作流框架,核心引擎算法源自PetriNet理论,并深度了集成了Hibernate作为引擎的持久框架。2006年底,我开始关注JBPM,并准备作实际应用,但是当时关于JBPM的中文资料比较少,于是打算翻译JBPM官方的user guide,翻译初稿在07年上半年完成,对应的版本是V3.1.2,打算在年底利用假期完善后发出来。不过JBPM后来发布了3.2版,其文档也做...
2010-01-12 15:14:58
126
原创 JBPM4 例子
1.新建一个动态的web项目 2.在lib目录下加入以下jar包(由于用到fileupload的上传,所以还要加入fileupload的依赖库)引用*JBPM4_HOME/jbpm.jar *JBPM4_HOME/lib/*.jar *jakarta-taglibs-standard-1.1.2_HOME/lib/jstl.jar *jakarta-taglibs-standard-1....
2010-01-12 14:35:08
143
原创 jBPM-jPDL学习笔记——流程设计与控制
代码说明: 在借款流程发起后,流程进入了申请单填写阶段。这个阶段是个人工的任务,需要用户的介入。因此,对于要借款的用户而言,首先是获取填写申请单的任务实例: TaskInstance ti = (TaskInstance)pi.getTaskMgmtInstance().getTaskInstances().iterator() .next() 在这个测试类中,由于没有数据库。对流程实例的引用是依...
2010-01-08 17:19:28
117
原创 Javap
javap是jdk自带的一个工具,可以反编译,也可以查看java编译器生成的字节码,是分析代码的一个好工具。下面我们通过具体的一个例子来简单的讲讲这个工具的作用,你不需要很深入的使用,这个简单的介绍和简单的使用就可以使你受益非浅。 源代码: class StringTest { public static void main(String[] args) { String re...
2010-01-04 10:07:28
151
原创 JAVA 主动调用与被动调用
public class Test { static { System.out.println("***"); } public static final String a = "sss"; //final static double a = Math.random();}public class Test1 { public static void m...
2009-12-31 13:54:35
710
原创 Java解析XML文件的方法比较
1)DOM(JAXP Crimson解析器) DOM是用与平台和语言无关的方式表示XML文档的官方W3C标准。DOM是以层次结构组织的节点或信息片断的集合。这个层次结构允许开发人员在树中寻找特定信息。分析该结构通常需要加载整个文档和构造层次结构,然后才能做任何工作。由于它是基于信息层次的,因而DOM被认为是基于树或基于对象的。DOM 以及广义的基于树的处理具有几个优点。首先,由于树在内存...
2009-12-24 17:14:30
122
原创 Java 遍历二叉树
Binary.javaimport java.util.Stack;public class BinaryTree {protected Node root;public BinaryTree(Node root) { this.root = root;}public Node getRoot() { return root;}/** 构造树 */public stat...
2009-12-18 17:13:27
134
原创 Java protected
(1)除了在(2)中表述的有关继承方面的区别之外,在某个类中定义的protected 方法和属性(注意是定义的,不是继承而来的,对于继承而来的情况在(2)中有表述)和默认权限方法和属性是一样的。比如,某类的protected 方法和属性在包外是不能通过该类对象进行访问的(你能在包外访问一个类的默认权限的方法和属性吗?当然不能),这就是为什么在某对象所在的包的以外的任何地方,你不可以通过该类的对象引...
2009-12-16 15:17:28
89
原创 ConcurrentHashMap
关键字: concurrenthashmap 原理分析 集合是编程中最常用的数据结构。而谈到并发,几乎总是离不开集合这类高级数据结构的支持。比如两个线程需要同时访问一个中间临界区(Queue),比如常会用缓存作为外部文件的副本(HashMap)。这篇文章主要分析jdk1.5的3种并发集合类型(concurrent,copyonright,queue)中的ConcurrentHashMap,...
2009-12-15 11:40:33
75
原创 SimpleDateFormat 参数 Z
import java.text.SimpleDateFormat; String strDate=new SimpleDateFormat("yyyy-MM-dd").format(new java.util.Date()); 其中参数解释: Letter Date or Time Component Present...
2009-12-11 17:20:59
768
原创 UTC GMT
全球24个时区的划分相较于两地时间表,可以显示世界各时区时间和地名的世界时区表(World Time),就显得精密与复杂多了,通常世界时区表的表盘上会标示着全球24个时区的城市名称,但究竟这24个时区是如何产生的?过去世界各地原本各自订定当地时间,但随着交通和缪兜姆⒋铮鞯亟涣魅找嫫捣保煌牡胤绞奔洌斐尚矶嗬牛谑窃谖髟?884年的国际会议上制定了全球性的标准时,明定以英国伦敦格林威治这个...
2009-12-11 17:19:13
425
原创 Oracle to_char格式化函数
Postgres 格式化函数提供一套有效的工具用于把各种数据类型(日期/时间,int,float,numeric)转换成格式化的字符串以及反过来从格式化的字符串转换成原始的数据类型。 注意:所有格式化函数的第二个参数是用于转换的模板。表 5-7. 格式化函数 函数返回描述例子to_char(timestamp, text)text把 timestamp...
2009-12-09 18:05:16
144
原创 HashMap 详解
Hashmap是一种非常常用的、应用广泛的数据类型,最近研究到相关的内容,就正好复习一下。网上关于hashmap的文章很多,但到底是自己学习的总结,就发出来跟大家一起分享,一起讨论。 1、hashmap的数据结构 要知道hashmap是什么,首先要搞清楚它的数据结构,在java编程语言中,最基本的结构就是两种,一个是数组,另外一个是模拟指针(引用),所有的数据结构都可以用这两个基本结构来构造的,h...
2009-12-04 14:30:27
76
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人