易截截图软件、单文件、免安装、纯绿色、仅160KB

Java压缩类库的使用 5.性能检测

  inkfish原创,请勿商业性质转载,转载请注明来源(http://blog.csdn.net/inkfish
)。
  在选择压缩、打包算法的时候,不仅仅要选择算法,还需要选择用哪个实现类库,不同的实现类库实现效率不同,默认压缩比率不同。为了测试JDK、Ant、commons-compress在默认情况下的效率,设计了如下程序:(来源:http://blog.csdn.net/inkfish)
100M大小随机字符串文件生成程序:(来源:http://blog.csdn.net/inkfish)
package study.inkfish.compress;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.Writer;
import org.apache.commons.io.IOUtils;
import org.apache.commons.lang.RandomStringUtils;
public class CharFileGener {
public static void main(String[] args) throws IOException {
charGener();
}
private static void charGener() throws IOException {
Writer writer = new BufferedWriter(new FileWriter(new File("D:/TestCompress/txt.txt")),
1024 * 1024 * 5);
int max = 1024 * 1024;
String strs = "`1234567890-=~!@#$%^&*()_+qwertyuiop[]\\QWERTYUIOP{}|asdfghjkl;'\":LKJHGFDSAzxcvbnm,./?><MNBVCXZ";
for (int i = 0; i < max; i++) {
writer.write(RandomStringUtils.random(99, strs));
writer.write("\n");
}
IOUtils.closeQuietly(writer);
}
}

上面的代码用于生成随机的半角字符组成的文本文件,大小为100M(1024*1024*100byte)。(来源:http://blog.csdn.net/inkfish)
性能测试程序:(来源:http://blog.csdn.net/inkfish)
package study.inkfish.compress;
import java.io.File;
import java.io.IOException;
import org.apache.commons.io.FileUtils;
import org.apache.commons.lang.StringUtils;
public class TestCompress {
public static void main(String[] args) throws IOException {
File srcFile = new File("D:/TestCompress", "text.txt");
for (int i = 0; i < 3; i++) {//循环测试三遍
doTest(srcFile);
cleanDir(srcFile);
}
}
private static void cleanDir(File srcFile) throws IOException {
FileUtils.deleteDirectory(new Fi


相关文档:

Java操作Excel:book保护

    Excel的book保护是很常用的,主要是不想让别人修改Excel的时候用。这样能够避免恶意随便修改数据,提高数据的可行度。
    那么JAVA来实现设置book保护怎么做呢?
    查找了几种常见的JAVA操作Excel的一些包,大体结果如下:
    1. POI
  &nbs ......

java学习路线图明细

一:J2SE 面向对象-封装、继承、多态
内存的分析
递归
集合类、泛型、自动打包与解包、Annotation
IO
多线程、线程同步
TCP/UDP
AWT、事件模型、匿名类
正则表达式
反射机制
2:数据库(Oracle或者MySQL)
SQL语句
多表连接,内外连接, 子查询等
管理表、视图、索引、序列、约束等
树状结构存储
存储过 ......

Java线程:线程栈模型与线程的变量

 
SCJP5学习笔记
 
要理解线程调度的原理,以及线程执行过程,必须理解线程栈模型。
线程栈是指某时刻时内存中线程调度的栈信息,当前调用的方法总是位于栈顶。线程栈的内容是随着程序的运行动态变化的,因此研究线程栈必须选择一个运行的时刻(实际上指代码运行到什么地方)。
 
下面通过一个示例性的 ......

JAVA高级:多核线程 volatile原理与技巧

 
为什么使用volatile比同步代价更低?
同步的代价, 主要由其覆盖范围决定, 如果可以降低同步的覆盖范围, 则可以大幅提升程序性能.
而volatile的覆盖范围仅仅变量级别的. 因此它的同步代价很低.
volatile原理是什么?
volatile的语义, 其实是告诉处理器, 不要将我放入工作内存, 请直接在主存操作我.(工作内存详见j ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号