易截截图软件、单文件、免安装、纯绿色、仅160KB
热门标签: c c# c++ asp asp.net linux php jsp java vb Python Ruby mysql sql access Sqlite sqlserver delphi javascript Oracle ajax wap mssql html css flash flex dreamweaver xml
 最新文章 :

JAVA的字符串拼接与性能

原帖地址:
http://coolshell.cn/?p=2235
----------------我是紫苑最萌的分割线XD--------------
概述:
本文主要研究的是JAVA的字符串拼接的性能,原文中的测试代码在功能上并不等价,导致concat的测
试意义不大。不过原作者在评论栏给了新的concat结果,如果有兴趣的同学建议自己修改代码测试。
原文出处:http://www.venishjoe.net/2009/11/java-string-concatenation-and.html
在JAVA中拼接两个字符串的最简便的方式就是使用操作符”+”了。如果你用”+”来连接固定长度的字符串,可能性能上会稍受影响,但是如果你是在
循环中来”+”多个串的话,性能将指数倍的下降。假设有一个字符串,我们将对这个字符串做大量循环拼接操作,使用”+”的话将得到最低的性能。但是究竟这
个性能有多差?如果我们同时也把StringBuffer,StringBuilder或String.concat()放入性能测试中,结果又会如何
呢?本文将会就这些问题给出一个答案!
我们将使用Per4j

计算性能,因为这个工具可以给我们一个完整的性能指标集合,比如最小,最大耗时,统计时间段的标准偏差等。在测试代码中,为了得到一个准确的标准偏差值,
我们将执行20个 ......

Java ClassLoader

 Java的ClassLoader就是用来动态装载class的,ClassLoader对一个class只会装载一次,JVM使用的ClassLoader一共有4种:
  启动类装载器,标准扩展类装载器,类路径装载器和网络类装载器。
  这4种ClassLoader的优先级依次从高到低,使用所谓的“双亲委派模型”。确切地说,假如一个网络类装载器被请求装载一个java.lang.Integer,它会首先把请求发送给上一级的类路径装载器,假如返回已装载,则网络类装载器将不会装载这个java.lang.Integer,假如上一级的类路径装载器返回未装载,它才会装载java.lang.Integer.
  类似的,类路径装载器收到请求后(无论是直接请求装载还是下一级的ClassLoader上传的请求),它也会先把请求发送到上一级的标准扩展类装载器,这样一层一层上传,于是启动类装载器优先级最高,假如它按照自己的方式找到了java.lang.Integer,则下面的ClassLoader 都不能再装载java.lang.Integer,尽管你自己写了一个java.lang.Integer,试图取代核心库的java.lang.Integer是不可能的,因为自己写的这个类根本无法被下层的ClassLoader装载。
  再说说Package权限。Java语言规定,在同一个包中的class,假如没有修饰符,默认为Package权限, ......

Java对象的序列化和反序列化

当两个进程在进行远程通信时,彼此可以发送各种类型的数据。无论是何种类型的数据,都会以二进制序列的形式在网络上传送。发送方需要把这个java对象转换为字节序列,即java对象序列号,才能在网络上传送;接收方则需要把字节序列再恢复为Java对象,即反序列化。
  把Java对象转换为字节序列的过程称为对象的序列化。
  把字节序列恢复为Java对象的过程称为对象的反序列化。
  对象的序列化主要有两种用途:
  1) 把对象的字节序列永久地保存到硬盘上,通常存放在一个文件中;
  2) 在网络上传送对象的字节序列。
  一. JDK类库中的序列化API
  java.io.ObjectOutputStream代表对象输出流,它的writeObject(Object obj)方法可对参数指定的obj对象进行序列化,把得到的字节序列写到一个目标输出流中。
  java.io.ObjectInputStream代表对象输入流,它的readObject()方法从一个源输入流中读取字节序列,再把它们反序列化为一个对象,并将其返回。、
  只有实现了Serializable和Externalizable接口的类的对象才能被序列化。Externalizable接口继承自Serializable接口,实现Externalizable接口的类完全由自身来控制序列化的行为,而仅实现Serializab ......

关于Java对象序列化您不知道的5件事

文章出处: http://java.chinaitlab.com/base/807715.html
Java对象序列化是JDK1.1中引入的一组开创性特性之一,之前51CTO也曾介绍过Java序列化的机制和原理,这里我们将使用Person来发现您可能不知道的关于Java对象序列化的5件事。
  实际上,序列化的思想是“冻结”对象状态,传输对象状态(写到磁盘、通过网络传输等等),然后“解冻”状态,重新获得可用的Java对象。所有这些事情的发生有点像是魔术,这要归功于ObjectInputStream/ObjectOutputStream类、完全保真的元数据以及程序员愿意用Serializable标识接口标记他们的类,从而“参与”这个过程。清单1显示一个实现Serializable的Person类。
  1.清单1.SerializablePerson
  2.packagecom.tedneward;
  3.
  4.publicclassPerson
  5.implementsjava.io.Serializable
  6.{
  7.publicPerson(Stringfn,Stringln,inta)
  8.{
  9.this.firstName=fn;this.lastName=ln;this.age=a;
  10.}
  11.
  12.publicStringgetFirstName(){returnfirstName;}
  13.publicStringgetLastName(){returnlastName;}
  14.publicintgetAge(){returnage;}
......

利用JAVA打包生成zip文件的类

主要代码参考了beansoft的ZipUtil,添加了一个方法,
可以把不同目录文件添加到zip中,并做了一些改进,使用了apache的zip类,(原为jdk的zip类),使支持中文文件名。
apache的zip类可以从ant中抽取。apache好像没有提供单独下载。
package com.order;
import java.io.*;
import java.util.List;
import org.apache.tools.zip.*;
/**
 * 把多个文件打包到一个文件
 * @author xiaofei.hu
 *
 */
public class ZipUtil {
    public static void toZip(File[] files, File zipFile){
        
    }
    /**
     * The buffer.
    */
        protected static byte buf[] = new byte[1024];
        
        
        /**
         * 遍历目录并添加文件.
         * @param jos - JAR 输出流
      ......

Java程序员的知识架构浅析

作为Java程序员来说,最痛苦的事情莫过于可以选择的范围太广,可以读的书太多,往往容易无所适从。我想就我自己读过的技术书籍中挑选出来一些,按照学习的先后顺序,推荐给大家,特别是那些想不断提高自己技术水平的Java程序员们。
  一、Java编程入门类
  对于没有Java编程经验的Java程序员要入门,随便读什么入门书籍都一样,这个阶段需要你快速的掌握Java基础语法和基本用法,宗旨就是“囫囵吞枣不求甚解”,先对Java熟悉起来再说。用很短的时间快速过一遍Java语法,连懵带猜多写写代码,要“知其然”。
  1、《Java编程思想》
  在有了一定的Java编程经验之后,你需要“知其所以然”了。这个时候《Java编程思想》是一本让你知其所以然的好书,它对于基本的面向对象知识有比较清楚的交待,对Java基本语法,基本类库有比较清楚的讲解,可以帮你打一个良好的Java编程基础。这本书的缺点是实在太厚,也比较罗嗦,不适合现代人快节奏学习,因此看这本书要懂得取舍,不是每章每节都值得一看的,挑重点的深入看就可以了。
  2、《Agile Java》中文版
  这本书是出版社送给我的,我一拿到就束之高阁,放在书柜一页都没有翻过,但 ......
总记录数:40319; 总页数:6720; 每页6 条; 首页 上一页 [627] [628] [629] [630] 631 [632] [633] [634] [635] [636]  下一页 尾页
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号