博文

Java字符串连接效率比较之String.concat()连接符(2010-04-06 10:50:00)

摘要:SUN JDK6环境,测试String累加测试,以便比较字符串连接的效率问题class StrConcatTest{public static void main(String[] args) {long t1 = System.currentTimeMillis();long i=0;long l=20000;String tmp ="测试字d";String ret = "";StringBuilder sb = new StringBuilder();while(i<l){// 1. ret+=tmp;// 2. ret=ret.concat(tmp);//3. sb.append(tmp);i++;}long t2 = System.currentTimeMillis();System.out.println(ret.length()); // 3. System.out.println(sb.toString().length());System.out.println(t2-t1);}}结果如下:(命令行第二行为执行毫秒数)1.直接用'+'连接字符串2.用String.concat()方法连接字符串3.用StringBuilder类方法追加字符串http://www.txdnet.cn/essay/view.jsp?tid=1270481150604&cid=2......

阅读全文(3341) | 评论:0

数据库 MySql MyISAM、INNODB类型表碎片优化(2009-11-11 00:33:00)

摘要:简单的说,删除数据必然会在数据文件中造成不连续的空白空间,而当插入数据时,这些空白空间则会被利用起来.于是造成了数据的存储位置不连续,以及物理存储顺序与理论上的排序顺序不同,这种是数据碎片.实际上数据碎片分为两种,一种是单行数据碎片,另一种是多行数据碎片.前者的意思就是一行数据,被分成N个片段,存储在N个位置.后者的就是多行数据并未按照逻辑上的顺序排列.当有大量的删除和插入操作时,必然会产生很多未使用的空白空间,这些空间就是多出来的额外空间.索引也是文件数据,所以也会产生索引碎片,理由同上,大概就是顺序紊乱的问题.Engine 不同,OPTIMIZE 的操作也不一样的,MyISAM 因为索引和数据是分开的,所以 OPTIMIZE 可以整理数据文件,并重排索引. 针对MyISAM表类型采用 OPTIMIZE TABLE table_name SQL语句清理碎片. InnoDB 使用的 Clustered Index,索引和数据绑定在一起,重排序是不现实的.所以不支持 MyISAM 式的 OPTIMIZE,而是绑定到了ALTER TABLE 命令上面.可以通过执行以下语句来整理碎片,提高索引速度:ALTER TABLE table_name ENGINE = Innodb;这其实是一个NULL操作,表面上看什么也不做,实际上重新整理碎片了.当执行优化操作时,实际执行的是一个空的 ALTER 命令,但是这个命令也会起到优化的作用,它会重建整个表,删掉未使用的空白空间. http://www.txdnet.cn/essay/view.jsp?tid=1257868519718&cid=2......

阅读全文(2620) | 评论:0

Java 判断文件是否为图片文件GIF,PNG,JPG(2009-10-15 00:40:00)

摘要:首先大家需要了解的是Java里判断Image文件信息格式(GIF/PNG/JPG)/Size/Height/Width的原理: 1,判断Image格式用UE打开GIF/PNG/JPG格式的图片文件我们会发现在文件头部某几个位置的字节的值连起来是'GIF'/'PNG'/'JFIF'它们的位置分别如下:GIF: 012JFIF(JPG): 6789PNG: 123这样我们可以通过判断这几个字节值来得到Image文件格式: String type = "";byte b0 = image.getFileData()[0];byte b1 = image.getFileData()[1];byte b2 = image.getFileData()[2];byte b3 = image.getFileData()[3];byte b6 = image.getFileData()[6];byte b7 = image.getFileData()[7];byte b8 = image.getFileData()[8];byte b9 = image.getFileData()[9];// GIFif (b0 == (byte) 'G' && b1 == (byte) 'I' && b2 == (byte) 'F')type = "GIF";// PNGelse if (b1 == (byte) 'P' && b2 == (byte) 'N' && b3 == (byte) 'G')type = "PNG";// JPGelse if (b6 == (byte) 'J' && b7 == (byte) 'F' && b8 == (byte) 'I' && b9 == (byte) 'F')type = "JPG";elsetype = "Unknown";image.setType(type);2,判断Image大小FileImageInputStream fiis = new FileImageInputStream(new File(image.getPath()));image.setSize((float) fii.length() / 1000 + "KB")......

阅读全文(9426) | 评论:0

NetBeans IDE 6.7.1初体验(2009-09-25 22:04:00)

摘要:对于多数开发者来说,IDE是他们开始编程工作的地方.然而IDE本身只是一个开发工具,开发者依然需要一个地方来存放他们的源代码.Sun公司希望借助于新推出的NetBeans 6.7来填补这个空白,这个新IDE集成支持了Sun的Kenai项目.   Kenai项目是Sun面向开发人员打造的一个云计算开发平台,于2008年9月上线.除了增加了对Kenai项目的支持外,NetBeans 6.7还改善了对PHP和Apache Maven的支持,让Java和PHP开发者可以更好的利用这个新IDE.   一周前NetBeans的最大竞争对手Eclipse刚刚发布了一个重大版本3.5正式版,而甲骨文对Sun的收购完成日期也越来越近,此时Sun宣布了这个最新版本NetBeans的推出.   NetBeans销售经理Tori Wieldt表示,"NetBeans和Kenai可以自然配合使用,拥有2300多万NetBeans IDEas下载次数和一个充满生机的NetBeans用户社区,我们预计越来越多的开发者会充分发挥Kenai.com上的托管和协作功能.我们已经看到了Kenai项目的大幅成长,它已经拥有来自132个国家的13000多名成员."   Wieldt补充说,现在可以免费使用Kenai项目的任何服务.目前该项目还处于测试阶段,目前还没有确定何时正式推出.   尽管NetBeans最初由Sun作为一个Java IDEas创建,但是自从2008年推出6.5版以来,就已经支持PHP开发.在6.7版中,Sun为PHP用户增加了新的功能.   Wieldt表示,NetBeans IDE 6.7支持PHPUnit,开发者可以轻松的测试PHP资源;另外它还有一个Selenium插件来使用PHP创建Selenium测试.而且它在PHP编辑器中还有SQL代码完成功能.   Selenium是Web应用程序的一个测试框架,而PHPUnit是针对PHP的一个单元测试框架.   据Wieldt表示,PHP开发者正在逐渐更加接受NetBeans,在过去3个月中,NetBeans PHP包已被下载了75000多次.   NetBeans 6.7中缺失的一个功能是,它不支持即将推出的PHP 5.3,而Eclipse基金会则通过上周发布的PDT 2.1支持它.   Wieldt表示,Sun......

阅读全文(2074) | 评论:0

Java开源Web爬虫项目(2009-09-25 22:00:00)

摘要: Heritrix Heritrix是一个开源,可扩展的web爬虫项目.Heritrix设计成严格按照robots.txt文件的排除指示和META robots标签. http://crawler.archive.org/ WebSPHINX WebSPHINX是一个Java类包和Web爬虫的交互式开发环境.Web爬虫(也叫作机器人或蜘蛛)是可以自动浏览与处理Web页面的程序.WebSPHINX由两部分组成:爬虫工作平台和WebSPHINX类包. http://www.cs.cmu.edu/~rcm/websphinx/ WebLech WebLech是一个功能强大的Web站点下载与镜像工具.它支持按功能需求来下载web站点并能够尽可能模仿标准Web浏览器的行为.WebLech有一个功能控制台并采用多线程操作. http://weblech.sourceforge.net/ Arale Arale主要为个人使用而设计,而没有像其它爬虫一样是关注于页面索引.Arale能够下载整个web站点或来自web站点的某些资源.Arale还能够把动态页面映射成静态页面. http://flavio.tordini.org/arale J-Spider J-Spider:是一个完全可配置和定制的Web Spider引擎.你可以利用它来检查网站的错误(内在的服务器错误等),网站内外部链接检查,分析网站的结构(可创建一个网站地图),下载整个Web站点,你还可以写一个JSpider插件来扩展你所需要的功能. http://j-spider.sourceforge.net/ spindle spindle 是一个构建在Lucene工具包之上的Web索引/搜索工具.它包括一个用于创建索引的HTTP spider和一个用于搜索这些索引的搜索类.spindle项目提供了一组JSP标签库使得那些基于JSP的站点不需要开发任何Java类就能够增加搜索功能. Arachnid Arachnid: 是一个基于Java的web spider框架.它包含一个简单的HTML剖析器能够分析包含HTML内容的输入流.通过实现Arachnid的子类就能够开发一个简单的Web spiders并能够在Web站上的每个页面被解析之后增加几行代码调用. Arachnid的下载包中包含两个spid......

阅读全文(3766) | 评论:0

NetBeans IDE 6.7.1初体验(2009-09-19 16:22:00)

摘要: 对于多数开发者来说,IDE是他们开始编程工作的地方.然而IDE本身只是一个开发工具,开发者依然需要一个地方来存放他们的源代码.Sun公司希望借助于新推出的NetBeans 6.7来填补这个空白,这个新IDE集成支持了Sun的Kenai项目.   Kenai项目是Sun面向开发人员打造的一个云计算开发平台,于2008年9月上线.除了增加了对Kenai项目的支持外,NetBeans 6.7还改善了对PHP和Apache Maven的支持,让Java和PHP开发者可以更好的利用这个新IDE.   一周前NetBeans的最大竞争对手Eclipse刚刚发布了一个重大版本3.5正式版,而甲骨文对Sun的收购完成日期也越来越近,此时Sun宣布了这个最新版本NetBeans的推出.   NetBeans销售经理Tori Wieldt表示,"NetBeans和Kenai可以自然配合使用,拥有2300多万NetBeans IDEas下载次数和一个充满生机的NetBeans用户社区,我们预计越来越多的开发者会充分发挥Kenai.com上的托管和协作功能.我们已经看到了Kenai项目的大幅成长,它已经拥有来自132个国家的13000多名成员."   Wieldt补充说,现在可以免费使用Kenai项目的任何服务.目前该项目还处于测试阶段,目前还没有确定何时正式推出.   尽管NetBeans最初由Sun作为一个Java IDEas创建,但是自从2008年推出6.5版以来,就已经支持PHP开发.在6.7版中,Sun为PHP用户增加了新的功能.   Wieldt表示,NetBeans IDE 6.7支持PHPUnit,开发者可以轻松的测试PHP资源;另外它还有一个Selenium插件来使用PHP创建Selenium测试.而且它在PHP编辑器中还有SQL代码完成功能.   Selenium是Web应用程序的一个测试框架,而PHPUnit是针对PHP的一个单元测试框架.   据Wieldt表示,PHP开发者正在逐渐更加接受NetBeans,在过去3个月中,NetBeans PHP包已被下载了75000多次.   NetBeans 6.7中缺失的一个功能是,它不支持即将推出的PHP 5.3,而Eclipse基金会则通过上周发布的PDT 2.1支持它.   Wieldt表示,S......

阅读全文(3625) | 评论:0

Java开发的主流JSP论坛系统介绍(2009-09-05 22:33:00)

摘要:Jute Powerful Forum http://www.cjsdn.net/ JSPRUN bbs http://www.jsprun.net/ JiveJdon bbs http://www.jdon.com/jdonframework/jivejdon3/index.html lybbs http://www.lybbs.net/index.jsp mvnforum (国外) http://www.mvnforum.com/mvnforumweb/index.jsp JForum (国外) http://www.jforum.net/ 更多好用的JSP FORUM欢迎大家在此推荐给我,以便学习交流! http://www.txdnet.cn/essay/view.jsp?tid=1252158649802&cid=2......

阅读全文(1780) | 评论:0

J2EE开发可涉及到的架构或工具(2009-08-20 10:03:00)

摘要: http://www.txdnet.cn/essay/view.jsp?tid=1250694095000&cid=6  ......

阅读全文(1994) | 评论:0

Javabean中获取request和response变量的方法(2009-08-17 00:49:00)

摘要: JSP开发中常用到javabean,他是JSP开发中最常用的代码封装重用的方法,是一个java class(类),在JSP中通过 new 方法或<jsp:usebean>使用一个javabean对象,有时我们需要在JAVABEAN中使用到当前JSP中的request和response内置变量: javax.servlet.http.HttpServletRequest request = null; javax.servlet.http.HttpServletResponse response = null; JSP在预编译为SERVLET CLASS后都将转化为以上两个形态变量,同时引入了上下文变量: javax.servlet.jsp.PageContext pageContext = null; 这就是为什么JSP中可以直接使用这些内置变量的原因. 为此我们在设计javabean的时候就要引入一下两个包: import javax.servlet.jsp.PageContext;import javax.servlet.http.*; 然后我们定义一个函数将JSP中的pageContext引入到javabean中,通过pageContext得到JSP中的request,response变量 下面的举例函数用于检测请求是否是盗链,若是盗链向服务器发出错误信息或提示: http://www.txdnet.cn/essay/view.jsp?tid=1249803708625&cid=2  ......

阅读全文(2196) | 评论:0

综述Java设计模式(2009-02-28 02:11:00)

摘要:自从J2EE出现以来,就大大简化了在Java下的企业级开发.但是随着J2EE越来越普遍地被应用到各个领域中,开发者们渐渐意识到需要一种方法来标准化应用程序的开发过程,他们采用的方法是标准化应用程序的结构层.在结构层通常封装了一些独立于业务逻辑的复杂技术,以便在业务逻辑和底层的架构之间建立起弱连接.在本文中将会介绍一些设计模式,通过利用这些设计模式,开发人员可以达到标准化和简化应用程序开发过程的目的. 应用程序结构和J2EE J2EE是一个很成功的技术,它为一些基本的任务提供了一致的标准,例如数据库连接,分布式应用程序等.但是使用J2EE并不能保证开发人员开发出成功的应用程序.有些人认为J2EE本身就是一种框架技术,但是这种认识是不正确的,我们应该意识到J2EE并没有提供一个能够帮助开发人员开发出高质量应用程序的框架,因此很多有经验的开发人员通过利用设计模式来弥补这一缺项. 设计模式 在开发人员的圈子中,大家通过相互交流在开发过程中所遇到的问题以及解决方法来丰富整个圈子的经验.而设计模式就是在这样的情况下产生的.一个设计模式必然是针对某个特定的问题的,这个问题的解决方案以及这样解决问题产生的后果.在解决利用J2EE进行程序开发中出现的问题的过程中,人们把设计模式分为两类,一种是通用开发模式,一种是为了解决特定的J2EE问题的模式.下面让我们来看一看每一种类型的开发模式都包含了哪些内容. J2EE设计模式 J2EE设计模式在过去几年中随着Java开发人员经验的不断成长而发展.这些设计模式是针对使用各种J2EE技术时可能出现的问题提出的,它们能够帮助开发人员构造出应用程序框架的要求.例如,Front Controller(前端控件)模式将servlet代码的开发转化为在图形用户界面下的开发.但是需要记住J2EE设计模型解决了那些在J2EE项目中最可能出现的问题.如果你在J2EE遇到的问题很特殊,很有可能没有相应的设计模型来解决它. 软件开发设计模式 软件开发设计模式又被分为两种,一种是通用的面向对象设计模式.例如工厂(Factory)模式是一种面向对象的设计模式,它将对象的创建封装起来,使对象能够重用,这样就可以减少程序占用的系统资源.而另一种是基于Java的设计模式,这些设计模式要么是和Java的语言特性结合得很紧,要么是面向对象技术在Java中的深化.不要以为软件设计......

阅读全文(1583) | 评论:1