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

| |
[J2SE]java类加载的表现形式 软件技术, 电脑与网络
lhwork 发表于 2006/6/23 10:07:45 |
使用者角度java中的类是动态加载的,我们先看一下我们常用的类加载方式,先有一个感性的认识,才能进一步 深入讨论,类加载无非就是下面三种方式。 class A{} class B{} class C{} public class Loader{ public static void main(String[] args) throws Exception{ Class aa=A.class; Class bb=Class.forName("B"); Class cc=ClassLoader.getSystemClassLoader().loadClass("C"); &nbs |
|
[J2SE]Java中3DES加密解密调用示例 软件技术, 电脑与网络
lhwork 发表于 2006/6/21 14:12:52 |
在java中调用sun公司提供的3DES加密解密算法时,需要使用到$JAVA_HOME/jre/lib/目录下如下的4个jar包:
jce.jar
security/US_export_policy.jar
security/local_policy.jar
ext/sunjce_provider.jar
Java运行时会自动加载这些包,因此对于带main函数的应用程序不需要设置到CLASSPATH环境变量中。对于WEB应用,不需要把这些包加到WEB-INF/lib目录下。
以下是java中调用sun公司提供的3DES加密解密算法的样本代码:
/* 字符串 DESede(3DES) 加密 */ import java.security.*; import javax.crypto.*; import javax.crypto.spec.SecretKeySpe |
|
[J2SE]Java程序性能优化 软件技术, 电脑与网络
lhwork 发表于 2006/6/13 13:45:40 |
一、避免在循环条件中使用复杂表达式
在不做编译优化的情况下,在循环中,循环条件会被反复计算,如果不使用复杂表达式,而使循环条件值不变的话,程序将会运行的更快。
例子: import java.util.Vector; class CEL { void method (Vector vector) { for (int i = 0; i < vector.size (); i++) // Violation ; // ... } } < |
|
[J2SE]网站验证码的若干问题 软件技术, 电脑与网络
lhwork 发表于 2006/6/12 15:00:02 |
显示附加码的主要问题是能够在不支持XWindows的linux环境下显示图片, 毕竟大型的网站是基于linux操作系统,同时一般不会安装XWindow。Linux下的JDK1.4中的awt功能, 要用到 XWindow 的一些库,所以需要安装。 如果你使用的是JDK1.5 + Tomcat,就不会有这个问题,JDK1.5重写awt库了。 如果是在linux或者unix下面使用验证码,用xwindows启动系统,启动tomcat, 可以解决在linux下面不能显示验证码的问题。 可以使用export JAVA_OPTS="-Djava.awt.headless=true", 在catalina.sh中增加CATALINA_OPTS="$CATALINA_OPTS -Djava.awt.headless=true" 在启动Weblogic中要加上这个参数-Djava.awt.hea |
|
[J2SE]执行的Runtime类调用程序停掉的原因 软件技术, 电脑与网络
lhwork 发表于 2006/6/12 14:56:38 |
牛牛发现问题的原因,Process process=Runtime.getRuntime().exec("");中产生停滞(阻塞,blocking)。
这个是因为Runtime.getRuntime().exec()要自己去处理stdout和stderr的。 所以如果你想让程序正常运行的话,请务必将上述用别的线程流取走。 >test.bat haha exit 99 >RuntimeTest.java public class RuntimeTest { public static void main(String[] args) |
|
[J2SE]动态代理代码(体验拦截方法) 软件技术, 电脑与网络
lhwork 发表于 2006/6/12 14:42:07 |
动态代理,作为实现AOP的方式之一,已经得到广泛的应用.本人看了很多书关于动态代理的介绍,基本就是不知所云. 所以最终自己做了一个例子,才感到有点明白,下面是我的代码 package pear;
//import org.springframework.aop.Advisor;
|
|
[J2SE]Java5泛型的用法,T.class的获取和为擦拭法站台 软件技术, 电脑与网络
lhwork 发表于 2006/6/7 14:22:35 |
Java 5的泛型语法已经有太多书讲了,这里不再打字贴书。GP一定有用,不然Java和C#不会约好了似的同时开始支持GP。但大家也清楚,GP和Ruby式的动态OO语言属于不同的意识形态,如果是一人一票,我想大部分的平民程序员更热衷动态OO语言的平白自然。但如果不准备跳槽到支持JSR223的动态语言,那还是看看GP吧。
胡乱总结泛型的四点作用: 第一是泛化,可以拿个T代表任意类型。 但GP是被C++严苛的静态性逼出来的,落到Java、C#这样的花语平原里----所有对象除几个原始类型外都派生于Object,再加上Java的反射功能,Java的Collection库没有范型一样过得好好的。
第二是泛型 + 反射,原本因为Java的泛型拿不到T.class而觉得泛型没用,最近才刚刚学到通过反射的API来获取T的Class,后述。
第三是收敛,就是增加了类型安全,减少了强制类型 |
|
[J2SE]使用java.util.Timer 软件技术, 电脑与网络
lhwork 发表于 2006/6/7 10:14:14 |
在应用开发中,经常需要一些周期性的操作,比如每5分钟检查一下新邮件等。对于这样的操作最方便、高效的实现方式就是使用java.util.Timer工具类。比如下面的代码每5分钟检查一遍是否有新邮件:
private java.util.Timer timer;
timer =& |
|
[J2SE]Java生成缩略图代码 软件技术, 电脑与网络
lhwork 发表于 2006/6/2 17:33:55 |
方法1: 缩略图只要10行代码就够了,前面介绍过N次了.自己不能往前找找吗?
Image src = ToolKit.getToolKit().createImage("文件路径"); 然后先生成一个BufferedImage bi作为画布. BufferedImage bi = new BufferedImage(目标宽, 目标高,BufferedImage.TYPE_INT_RGB); 得到它的Graphics对象: Graphics g = bi.getGraphics(); 然后往这个画而上画原图就行了: g.grawImage(src,0,0,目标宽,目标高,null); 找一个编码类,如JPEGEncoder,GIFEncoder 把bi编码输出就行了.
方法2: import javax.imageio.ImageIO; import javax.imageio.IIOException; import java.awt.image.BufferedImage; im |
|
|