Blog信息 |
blog名称: 日志总数:1304 评论数量:2242 留言数量:5 访问次数:7584163 建立时间:2006年5月29日 |

| |
[J2SE]JDK1.5 注释语法(Annotations)新鲜试用 软件技术
lhwork 发表于 2006/7/14 16:39:59 |
在我的上一篇文章JDK1.5新特性介绍中,我们介绍了JDk1.5新增的6个基本特性,本文继续介绍JDK1.5另外一个秘密武器,新的注释语法(Annotations)。
其实说起注解语法,对于任何一个Java开发人员来说都已经耳熟能详了,我们每天都在使用着 @author, @param,等等编写注释,然后用
javadoc生成文档。Java的这种方便的文档生成方法受到了开发者的普遍赞誉。而从JDK1.5开始,注释语法提供了更为强大的功能。
我们先谈谈注释语法本身,它有时候也称为meta-data :“描述数据的数据” 。一般来说它们可以被用来生成文档,检查代码间依赖关系,帮助编译
器作语法检查。时下比较流行的工具有Xdoclet等。对于文档生成早已经有了javadoc工具的完美表现,而对于代码检查,如今java也提供了语言 |
|
[J2SE]Java生成UUID 软件技术
lhwork 发表于 2006/7/13 10:11:00 |
UUID(Universally Unique Identifier)全局唯一标识符,是指在一台机器上生成的数字,它保证对在同一时空中的所有机器都是唯一的。按照开放软件基金会(OSF)制定的标准计算,用到了以太网卡地址、纳秒级时间、芯片ID码和许多可能的数字。由以下几部分的组合:当前日期和时间(UUID的第一个部分与时间有关,如果你在生成一个UUID之后,过几秒又生成一个UUID,则第一个部分不同,其余相同),时钟序列,全局唯一的IEEE机器识别号(如果有网卡,从网卡获得,没有网卡以其他方式获得),UUID的唯一缺陷在于生成的结果串会比较长。
在Java中生成UUID主要有以下几种方式:
1. JDK1.5 如果使用的JDK1.5的话,那么生成UUID变成了一件简单的事,以为JDK实现了UUID: java.util.UUID,直接调用即可. UUID uuid = UUID.randomUUID();
2. 第三方开源类库(推荐使用): 最著名的是 JUG .特点上是: 纯J |
|
[J2SE]javamail读取完整的邮件 软件技术, 电脑与网络
lhwork 发表于 2006/7/7 10:10:28 |
Javamail
API虽然功能封装的比较完整,但是要写一个能正确显示复杂邮件的程序还有很多逻辑和细节要处理。下面是我最近做一个webmail时整理的
Servlet,基本上可以正确的读取text,HTML,HTML中显示图片及附件。在本servlet中也简单处理了常见的中文问题,包括主题、附
件、HTML图片中文、email
Address中文。总体感觉有两个难点:1、附件和网页图片的抓取,需要定位数节点nodeid,光用partid是不行的;2、中文分两种情况
Base64和客户端服务器端编码不一致。本程序中实现了3种displayPart()的方法,具体情况不同结合使用效率更高。本程序还有一个未处理的
地方就是我在做nodeid的时候最多算10个。当然还有其他问题欢迎指正,来出是为了给后来的初学者作个参考例子,少走弯路。
& |
|
[J2SE]在可执行jar中动态载入第三方jar(转贴) 软件技术, 电脑与网络
lhwork 发表于 2006/7/5 13:32:31 |
一、前言
在商业化开发中经常是将开发的类打成jar包发布.由于有很多第三方的提供功能集合Jar
包,所以经常会用到这些功能包.以下情景是很多Java开发人员经常碰到的:在开发,调试阶段,通过在CLASSPATH中设置第三方的jar包路径,自
己编写的class工作正常.开发完毕,部署的时候,将开发的class打成一个可执行jar包,会发现通过Class.forName(String
classname) 或ClassLoader.getSystemClassLoader().loadClass(String
classname)来动态载入存在于第三方jar包中的class会抛出异常” ClassNotFoundException.
这种问题存在于通过jar –jar yourself.jar 来运行jar包,并在jar中的class中通过Class.forName(String classname)来动态载入第三方的class的时候.
常见的应用,比如根据用户的选择配置,动态载入不同厂商的JDB |
|
[J2SE]InvocationHandler 操作例子(切面概念) 软件技术, 电脑与网络
lhwork 发表于 2006/7/3 11:36:29 |
三个类,一个接口,不费话:
程序代码
public interface IHello { public void hello(String name); }
-------------------------------------------------------------------------------- public class HelloSpeaker implements IHello {
public void hello(String na |
|
[J2SE]Java做的代理服务器工具 软件技术, 电脑与网络
lhwork 发表于 2006/7/3 11:24:39 |
/************************************* * 一个基础的代理服务器类 ************************************* */ import java.net.*; import java.io.*;
public class HttpProxy extends Thread { static public int CONNECT_RETRIES=5; static public int CONNECT_PAUSE=5; static public int TIMEOUT=50; static public int BUFSIZ=1024; static public boolean logging = false; static public OutputStream log=null; // 传入数据用的Socket |
|
[J2SE]一个简单的RSA算法实现JAVA源代码 软件技术, 电脑与网络
lhwork 发表于 2006/6/27 15:42:18 |
filename:RSA.java
/* * Created on Mar 3, 2005 * * TODO To change the template for this generated file go to * Window - Preferences - Java - Code Style - Code Templates */
import java.math.BigInteger; import< |
|
[J2SE]java非对称加密的源代码(RSA) 软件技术, 电脑与网络
lhwork 发表于 2006/6/27 15:40:18 |
鉴于rsa加密的重要性和相关源代码的匮乏,经过整理特此贴出。需要下载bcprov-jdk14-123.jar。 import javax.crypto.Cipher; import java.security.*; import java.security.spec.RSAPublicKeySpec; import java.security.spec.RSAPrivateKeySpec; import java.security.spec.InvalidKeySpecException; import java.security.interfaces.RSAPrivateKey; import java.security.interfaces.RSAPublicKey; import java.io.*; import java.math.BigInteger; /** * RSA 工具类。提供加密,解密,生成密钥对等方法。 * 需要到 |
|
[J2SE]配置jce开发环境 软件技术, 电脑与网络
lhwork 发表于 2006/6/27 15:38:39 |
虽然JDK1.4将java安全包包含在核心库中,但如果不对jce进行配置,也没办法使用jce进行开发。
首先从sun网上下载jce1.2.2(我在网上看到的都是下载一个包,没用sun默认的),然后把解压得到的lib里面的所有jar文件拷到your_jdk\jre\lib\ext(your_jdk为你的jdk安装目录),编辑your_jdk\jre\lib\security\java.policy文件,在最后加上
| |
[J2SE]java中对象的排序 软件技术, 电脑与网络
lhwork 发表于 2006/6/27 13:24:05 |
1:排序类
package com.tixa.bad.customer.util;
import java.util.ArrayList; import java.util.Collections; import java.util.Comparator;
import com.tixa.bad.customer.data.AdstatGraphArea;
/** * 对地区数据进行排序 * * @StatAreaSort * * @author * * TODO */ public class StatAreaSort { /** * 点击排序规则,倒序 */ private static Comparator orderClick = new Compar |
|
|