![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
i李小武
上帝把所有人都骗了,因为地狱才是最美的。。。佛知道真相,所以佛说:“我不入地狱,谁入地狱?”
展开
-
关于六种Java异常处理程序的陋习
&q你觉得自己是一个Java专家吗?是否肯定自己已经全面掌握了Java的异常处理机制?在下面这段代码中,你能够迅速找出异常处理的六个问题吗?1 OutputStreamWriter out = ...2 java.sql.Connection conn = ...3 try { // ⑸4 Statement stat = conn.createStatement();5 Re转载 2009-07-28 12:30:00 · 453 阅读 · 0 评论 -
JDK5.0新特性------泛型
泛型是Java SE 1.5的新特性,泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。这种参数类型可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口、泛型方法。 Java语言引入泛型的好处是安全简单。 在Java SE 1.5之前,没有泛型的情况的下,通过对类型Object的引用来实现参数的“任意化”,“任意化”带来的缺点是要做显式的强制类型原创 2009-09-28 19:16:00 · 625 阅读 · 0 评论 -
JNI入门 一个JNI的HelloWorld 程序
JNI是java本地编程接口。是 Java Native Interface 的英文缩写。他能够使java代码与用其他编程语言编写的应用程序和库进行互操作。(其他编程语言大多是c,c++和汇编语言。) 下面来写一个间的HelloWorld程序。 首先启动Eclipse 新建一个java工程:新建一个class 注意:必须在类中声明一个n原创 2009-09-28 19:14:00 · 646 阅读 · 1 评论 -
Java开源软件六大帮派
Java开源软件千千万,就好像一个江湖,有势力的有背景的就结成了一个帮派,经过不断的竞争,淘汰,六大帮派脱颖而出。 丐帮 - Apache Software Foundation 在我开始学习Java的时候,Apache的Jakarta子项目还很弱小,Apache的头牌是Apache HTTPD Server(至今也还原创 2009-09-28 12:40:00 · 471 阅读 · 1 评论 -
算法:归并排序
又花了点时间看看算法,这次看的是归并。感觉归并的效率比插入排序高多了!代码给上 package oliver.algorithm.sort;public class MergeSort { public static void sort(int[] arr,int first,int last) { int mid=0; if(first<last) {原创 2009-11-21 22:43:00 · 505 阅读 · 0 评论 -
MyEclipse 6.5 JPBM 插件安装
实验了好几次,只有一种最不好的方法成功了。第一种(失败):官网给的方法The installation of the GPD uses the Eclipse Software Update mechanism and is pretty straightforward. There is an archived update site included in the runtim原创 2010-05-02 23:31:00 · 2052 阅读 · 2 评论 -
jBPM4教程 jBPM4视频教程推荐
最近一直在学习jBPM,以前传智播客有一套视频,针对jBPM3的,不过是学生录制的,效果很差,而且现在jBPM4.3已经发布,与jBPM3的差别不小,索性直接学习jBPM4了。官网上看看了,有一套用户手册跟一套开发手册,但不太适合初学者。google一下 发现了下面的资料。 《jBPM 4视频教程》:基于jBPM 4.3,发布日期2010-3-5。NO.分级标题原创 2010-05-04 18:10:00 · 6676 阅读 · 3 评论 -
Tomcat6下使用jBPM-4出现 java.lang.LinkageError。javax/el/ExpressionFactory解决办法
这个错误恶心了我一天,现在终于解决了以下是找到的方法:因为tomcat6下的el-api.jar与jBPM-4使用的juel.jar产生冲突。解决方法一:改用tomcat-5.5。解决方法二:将juel.jar, juel-engine.jar, juel-impl.jar三个文件复制到tomcat的lib目录下,删除原有的el-api.jar即可解决。 原文:转载 2010-05-03 21:51:00 · 4466 阅读 · 0 评论 -
jBPM4.3 一个请假例子 web
这个例子不能说是完全原创,是在一个例子的基础上修改的,不过拿出来分享大家请轻砸。jbpm的例子不是很多,而且前篇一律。高级的东西还得看开发手册跟源码。不多说,上图: 对应的source1 ?xml version="1.0" encoding="UTF-8"?> 2 3 process name="loan" xmlns="http://jbpm.org/4.3/jpdl原创 2010-05-06 10:10:00 · 7390 阅读 · 21 评论 -
策略模式之商场促销
每到5.1 10.1等节日,都会看到商场里人山人海。商场之所以如此吸引人,是因为疯狂的折扣。下面以商场打折为例,谈谈策略模式。商品的折扣算法:算法一:对于有的商品,没有折扣。算法二:对于有的商品,采取固定金额的折扣。算法三:对于有的商品,采取百分比的折扣。解决方案:方案一:将所有的业务逻辑放在客户端。客户端根据参数选择具体的算法,但是这样客户端会变得复杂原创 2010-05-13 11:38:00 · 1800 阅读 · 0 评论 -
管理好聚集——迭代子(Iterator)模式
迭代子模式为遍历聚集提供了统一的接口方法,从而使得客户端不需要知道聚集的内部结构就能就能对聚集进行遍历等操作。迭代子模式的结构:一般结构: 涉及到的角色解释:抽象迭代子(Iterator)角色:定义了遍历聚集的接口。具体迭代子(ListIterator)角色:实现了抽象迭代子接口。抽象聚集(Collection)角色:定义聚集的公共方法,并为聚集原创 2010-05-14 11:30:00 · 957 阅读 · 0 评论 -
java中的陷阱 你注意了么?
看了一段北风网的视频,总结几个经典的java陷阱给大家。答案隐藏了,Ctrl+A显示。建议先思考一下结果,然后运行代码试验。也许你会恍然大悟。1、找奇数:public static boolean isOdd(int i){ return i % 2 == 1; } 上面的方法真的能找到所有的奇数么?A:没有考虑到负数问题,如果传参是负数,那么永远不能得到结果!原创 2010-05-17 00:01:00 · 5819 阅读 · 61 评论 -
JSP 分页框架 Pager Tag Library使用
很久没写技术文章了,最近正在学习,把以前的东西总结一下。 最新的Pager版本请到http://jsptags.com/tags/navigation/pager/下载 Pager采用标签的形式对数据进行分页,用法简单,支持自定义分页样式。 举个例子: 效果如下: 注:demo采用了SSH(struts2+hibernate+spring) 其实根本不用这么复杂就能演示,只是为了学习,分页效果加入css样式。 1.首先下载pager-taglib.jar并放到classpath中。 2.原创 2010-08-10 14:43:00 · 6211 阅读 · 2 评论 -
kaptcha 简单方便的验证码生成工具
kaptcha是一个非常实用的验证码生成工具,有了它,你可以生成各种样式的验证码,因为它是可配置的。下面介绍一下用法:1.首先去官网下载jar:http://code.google.com/p/kaptcha/2.建立一个web项目,导入kaptcha-2.3.jar到环境变量中。3.配置web.xml文件Kaptcha原创 2010-09-11 15:13:00 · 14243 阅读 · 0 评论 -
读书笔记:设计模式-简单工厂模式(SimpleFactory)
不想做过多的理论说明,举个例子吧。有个鞋厂,生产耐克,李宁的鞋子,用代码实现,怎么做呢? 1 package org.gunct.pattern; 2 3 public class ShoesFactory { 4 5 public void getNikeShoes() 6 { 7 System.out.println("工厂生产了耐克鞋!"); 8 } 9 public void getLiNingSho原创 2009-04-21 11:00:00 · 542 阅读 · 1 评论 -
Java中的transient,volatile和strictfp关键字
ava中的transient,volatile和strictfp关键字 如果用transient声明一个实例变量,当对象存储时,它的值不需要维持。例如: Java代码 class T { transient int a; //不需要维持 int b; //需要维持 } 这里,如果T类的一个对象写入一个持久的存储区域,a的内容不被保存,但b的将被保存。 volatil原创 2009-04-20 23:45:00 · 477 阅读 · 0 评论 -
Tomcat 7 的七大新特性
<br />英文原文:Top 7 Features in Tomcat 7: The New and the Improved<br /> <br />Tomcat的7引入了许多新功能,并对现有功能进行了增强。很多文章列出了Tomcat 7的新功能,但大多数并没有详细解释它们,或指出它们的不足,或提供代码示例。本文将明确描述TOMCAT 7中七个最显著的特征和新增的功能,并对其作出评论,而不是仅仅列出新的功能。本文还提供了代码例子以方便你可以对其有更好的理解。 <br /><br /> 本文分转载 2010-10-02 17:19:00 · 969 阅读 · 3 评论 -
集合排序 Comparator Comparable
复习,顺便记录下来!通过Collections.sort和 Arrays.sort对对象排序时,有两种方式,排序对象实现Comparable接口重写compareTo方法和给sort方法传递实现Comparator接口的参数,下面的SortObject对象,实现了这两中方法。package oliver.java.test.sort;import java.util.Comparator;/** * SortObject。 * 详细说明: * * 无。 * 修改列表原创 2010-10-29 14:35:00 · 560 阅读 · 0 评论 -
参数化方法返回类型,参数化数组
有的时候,我们想让一个方法根据参数类型返回相应类型的值,还有的时候,想把数组参数话,今天在Think In Java看到了一小段有用的代码,分享!可以采用两种方式实现:类参数和方法参数,个人觉得方法参数比较好,灵活性大。package oliver.java.test.array;import java.util.Arrays;class ClassParameter{ public T[] func(T[] arg){return arg;}}class MethodParamet原创 2010-10-29 11:20:00 · 1044 阅读 · 0 评论 -
java执行命令(cmd,shell)
<br />一个简单的小工具,用java执行系统命令,并打印输出。<br />public class OSExecute{ /** * <b>command。</b> * <p><b>详细说明:</b></p> * <!-- 在此添加详细说明 --> * 无。 * @param command */ public static void command(String command){ try { Process process=ne原创 2010-12-29 09:32:00 · 3099 阅读 · 0 评论 -
利用反射访问类的私有成员
一般情况下,java类的私有成员变量不能直接访问,如果想要访问某个私有成员变量,就要给这个变量写一个访问方法getXXX()。 如果累没有定义这个访问方法,我们好像束手无策的。 其实,利用java的反射机制,我们可以做到! public class AccessPrivateField { @SuppressWarnings("unused") private String privateField="private"; @SuppressW原创 2011-02-25 17:07:00 · 1101 阅读 · 0 评论 -
浅谈Java垃圾回收
垃圾回收,是java同c++的一个重大区别,也是编写java程序不用指针的一个重要保证。在c++中,当一个对象不再有价值的时候,我们需要手动的清除这个对象,以释放空间。在java中,这个工作由垃圾回收器自动完成,程序员不必考虑难缠的对象回收问题。 一、垃圾回收的好处: 垃圾回收使程序员从释放内存的重担中解脱,可以把更多的精力放在编程和逻辑上,提高了效率。 垃圾回收保证了程序的正常运行,不会出现如c++中的因为对象忘记释放而产生的内存泄露等诸多问题。 二、垃圾回收的基本方法: 所有的垃圾回收算法都原创 2011-02-25 21:29:00 · 1102 阅读 · 0 评论 -
java泛型实现原理
JDK1.5增加的新特性里面有一个就是泛型。对于泛型的评价,褒贬不一,废话不多说,先来看看他的原理。 泛型是提供给javac编译器使用的,可以限定集合中的输入类型,让编译器拦截源程序中的非法输入,编译器编译带类型说明的集合时会去掉类型信息,对于参数化得泛型类型,getClass()方法的返回值和原始类型完全一样。 对于下面这个源程序: public class Oliver { public static void main(String[] args) {原创 2011-02-17 23:08:00 · 6236 阅读 · 4 评论 -
一些软件设计的原则
<br />本文为大家介绍软件设计中的一些原则,都是经过长期经验总结出来的知识,每一个程序员都应该了解,相信对大家在进行软件设计的过程中会有很大帮助。<br /><br />Don’t Repeat Yourself (DRY)<br />DRY 是一个最简单的法则,也是最容易被理解的。但它也可能是最难被应用的(因为要做到这样,我们需要在泛型设计上做相当的努力,这并不是一件容易的事)。它意味着,当我们在两个或多个地方的时候发现一些相似的代码的时候,我们需要把他们的共性抽象出来形一个唯一的新方转载 2011-05-17 13:15:00 · 605 阅读 · 0 评论 -
hibernate属性配置
这些属性有的时候很需要,但是记不住,所以做个备忘。 ·属性名:hibernate.ejb.classcache.描述:指定缓存实体对象,为缓存类的全名,值为缓存类型,以逗号分隔。示例如下:value=read-write/>·属性名:hibernate.ejb.collectioncache.描述:指定集合实体类缓存,设置转载 2011-06-16 23:25:00 · 4798 阅读 · 0 评论 -
JVM问答
大部分内容来源网络,整理一下,留个底。问:堆和栈有什么区别? 答:堆是存放对象的,但是对象内的临时变量是存在栈内存中,如例子中的methodVar是在运行期存放到栈中的。 栈是跟随线程的,有线程就有栈,堆是跟随JVM的,有JVM就有堆内存。 问: 堆内存中到底存在着什么东西? 答原创 2011-07-18 15:12:12 · 1070 阅读 · 0 评论 -
软件架构设计的六大原则
1.“开-闭”原则(OCP) Software entities should be open for extension, but closed for modification. 对扩展开放,对修改封闭。2.里氏代换原则(LSP)原创 2011-08-08 11:08:29 · 5573 阅读 · 2 评论 -
并发环境下,我们的工具类是否安全?
由于web天生并发性,导致我们的一般java工具类会在这样的环境下出现问题。其实问题的根源就是我们的工具类不是线程安全的。有一个生成md5的工具类:public class MD5 { private static long[] state = new l原创 2011-09-12 11:26:52 · 1840 阅读 · 0 评论 -
Set 不重复实现原理
Java中的set是一个不包含重复元素的集合,确切地说,是不包含e1.equals(e2)的元素对。Set中允许添加null。Set不能保证集合里元素的顺序。在往set中添加元素时,如果指定元素不存在,则添加成功。也就是说,如果set中不存在(e==null ? e1==nu原创 2010-11-26 20:33:00 · 19852 阅读 · 1 评论 -
Object.toString()返回字符串的意义:对象名+@+对象内存地址?
在java中,如果一个对象未重写toString()方法,那么它将会调用父类的toString(),如果父类也没有重写这个方法,那么就迭代往上调用,直到Object的toString()方法。我们在打印这个toStirng()方法的时候,会出现XXXX@e29820字样,那么原创 2010-11-26 17:00:00 · 5611 阅读 · 3 评论 -
Java 中的语法糖 (Syntactic Sugar)
语法糖(Syntactic Sugar),也叫糖衣语法,是英国计算机科学家彼得·约翰·兰达(Peter J. Landin)发明的一个术语。指的是,在计算机语言中添加某种语法,这种语法能使程序员更方便的使用语言开发程序,同时增强程序代码的可读性,避免出错的机会;但是这种语法对语言原创 2011-09-18 15:12:40 · 19769 阅读 · 6 评论 -
JVM 垃圾回收算法
在说垃圾回收算法之前,先谈谈JVM怎样确定哪些对象是“垃圾”。1.引用计数器算法:引用计数器算法是给每个对象设置一个计数器,当有地方引用这个对象的时候,计数器+1,当引用失效的时候,计数器-1,当计数器为0的时候,JVM就认为对象不再被使用,是“垃圾”了。引用计数器实原创 2011-09-19 19:13:17 · 13812 阅读 · 1 评论 -
iText 解决中文问字体问题 显示中文
总结一下,基本上有三种方法解决iText显示中文问题。 方法一:使用Windows系统字体(TrueType)方法二:使用iTextAsian.jar中的字体方法三:使用资源字体(ClassPath)由于比较简单,直接上代码了。package oliv原创 2010-10-08 09:51:00 · 34796 阅读 · 9 评论 -
JVM 类加载过程
类从加载到虚拟机到卸载,它的整个生命周期包括:加载(Loading),验证(Validation),准备(Preparation),解析(Resolution),初始化(Initialization),使用(Using)和卸载(Unloading)。其中,验证、准备和解析部分被称原创 2011-09-20 15:16:07 · 19843 阅读 · 2 评论 -
利用Flying Saucer 和 iText 实现HTMl转PDF(java)
PDF是目前为止最流行的文档格式之一。通常情况下,想要创建一个PDF文档,需要使用Adobe的API来生成,但这非常麻烦。为了能方便的将HTML(XHTML)生成PDF文档,下面介绍两个开源的java库:Flying Saucer和iText。Flying Saucer和iT翻译 2010-10-27 11:26:00 · 8241 阅读 · 3 评论 -
JVM 运行时数据区域
Java虚拟机管理的内存包括以下几个运行时数据区域:1.程序计数器: 程序计数器是一块比较小的内存空间,是当前线程执行的字节码行号指示器。Java多线程是通过线程轮流切换来实现的,所以每个线程都有一个自己独立的程序计数器,各个线程的程序计数器互补干扰原创 2011-09-23 15:18:03 · 1657 阅读 · 0 评论 -
Java 枚举7常见种用法
DK1.5引入了新的类型——枚举。在Java中它虽然算个“小”功能,却给我的开发带来了“大”方便。用法一:常量 在JDK1.5之前,我们定义常量都是:public static fianl ....。现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,原创 2011-09-26 20:03:22 · 1352 阅读 · 1 评论 -
Lucene 实战:快速开始 简单查询
创建索引参考:http://blog.csdn.net/ol_beta/article/details/6840619 /** * * 查询 * * @throws IOException * @throws ParseException原创 2011-10-02 16:57:46 · 1035 阅读 · 0 评论 -
Lucene 实战:快速开始 创建索引
import java.io.File;import java.io.FileNotFoundException;import java.io.FileReader;import java.io.IOException;import org.apache.lucene.原创 2011-10-02 16:36:14 · 1367 阅读 · 0 评论 -
JNI入门 一个JNI的HelloWorld 程序
JNI是java本地编程接口。是 Java Native Interface 的英文缩写。他能够使java代码与用其他编程语言编写的应用程序和库进行互操作。(其他编程语言大多是c,c++和汇编语言。) 下面来写一个间的HelloWorld程序。 首先启动Eclipse 新建一个java工程:新建一个class 注意:必须在类中声明一个native方法 package...2009-09-28 19:14:00 · 117 阅读 · 0 评论