J2SE
文章平均质量分 79
sunyujia
无
展开
-
使用class.getClassLoader().getResource("")的注意事项
前几天在写一个C/S的小工具,使用class.getClassLoader().getResource("")时,发现一个问题,程序如下: package com.syj;public class ClassLoaderTest { public static void main(String[] args){ String classPath1 = ClassLo原创 2007-09-24 13:25:00 · 10487 阅读 · 0 评论 -
Spring讲述如何创建hibernate配置文件对象
今天在论坛上看到一位朋友希望自己在java中动态的创建hibernate的配置文件(并不是生成而是创建hibernate配置文件对象),脑海中第一个想到的就是spring源码,因为spring有整合hibernate的功能,于是翻阅了spring的代码一看,果然很简单。下面先发断简单的demo。 public static void main(String[] args) t原创 2008-05-25 00:00:00 · 3355 阅读 · 0 评论 -
java中的静态代理与动态代理
java中的静态代理与动态代理 本来打算今天写点jpa方面的东西,结果搞上了代理,索性就把研究成果放出来吧,java中的代理有两种一种是静态代理一种是动态代理,静态代理其实很容易理解,静态代理其实就是个装饰器而已,而动态代理则借助于jvm的支持,在运行时动态生成代理类。 在这里我通过一个UserDao阐述这个问题。现实生活中这是一个很实际的应用。package com.syj原创 2008-06-01 12:18:00 · 2741 阅读 · 0 评论 -
利用java反射调用类的的私有方法
今天和一位朋友谈到父类私有方法的调用问题,本来以为利用反射很轻松就可以实现,因为在反射看来根本不区分是否是private的,没有想到调用本身的私有方法是可以的,但是调用父类的私有方法则不行,后来纠其原因很有可能是因为getDeclaredMethod方法和getMethod方法并不会查找父类的私有方法,于是只好自己写递归了,经过尝试果然如此。把代码放出来方便更多人。这段代码可以解决很多实际原创 2008-06-01 22:57:00 · 26274 阅读 · 6 评论 -
junit测试的一点心得
相信大家都使用junti进行测试过,没使用过也没关系因为这篇文章内容和题目其实没什么关系,呵呵,只是在用junit时发现了一点小问题。 在用junit测试由spring托管的程序时,有时会加载一些外部文件例如如下配置 class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"> p原创 2008-06-01 23:12:00 · 2180 阅读 · 0 评论 -
打破类加载的委托模式,指定类加载器的小技巧
目前java中的类加载是通过委托机制来完成的,也就是说一个类加载器加载一个类的时候会先委托它的父级类装载器去加载,如果他的父亲还有父亲就在委托他父亲的父亲去加载,就这样一直追溯到根类加载器BootStrap,如果BootStrap加载不了目标类,在由BootStrap的下一级去加载,这样一级一级的回退,当回退到最初的类装载器时,如果它自己也不能完成类装载,会抛ClassNotFou原创 2008-06-08 14:35:00 · 3148 阅读 · 0 评论 -
java 常用IO操作
java中有关IO操作的API太多了,而且因为历史原因,有些api已经被废弃,有时不免让一些初学者比较迷糊,今天抽时间整理了我平时常用的流操作,分享出来,如果有写错的地方,还请大家指正,因为大部分方法都写了注释,所以main中的测试代码就不写注释了.对于理论性的资料大家可参阅http://www.blogjava.net/spark/archive/2006/09/29/72733.html这原创 2008-06-15 23:25:00 · 6550 阅读 · 14 评论 -
利用反射模拟Tomcat类加载器的toString方法
一直认为tomcat5的类加载器的toString方法很酷,为什么呢?因为它的toString方法列出了所有的父类加载器以及类加载器加载的资源(即classpath).可能有些朋友还没有注意过,如果想看看它到底有多酷的话可以随便找个jspWEB-INF/classes/com/syj/Test启动tomcat访问jsp,看看控制台:信息: Exposing service with n原创 2008-09-20 17:08:00 · 3818 阅读 · 0 评论 -
JDK5.0垃圾收集优化之--Don't Pause
作者简介:肖桦,江南白衣,开源项目SpringSide--春天的旁边发起者。 转自:http://blog.csdn.net/calvinxiu/archive/2007/05/18/1614473.aspx 原本想把题目更简单的定为--《不要停》的,但还是自己YY一下就算了。 Java开发Server最大的障碍,就是JDK1.4版之前的的串行垃圾转载 2008-07-06 19:49:00 · 3088 阅读 · 0 评论 -
告别获取不安全的相对路径-取当前类的Classpath
这是一个古老的话题了,我曾经写过一篇文章讨论这个话题http://blog.csdn.net/sunyujia/archive/2008/01/05/2027087.aspx 取得相对路径的方法有很多,但是安全的方法并不多,我什么这么说呢?我先说下一些流行方法的不安全性转载请注明出处http://blog.csdn.net/sunyujia/1.new File(./xx.tx原创 2008-09-21 13:12:00 · 11650 阅读 · 4 评论 -
有趣的生产者消费者问题
转载请注明出处:http://blog.csdn.net/sunyujia/论坛上的网友提出的问题,每生产3个只能消费2个,感觉不是很难于是动手操之,为了省事在原来的http://blog.csdn.net/sunyujia/archive/2008/05/02/2362015.aspx 基础上修改的。唯一的难点在于生产3个的线程不是同一线程。消费2个的线程不是同一线程。就是说不能是一原创 2008-10-17 23:27:00 · 3884 阅读 · 2 评论 -
Oracle中的Clob与String类型转换
转载请注明出处:http://blog.csdn.net/sunyujia/在论坛上看到的一个问题,其实我从来没有用过Clob,因为确实没这个需求,但是为了抢分,如何最快的找到解决方案呢,第一时间想到spring,因为spring对orm工具有封装, 像ibatis,hibernate等,在spring.jar中大概翻了一下包,根据包名和类名发现如下可疑类org.springframework原创 2008-10-01 19:29:00 · 38599 阅读 · 6 评论 -
自己动手编写启动JAVA程序的EXE文件
转载请注明出处:http://blog.csdn.net/sunyujia/ 有大多的Java人,在四处寻找能将jar打包成exe的工具,另我十分不解的是为什么要打包呢,其实目的无非是想用exe启动而已,其实打包真的没什么好处,一个5m的程序打包成exe还可以,如果一个100m的程序呢?如果这个100m的程序同时还要集成jre呢.打包后启动速度应该不用我多说,而且目前几乎所有打包程序都不是原创 2008-11-02 17:02:00 · 10935 阅读 · 5 评论 -
Class文件版本随意看
转载请注明出处:http://blog.csdn.net/sunyujia/最近一直在忙工作,工作之余打psp,很久不打理博客了,前天想查一个class文件的编译版本,感觉很麻烦,需要看16进制,于是昨天晚上写了个小工具,就几行代码,没什么研究价值,贴出来主要是为了方便大家使用.以后就不用看16进制了.全部版本号请看 http://blog.csdn.net/sunyujia/archiv原创 2008-12-05 21:23:00 · 8042 阅读 · 5 评论 -
使用java调用存储过程的通用封装
本文章所提及的全部源码和测试用例已经上传到http://download.csdn.net/source/459115欢迎朋友们下载、测试、评判、指正,给出宝贵意见.谢谢!对于在java中调用存储过程,我一直因为是一件比较头疼的事情,因为各个数据库的实现往往不相同,这样就很难保证同一套程序在sqlserver和oracle上都能执行.尽管两个数据库中的存储过程名字和参数已经基本相同,以前用sp原创 2008-05-18 19:30:00 · 6586 阅读 · 6 评论 -
巧用正则批量替换IBATIS中的sql参数注入方式
最近发现如果sql语句比较长,且参数比较多的时候(很多很多?),在sqlserver2000上预编译速度超慢,sqlserver2005快一倍左右,但还是没有直接执行静态的sql快,本来2秒就能搞定,结果在2000上要20多秒,2005上要10秒左右,jtds驱动预编译更慢. 真是比较晕,为了解决性能问题只能抛弃PreparedStatement了,直接拼装sql执行。好像跑题了,原创 2008-05-19 23:18:00 · 2960 阅读 · 0 评论 -
When Runtime.exec() won't
http://www.javaworld.com/javaworld/jw-12-2000/jw-1229-traps.htmlWhen Runtime.exec() wont Navigate yourself around pitfalls related to the Runtime.exec() methodSummary-->SummaryIn this insta转载 2007-10-20 14:05:00 · 2722 阅读 · 0 评论 -
判断字符串是不是GB2312?
由于各处转载已无法找到原创作者,请作者见谅!对于gb2312来讲,首字节码位从0×81至0×FE,尾字节码位分别是0×40至0×FE,所以 : /** * 对于gb2312来讲,首字节码位从0×81至0×FE,尾字节码位分别是0×40至0×FE * * @param str * @return */ publ转载 2007-10-20 22:22:00 · 2821 阅读 · 0 评论 -
java打包exe 制作安装包 With JRE 自启动
又是一个无聊的周末,硬着头皮给客户想出一套java程序打包的解决方案目标:有安装程序包像安装qq一样简单一直下一步即可 ,可卸载,要求程序自动启动,不需要单独安装JRE,就在写这套解决方案的时候,我真是百般痛恨微软.哎无奈啊.幸好最终还是被我想出来了,分享下吧,好久不写博了.第一步 jre减肥,删除jre/lib/rt.jar中不使用的类,删除charsets.jar中不使用的字符集编码.原创 2008-03-09 14:31:00 · 15195 阅读 · 10 评论 -
java实现 生产者和消费者问题 多线程同步示例
package com.producerconsumer;/** * * Title:产品 * * * @author 孙钰佳 * @main sunyujia@yahoo.cn * @date 2008-3-16 下午02:50:12 */public class Produce { /** * 产品名称 */ private String name;原创 2008-03-16 16:05:00 · 1672 阅读 · 2 评论 -
Base64 加密 解密
在过去的一年里我还是一个比较喜欢自己发明轮子的人,不过现在不同了。前几天需要个Base64处理类,在一个开源项目里面找到了Base64的加密解密程序感觉非常不错,毕竟不喜欢引入sun.开头的包。 import java.util.Arrays; /** * A very fast and memory efficient class to encode a转载 2008-01-01 23:09:00 · 4748 阅读 · 5 评论 -
java 相对路径的一种解决方案
做web开发有时会需要访问本地文件(例如放在web-info下面的配置文件),然而本来是一件很简单的事情,确因tomcat和weblogic类加载机制的不同,而无法实现平台化,虽然可以利用HttpServletRequest ,request.getSession().getServletContext().getRealPath(""),但是有些地方是没有HttpServletReque原创 2008-01-05 20:31:00 · 6364 阅读 · 0 评论 -
明白 Unsupported major.minor version 49.0 jdk版本对照表
转自 http://www.java2000.net/viewthread.jsp?tid=114 感谢作者. JDK 编译器版本 target 参数 十六进制 minor.major 十进制 minor.major转载 2008-01-06 12:11:00 · 7269 阅读 · 0 评论 -
计算Java对象占用的内存
今天验证了个曾困惑我一段时间的小问题,代码简单不做过多介绍了 public class Test { private static final Runtime s_runtime = Runtime.getRuntime(); private static long usedMemory() { return s_runtime.totalMemory() -原创 2008-04-21 23:02:00 · 1855 阅读 · 0 评论 -
JVM深度历险小记
转自http://zhangthe9.javaeye.com/blog/107063 感谢作者.java 深度历险 小记========================================================= 深入J2 SDK========================================================转载 2008-04-22 22:01:00 · 1635 阅读 · 3 评论 -
用Java取得汉字的区位码
发代码之前先转段预备知识计算机处理汉字信息的前提条件是对每个汉字进行编码,这些编码统称为汉字编码。汉字信息在系统内传送的过程就是汉字编码转换的过程。汉字交换码:汉字信息处理系统之间或通信系统之间传输信息时,对每一个汉字所规定的统一编码,我国已指定汉字交换码的国家标准“信息交换用汉字编码字符集——基本集”,代号为GB 2312—80,又称为“国标码”。国标码:所有汉字编码都应该遵循这一标准,汉字原创 2008-05-02 09:18:00 · 6229 阅读 · 2 评论 -
动态生成编译运行java类
本代码并非原创,是在我以前的学习笔记里面翻阅出来的,是csdn里面一位叫路人甲的朋友在论坛里面的回复,也许在这里发出来会帮助到很多朋友.其实十分简单就不加注释了,一共就3步,生成java文件,编译java文件,运行java类, package com.syj;import java.io.File;import java.io.FileWriter;import java.la原创 2008-05-02 10:03:00 · 4973 阅读 · 2 评论 -
Java中byte转换int时与0xff进行与运算的原因
java中byte转换int时为何与0xff进行与运算在剖析该问题前请看如下代码 public static String bytes2HexString(byte[] b) { String ret = ""; for (int i = 0; i String hex = Integer.toHexString(b[i] & 0xFF); if (hex.length() ==原创 2008-05-04 20:01:00 · 11352 阅读 · 12 评论 -
在Ant中使用逻辑判断 Condition
好久不写ant脚本了,最近两天在用ant做web应用的安装部署脚本,为了实现web服务器的多版本兼容,必然要使用逻辑判断,比如我要判断是安装在weblogic8上还是weblogic9上,而在ant中处理逻辑判断真是麻烦,只能作用于task,要利用property来做判断,使用available来设置property。例如:原创 2008-05-13 23:19:00 · 16309 阅读 · 5 评论