博文
将文件名转换为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)方法,fillInStackTrace()方法检查堆栈,收集调用跟......
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);
真是非常方便啊!
3 - 增强的循环结构
呵呵,这可是一个非常厉害的东东啊,不能小视。以前的for(;;)循环我想大家都很熟悉,......
如何创建自解压的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.0Ant-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.1Implementation-Title: JavaServer Pages Standard Tag Library API Reference ImplementationImplementation-Version: 1.1.0-D13Implementation-Vendor: Sun Microsystems, Inc.Implementation-Vendor-Id: com.sunExtension-Name: javax.servlet.jsp.jstl
改为:Manifest-Version: 1.0Main-Class: ZipSelfExtractorAnt-Version: Apache Ant 1.5.2 Created-By: 1.4.1_02-b06 (Sun Microsystems Inc.)Specification-Title: JavaServer Pages Standard Tag Library (JSTL)Specif......
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) 某精神病院听说领导要来医院视察情况,于是,院长召集所的病人开会在会上,院长讲道:"今天下午,有很重要的领导要来参观,所有的人都要去门口欢迎. 在欢迎的时候,所有病人站在医院大门口两边,要站整齐,当我咳嗽的时候,大家一起鼓掌,越热烈越好;我跺脚的时候必须全部停止,不能有一个出错.要大家都做好了,今天晚上可以给大家吃肉包子,只要有一个人弄砸了,所有的人都没有包子吃,记住了吗?"台下病人一起喊道:" 记住了!" 这天下午,领导准时到来,当他步入大门的时候,欢迎的病人已在门口站好了这时,随着院长一声咳嗽,所有的病人一起鼓掌欢迎,气氛十分热烈.来参观的领导受到热烈气氛的感染,面带笑容,和大家一起鼓掌步入医院.见领导已经走进了医院,院长一跺脚,所的掌声都停止了,非常整齐.只有这位领导还在面带笑容一边鼓掌一前行,院长感到非常满意.忽然,从欢迎的人群里窜出来一个壮如施瓦辛格的病人,大步冲到领导面前,抡圆了给了他一个大耳光,气愤异常地吼道--"你丫不想吃包子了?!!!"(6)精神病人甲把电话号码本从护士办公室偷回病房.问乙说:“你看我最近完成的这本小说怎么样”?乙看了看回答:“不错不错.不过,就是人物多了点儿”.这时,精神病院的护士进来说:“......
强!看他是怎么让少妇视频脱光的.(2006-04-20 16:49:00)
摘要:转自:转载 老彭的网名叫做“目大师”。 第一个被临幸的女子的名字叫做“小白兔”。(如有雷同,绝非巧合。请速改名,以策万全) 第一回合 刚开始,小白兔没太在意这位目大师,有一茬,没一茬地聊着。突然,目大师说道:“对不起,做功课的时间到了,我要离开一会。” 过了几分钟,目大师又出现了。 小白兔有点奇怪,问道:“你做什么功课?” 老彭:“日常功课,每到整点的时候,盘膝打坐,凝神冥想,以消除杂念,维护清修。” 小白兔第一次遇见这样的网友,肃然起敬。问道:“你是出家人?学佛的?” 老彭:“非佛非道,亦佛亦道。” 小白兔:“你修炼多久了?” 目大师:“二十八年。” 小白兔:“这么久了!那你会算命吗?” 老彭:“会当然会一些,但那是旁支末节,不屑为之。” 女人哪有不喜欢算命的?当时小白兔就央求再三,目大师百般无奈,只好答应随便算一下。 小白兔打算试试深浅,问道:“那你算一算,我的原名叫什么名字?” 我靠,这怎么算?这太难了。 老彭心想此女网名叫小白兔,莫非与植物有关?何况一般女人的名字无非花花草草,于是道:“你与草木有缘。” 小白兔半天没做声。 老彭心知多半赌中了。 小白兔:“那我现在的男朋友的名字呢?” 老彭心想,这说不定是个圈套,万一她现在没有男朋友呢?于是,老彭答道:“我只能算出你初恋的男人的名字与水有缘。” 老彭这么想的:这是个概率学问题。汉字常用字当中与草木与水有关的字是很多的,而且往往用于姓名之中。万一名姓都不带水木,那么再胡扯一通,总可以与其挂起钩来。 果然问题来了,小白兔说:“我的初恋男友名叫易平夫,个个字与水无关。” 老彭想了一会:“怎么会无关呢?易字拆开,日勿,可以理解为不出太阳。无晴则雨,易字有水。平字,《释名》里说:“天下莫平于水。”意思是说:万物最平者,水也。平字有水。夫字,下面是天,上面是个一字。道家有“天一生水”之说,夫字也有水。个个字与水有关,怎么说是无关呢?” 小白兔吓了一跳,心想这位到底是个什么人物?怎么一算一个准,好奇心大起。 老彭推说有事,下线。 第二回合 小白兔一看见老彭上线便大呼:“目大师,你总算出现了。我等你半天了。” 老彭礼貌性的问好,心里很同情这条上钩的鱼儿。 小白兔:“我明天眼睛要开刀,我好怕。” 老彭:“什么手术?” 小白兔:“激光治疗近视,听说有人开刀开瞎了。你帮我算算,不会出什么问题吧?” 老彭心想这能出什么事呢?便答:“......
