博文
将文件名转换为URL(2006-04-23 10:50:00)
摘要: 有许多操作都需要URL,有两种方法可以将文件名转换为URL,以下设定GetResource.java及FileToUR.java存储在C:\java
方法一
public class GetResource{
public static void main(String[] args){
Class c=GetResource.class;
java.net.URL u=c.getResource("GetResource.java");
System.out.println(u);
}
}
方法二
import java.io.*;
import java.net.*;
public class FileToURL{
public static void main(String[] argv) throws MalformedURLException{
java.net.URL u=new File("GetResource.java").toURL();
System.out.println(u);
}
}
运行结果:
C:\java>java GetResource
file:/C:/java/GetResource.java
C:\java>java FileToURL
file:/C:/java/GetResource.java
C:\java> ......
Java性能优化技巧集锦 (2006-04-22 18:14:00)
摘要:可供程序利用的资源是有限的,优化的目的就是让程序用尽可能少的资源完成预定的任务。
可供程序利用的资源(内存、CPU时间、网络带宽等)是有限的,优化的目的就是让程序用尽可能少的资源完成预定的任务。优化通常包含两方面的内容:减小代码的体积,提高代码的运行效率。本文讨论的主要是如何提高代码的效率。
一、通用篇
“通用篇”讨论的问题适合于大多数Java应用。
1.1 不用new关键词创建类的实例
用new关键词创建类的实例时,构造函数链中的所有构造函数都会被自动调用。但如果一个对象实现了Cloneable接口,我们可以调用它的clone()方法。clone()方法不会调用任何类构造函数。
在使用设计模式(Design Pattern)的场合,如果用Factory模式创建对象,则改用clone()方法创建新的对象实例非常简单。例如,下面是Factory模式的一个典型实现:
public static Credit getNewCredit()
{
return new Credit();
}
改进后的代码使用clone()方法,如下所示:
private static Credit BaseCredit = new Credit();
public static Credit getNewCredit()
{
return (Credit) BaseCredit.clone();
}
上面的思路对于数组处理同样很有用。
1.2 使用非阻塞I/O
版本较低的JDK不支持非阻塞I/O API。为避免I/O阻塞,一些应用采用了创建大量线程的办法(在较好的情况下,会使用一个缓冲池)。这种技术可以在许多必须支持并发I/O流的应用中见到,如Web服务器、报价和拍卖应用等。然而,创建Java线程需要相当可观的开销。
JDK 1.4引入了非阻塞的I/O库(java.nio)。如果应用要求使用版本较早的JDK,在这里有一个支持非阻塞I/O的软件包。
1.3 慎用异常
异常对性能不利。抛出异常首先要创建一个新的对象。Throwable接口的构造函数调用名为fillInStackTrace()的本地(Native)方法,fi......
JDK1.5爱之初体验(2006-04-22 18:12:00)
摘要:jdk1.5之初体验
----------------
Sun公司的JDK1.5终于出了正式版了,对于我们Java fans来说真是一个好消息!
这回JDK的更新听说是1995年Java发布以来对Java语法方面作了最大的更新(以前大都是对Java类库的扩充),引入了许多激动人心的新特性。
呵呵,闲话少说,现在大家和jellen一起来看看JDK1.5里面到底有什么好东东。
1 - 泛性编程
哇,这可是以前C++的金字招牌啊,现在Java里面也可以使用了。我们先看看以前没有泛性时的Java:
ArrayList list = new ArrayList();
list.add(new String("Hello!"));
System.out.println((String)list.get(0));
是不是有点罗嗦麻烦,要转来转去才能打印出那个:"hello!"
现在我们来看新的代码:
ArrayList<String> list = new ArrayList<String>();
list.add(new String("Hello!"));
System.out.println(list.get(0));
恩,确实简洁多了,是不是?泛性特征把类型引进了集合,使得我们的代码更简洁易懂。
2 - 自动装箱/拆箱
这也是一个对我们程序员非常贴心的设计,想想以前我们要把int等基本数据装进ArrayList等集合时的麻烦吧:
ArrayList list = new ArrayList();
Integer number = new Integer(10); //先要把数字弄进包装类
list.add(number);
//然后想要取出这个数字也极其麻烦,看看这个式子,晕啊!
int i = ((Integer)list.get(0)).intValue();
现在好了,同样的代码在JDK1.5中:
ArrayList<Integer> list = new ArrayList<Integer>();
list.add(10);
int i = list.get(0);
真是非常方便啊!
......
如何创建自解压的jar文件(2006-04-22 18:11:00)
摘要:这是我从网上看一遍文章做的练习。自解压程序是 ZipSelfExtractor.java(请下载),作者为 Z.S. Jin。
一、自解压jar文件的优点: 自解压jar文件可以在任意支持java的平台上解开。
二、 制作自解压jar文件的过程如下:
1、修改MANIFEST.MF文件
随便找一个jar格式的文件,如jstl.jar,先用winzip或winRAR解压,这是因为我们要修改其中的MANIFEST.MF文件。其实修改很简单,只要在MANIFEST.MF文件中指定(或修改)这个基于java 的解压程序包含main()方法的类的名称为:
Main-Class: ZipSelfExtractor
如将jstl.jar文件中包含的MANIFEST.MF文件:
Manifest-Version: 1.0
Ant-Version: Apache Ant 1.5.2
Created-By: 1.4.1_02-b06 (Sun Microsystems Inc.)
Specification-Title: JavaServer Pages Standard Tag Library (JSTL)
Specification-Version: 1.1
Implementation-Title: JavaServer Pages Standard Tag Library API Refere
nce Implementation
Implementation-Version: 1.1.0-D13
Implementation-Vendor: Sun Microsystems, Inc.
Implementation-Vendor-Id: com.sun
Extension-Name: javax.servlet.jsp.jstl
改为:
Manifest-Version: 1.0
Main-Class: ZipSelfExtractor
Ant-Version: Apache Ant 1.5.2
Created-By: 1.4.1_02-b06 (Sun M......
Unicode简介(2006-04-22 18:10:00)
摘要: Unicode是一种字符编码规范 ,先从ASCII说起。ASCII是用来表示英文字符的一种编码规范,每个ASCII字符占用1个字节(8bits) 因此,ASCII编码可以表示的最大字符数是256,其实英文字符并没有那么多,一般只用前128个(最高位为0),其中包括了控制字符、数字、大小写字母和其他一些符号,而最高位为1的另128个字符被成为“扩展ASCII”,一般用来存放英文的制表符、部分音标字符等等的一些其他符号
这种字符编码规范显然用来处理英文没有什么问题,(实际上也可以用来处理法文、德文等一些其他的西欧字符,但是不能和英文通用),但是面对中文、阿拉伯文之类复杂的文字,255个字符显然不够用。于是,各个国家纷纷制定了自己的文字编码规范,其中中文的文字编码规范叫做“GB2312-80”,它是和ASCII兼容的一种编码规范,其实就是利用扩展ASCII没有真正标准化这一点,把一个中文字符用两个扩展ASCII字符来表示。
但是这个方法有问题,最大的问题就是,中文文字没有真正属于自己的编码,因为扩展ASCII码虽然没有真正的标准化,但是PC里的ASCII码还是有一个事实标准的(存放着英文制表符),所以很多软件利用这些符号来画表格。这样的软件用到中文系统中,这些表格符就会被误认作中文字,破坏版面。而且,统计中英文混合字符串中的字数,也是比较复杂的,我们必须判断一个ASCII码是否扩展,以及它的下一个ASCII是否扩展,然后才“猜”那可能是一个中文字,总之当时处理中文是很痛苦的。而更痛苦的是GB2312是国家标准,台湾当时有一个Big5编码标准,很多编码和GB是相同的,所以……,嘿嘿。
这时候,我们就知道,要真正解决中文问题,不能从扩展ASCII的角度入手,也不能仅靠中国一家来解决。而必须有一个全新的编码系统,这个系统要可以将中文、英文、法文、德文……等等所有的文字统一起来考虑,为每个文字都分配一个单独的编码,这样才不会有上面那种现象出现。
于是,Unicode诞生了。
Unicode有两套标准,一套叫Unicode-16UCS-2,用2个字节为字符编码,另一套叫Unicode-32UCS-......
[转帖]超级恐怖...有胆量的来......(2006-04-22 11:49:00)
摘要:我是一个网虫,一个标准的网虫。
并不是网络本身吸引我,而是因为我太喜欢黑夜的那份宁静,正如我当年曾那么痴迷地喜欢和朋友们在一起狂欢的浮躁。我想也许有一天我仍会回到喧嚣的浮躁中,这叫规律,物极必反的规律。
书房门上面的挂钟响了一下,12点。
我坐在电脑桌前,向右扭头,顺手拉开窗帘和窗纱。窗,一直是开着的,因为在深夜这间书房里常有人吸烟,那个人就是我。此时,我不要白天攘攘的人群,我只要天高云淡的香烟陪着我,香烟比挂着虚伪面具的人群可靠可信得多,它是真实的。
深吸一口熟悉的空气,视线所及的窗外黑黑的,对面楼的灯光早熄了,连楼的轮廓都不再存在。是的,这一瞬我是唯心的,只要是我不希望存在的,它就不存在,而且是的的确确地视而不见。
我不困,因为今天是周末,我的周末。
随便闯入一个聊天室,找个人最多的房间踏进去,看着他们聊天或哭或笑,或玩或闹,我一直不说话,不想说话。过来搭讪的网友无功而返,扬长而去后,我在屏幕这边笑了,为自已拥有这沉默和拒绝的权力。
“怕我吗?呵呵。”这句话勾起了我聊天的兴趣。
“不怕!嘿嘿,我是小妖,谁怕谁还说不定呢。”我回答。
不知为什么,自从我们对话开始,聊天室里的人陆续地离开了,只一会工夫,就只剩我们俩个人。
“人呢?他们怕你了呀?”我嘻笑着问。
“他们都死机了,明天早上才能启动。”他淡淡地说。
“为什么?”我一头雾水,难道他是黑客?我想。
“因为我想给你一个人讲我的故事。记住,在我讲的时候,你不要敲回车键!”
“我为什么要听你的故事?我偏要敲回车键!”
打完这几个字我重重地敲了一下回车键,发了过去。
发出那一刻,我有点后悔了,我承认是我好奇,我想听他的故事,可我更好奇敲回车键会发生什么。
......
这个爱情测试好准(2006-04-22 11:41:00)
摘要:http://www.dz121.com/love/index.asp?loveid=184845
我晕,这个爱情测试好准,我刚试过,按照上面的分析,准确率很高。我试了3次,基本一样!快去看看!照以往数据分析来看,成功率可达96%以上!......
[转帖]让女孩子哭的答案(2006-04-22 11:36:00)
摘要:女孩终于鼓起勇气对男孩说:「我们分手吧」
男孩问:「为什么?」
女孩说:「倦了,就不需要理由了」
一个晚上
男孩只抽烟不说话
女孩的心也越来越凉
『连挽留都不会表达的情人
能给我什么样的快乐?』
过了许久
男孩终忍不住说:「怎么做你才能留下来?」
女孩慢慢地说:
「回答一个问题,如果你能答到我心里就答案,我就留下来。」
……………………
「比如我非常喜欢悬崖上的一朵花,而你去摘的结果是百分之百
的死亡,你会不会摘给我?」
男孩想了想说:「明天早晨告诉你答案好吗?」
女孩的心顿时灰了下来
……………………
早晨醒来,男孩已经不在
只有一张写满字的纸压在温热的牛奶杯下
第一行,就让女孩的心凉透了
「亲爱的,我不会去摘
但请容许我陈述不去摘的理由
你只会用电脑打字
却总把程序弄得一塌糊涂
然后对着键盘哭
我要留着手指给你整理程序
你出门总是忘记带钥匙
我要留着双脚跑回来给你开门
酷爱旅游的你
在自己的城市里都常常迷路
我要留着眼睛给你带路
每月(好朋友)光临时
你总是全身冰凉,还肚子疼
我要留着掌心温暖你的小腹
你不爱出门
我担心你会患上自闭症
我要留着嘴巴躯赶你的寂寞
你总是盯者电脑
<......
精神病人笑话全集(笑死不偿命版)(2006-04-22 11:32:00)
摘要:(1)
有一位病人来找精神科医师.
病人:我一直觉得我是一只鸟.
医生:喔.那很严重喔.从什么时候开始的.
病人:从我还是一只小鸟的时候.
(2)
有一位神经病院的医生问患者:如果我把你的一只耳朵割掉.你会怎样?
那位患者回答:那我会听不到.
医生听了:嗯嗯.很正常.
医生又问道:那如果我再把你另一只耳朵也割掉.你会怎样?
那位患者回答:那我会看不到.
医生开始紧张了.怎么会看不到咧.?
患者回答:因为眼镜会掉下来.
(3)
有两个神经病患.从病院里逃出来.
两人跑啊跑.爬到一棵树上.
其中一个人从树上跳下来.
滚啊滚的.
然後抬起头对上面的人说:喂------你怎么还不下来啊---------?
上面的那个人回答他:不---行---啊------
我还没有熟-----------
(4)
神经病院有一位老太太.
每天都穿著黑色的衣服.拿著黑色的雨伞.
蹲在神经病院门口.
医生就想:要医治她.一定要从了解她开始.
於是那位医生也穿黑色的衣服.拿著黑色的雨伞.和她一起蹲在那边.
两人不言不语的蹲了一个月.
那位老太太终於开口和医生说话了:
请问一下-------
你---也是香菇吗------?
(5)
某精神病院听说领导要来医院视察情况,于是,院长召集所的病人开会在会上,院长讲道:"今天下午,有很重要的领导要来参观,所有的人都要去门口欢迎. 在欢迎的时候,所有病人站在医院大门口两边,要站整齐,当我咳嗽的时候,大家一起鼓掌,越热烈越好;我跺脚的时候必须全部停止,不能有一个出错.要大家都做好了,今天晚上可以给大家吃肉包子,只要有一个人弄砸了,所有的人都没有包子吃,记住了吗?"台下病人一起喊道:" 记住了!"
这天下午,领导准时到来,当他步入大门的时候,欢迎的病人已在门口站好了这时,随着院长一声咳嗽,所有的病人......
强!看他是怎么让少妇视频脱光的.(2006-04-20 16:49:00)
摘要:转自:转载
老彭的网名叫做“目大师”。
第一个被临幸的女子的名字叫做“小白兔”。(如有雷同,绝非巧合。请速改名,以策万全)
第一回合
刚开始,小白兔没太在意这位目大师,有一茬,没一茬地聊着。突然,目大师说道:“对不起,做功课的时间到了,我要离开一会。”
过了几分钟,目大师又出现了。
小白兔有点奇怪,问道:“你做什么功课?”
老彭:“日常功课,每到整点的时候,盘膝打坐,凝神冥想,以消除杂念,维护清修。”
小白兔第一次遇见这样的网友,肃然起敬。问道:“你是出家人?学佛的?”
老彭:“非佛非道,亦佛亦道。”
小白兔:“你修炼多久了?”
目大师:“二十八年。”
小白兔:“这么久了!那你会算命吗?”
老彭:“会当然会一些,但那是旁支末节,不屑为之。”
女人哪有不喜欢算命的?当时小白兔就央求再三,目大师百般无奈,只好答应随便算一下。
小白兔打算试试深浅,问道:“那你算一算,我的原名叫什么名字?”
我靠,这怎么算?这太难了。
老彭心想此女网名叫小白兔,莫非与植物有关?何况一般女人的名字无非花花草草,于是道:“你与草木有缘。”
小白兔半天没做声。
老彭心知多半赌中了。
小白兔:“那我现在的男朋友的名字呢?”
老彭心想,这说不定是个圈套,万一她现在没有男朋友呢?于是,老彭答道:“我只能算出你初恋的男人的名字与水有缘。”
老彭这么想的:这是个概率学问题。汉字常用字当中与草木与水有关的字是很多的,而且往往用于姓名之中。万一名姓都不带水木,那么再胡扯一通,总可以与其挂起钩来。
果然问题来了,小白兔说:“我的初恋男友名叫易平夫,个个字与水无关。”
老彭想了一会:“怎么会无关呢?易字拆开,日勿,可以理解为不出太阳。无晴则雨,易字有水。平字,《释名》里说:“天下莫平于水。”意思是说:万物最平者,水也。平字有水。夫字,下面是天,上面是个一字。道家有“天一生水”之说,夫字也有水。个个字与水有关,怎么说是无关呢?”
......