2009年十月

java中测试程序的运行时间

long  lasting = System.currentTimeMillis();//毫秒级

code…..

System.out.println(“运行时间:” + (System.currentTimeMillis() – lasting) + ” 毫秒”);



java中解析xml四种方法

<1>dom:是将xml作为树状结构进行解析的,一次性的将所有的内容读入内存,适合于xml文件比较小而且经常更改的情况

<2>sax:分析能够立即开始,而不是等待所有的数据被处理。而且,由于应用程序只是在读取数据时检查数据,因此不需要将数据存储在内存中。这对于大型文档来说是个巨 大的优点。事实上,应用程序甚至不必解析整个文档;它可以在某个条件得到满足时停止解析。一般来说,SAX 还比它的替代者 DOM 快许多。

DOM 采用建立树形结构的方式访问 XML 文档,而 SAX 采用的事件模型

<3>jdom:与dom差不多

<4>dom4j:这个是当前java对xml文件解析最流行的方式,DOM4J 是一个非常非常优秀的Java XML API,具有性能优异、功能强大和极端易用使用的特点,同时它也是一个开放源代码的软件。

对于大的xml文件一般采用dom4j方式,不会发生内存溢出

http://www.it.com.cn/f/edu/053/27/93819.htm 这篇文章对四个性能进行了比较,dom和jdom性能最差,dom4j性能最优!

本文地址:http://www.yaronspace.cn/blog/index.php/archives/65



java.lang.NoClassDefFoundError: org/jaxen/JaxenException

今天在利用Dom4j对xml文件解析是遇到了这个异常java.lang.NoClassDefFoundError: org/jaxen/JaxenException

原来程序本身没有问题,是缺少了一个解析XPath的jar包,下载之

jaxen是一个用Java开发的XPath 引擎,支持JDOM, dom4j

jaxen地址:http://jaxen.org/releases.html

本文地址:http://www.yaronspace.cn/blog/index.php/archives/63



Thinking in Java学习笔记之接口

接口和内部类为我们提供了一种将接口与实现分离的更加结构化的方法。

1,抽象类
普通的类—>抽象类—>接口
包含抽象方法的类叫做抽象类,对于C++来说,抽象方法就相当于纯虚函数,使用abstract关键字定义:

abstract void f()
abstract class f{}

2,接口
接口可以说是抽象类的进一步的抽象,因为在抽象类既可以有单纯的方法声明,也可以包含方法的实现;而对于接口来说,只能包含方法的声明。
一个接口表示:“所有实现了该特定接口的类看起来都像这样”。
定义方法:使用interface代替class
2.1 域的有关问题:
1,interface中声明的任何方法都是public,不管是否使用public这个关键字,这个应该是可以理解的,因为interface中的方法都是需要被其它类实现的 更多 >



中国航天之父钱学森今日在京逝世

一代大师呀,默哀……

http://news.sina.com.cn/z/qianxueshengshishi/index.shtml

本文地址:http://www.yaronspace.cn/blog/index.php/archives/58



钱宏武探讨如何设计高并发体系架构

说的很详细!
视频地址:http://live.csdn.net/Issue234/LivePlay.aspx

本文地址:http://www.yaronspace.cn/blog/index.php/archives/56



网站架构相关PPT、文章整理

1、amazon
Amazon的分布式key-value存储系统(dynamo)的论文

2、ebay(我对于eBay这几个PPT的一些看法和评价:http://www.blogjava.net/BlueDavy/archive/2009/07/24/288055.html
ebay架构演变历程(The eBay Architecture)
ebay架构原则(eBay architecture principles)
ebay的自动化(Teaching machines to fish)

3、facebook
facebook的缓存系统
facebook的架构
facebook百亿相片的高效存储

4、fotolog
扩展世界上最大的图片blog社区
更多 >



最大子段和、最大子矩阵和、最大m子段和问题总结

1,最大子段和问题
代码:

int MaxSum(int n,int *a)
{
int sum = 0;
int b = 0,i;
for(i=0;i<n;i++)
{
if(b>0) b+=a[i];
else b = a[i];
if(b>sum)sum = b;
}
return sum;
}

2,最大子矩阵和问题
代码:

int MaxSum2(int m,int n,int** a)
{
int sum = 0,i,j,k;
int b[105];
for(i=0;i<m;i++)
{
for(k=0;k<n;k++)
{
b[k] = 0;
}
for(j=i;j<m;j++)
{
for(k=0;k<n;k++)
{
b[k]+=a[j][k];
}
int mx = MaxSum(n,b);
if(sum<mx)sum=mx;
}
}
return sum;
}

3,最大m子段和问题

double b[50005];
double c[50005];
int MaxSum3(int m,int n,int* a)
{
int i,j,k,mx,sum;
b[0] = 0;
c[0] = 0;
for(i=1;i<=m;i++)
{
b[i] = b[i-1] + arr[i];
c[i-1] = b[i];
mx = b[i];
for(j=i+1;j<=i+n-m;j++)
{
b[j] = b[j-1]>c[j-1]?b[j-1]+arr[j]:c[j-1]+arr[j];
c[j-1] = mx;
if(mx<b[j])
{
mx = b[j];
}
}
c[i+n-m] = mx;
}
sum = b[m];
for(k=m+1;k<=n;k++)
{
if(sum<b[k])sum=b[k];
}
return sum;
}

本文地址:http://www.yaronspace.cn/blog/?p=43



如何Eclipse自动提示

很多人不知道Eclipse如何开启代码助手的自动提示功能,只是使用Eclipse默认的输入了“.”之后才会出现提示。

打开 Eclipse -> Window -> Perferences,会打开个Perferences 的设置界面。

IMAGE00060

(点击图片查看大图)

在上图画红线的地方,会看到只有一个“.”存在。表示:只有输入“.”之后才会有代码提示,我们要修改的地方就是这里,可是Eclipse默认只允许输入4个自定义字符。 更多 >



高矮排序问题,很经典【转载】学习下

作者:baihacker
来源:http://hi.baidu.com/feixue http://hi.csdn.net/baihacker

问题描述:
12个高矮不同的人,排成两排,每排必须是从矮到高排列,而且第二排比对应的第一排的人高,问排列方式有多少种?
这个笔试题,很YD,因为把某个递推关系隐藏得很深.

问题分析:
我们先把这12个人从低到高排列,然后,选择6个人排在第一排,那么剩下的6个肯定是在第二排.
用0表示对应的人在第一排,用1表示对应的人在第二排,那么含有6个0,6个1的序列,就对应一种方案.
比如000000111111就对应着
第一排:0 1 2 3 4 5
第二排:6 7 8 9 10 11
010101010101就对应着 更多 >