`
izuoyan
  • 浏览: 9230233 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

读书札记(一)

阅读更多

1:

最近在看《编程卓越之道-深入理解计算机》,这本书确实是本值得一看的书,至少对得起你的49个大洋,呵呵.

作者是《汇编语言编程艺术》一书的作者.从很深刻的角度分析了CPU、内存、总线之间的代码优化方法和原理.

比如下面的代码:

public class TestSpeed
{
public static void main(String[] args)
{
int[][] array = new int[256][256];
long time_1 = System.currentTimeMillis();
for(int i = 0;i < 256;i++)
{
for(int j = 0;j < 256;j++)
{
array[j][i] = i*j;
}
}
long time_2 = System.currentTimeMillis();
System.out.println("列优先初始化花费的时间为 :"+(time_2-time_1));

long time_3 = System.currentTimeMillis();
for(int i = 0;i < 256;i++)
{
for(int j = 0;j < 256;j++)
{
array[i][j] = i*j;
}
}
long time_4 = System.currentTimeMillis();
System.out.println("行优先初始化花费的时间为 :"+(time_4-time_3));
}
}

同样是数组初始化,但是第一种方法花费了16ms的时间,而第二种方法花费的时间为0(当然不可能为0,0只是这里的输出),因为C/C++、Java里大多数数组是按照"行优先的顺序"进行排列的,而第一种方法会不断的在不同的内存地址之间"跳跃",浪费了CPU的时钟周期.

2:

import java.io.*;
public class TestMakeDir
{
public static void main(String[] args)
{
File file=new File("d:\\novel\\temp","2");
file.mkdirs();
}
}

很多人说API并不重要,我认为这简直是荒谬.API都不知道,你又怎么知道某些功能是否能实现,又怎么能从整体上把握项目的开发.

mkdir()方法只能在第一个参数的目录下面建子目录,而不能建多级目录.

mkdirs()却容许你建多级目录.

就是因为少了一个s,我调试了半天程序,很郁闷.

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics