2008年8月21日
这几天用TimerTask作了个框架,担心超过十万条数据的时候速度变慢,其实每秒十万次的运行速度等到以后放在服务器上运行应该游刃有余吧,还不清楚,不过现在在我笔记本上运行得还可以,内存吃的很大,java就这毛病,程序员不能自由释放内存。1G内存不够用,我笔记本2G有分配不了,似乎虚拟内存java用不了,没仔细做过实验。
这几天看新闻知道番茄花园作者被警方逮捕,树大招风,枪打出头鸟,很正常,从程序员的身份来讲,盗版是要打击的,不过我本身电脑里要付费的软件都是盗版的,很矛盾,呵呵。
posted @
2008-08-21 23:54 nake 阅读(2137) |
评论 (3) |
编辑 收藏
2008年7月12日
实在太久没写servlet了,应该至少1年了,那时候做了点皮毛,现在项目要求用到servlet的相关知识,同时我在blogjava的bolg又开张了。学习的过程将记录在我的blog中。对比了一下netbean和eclipse感觉用netbean编写servlet程序方便些,eclipse用了几年,但是还是感觉每次要找好相关的jar需要花费太多时间,于是决定用netbean编写了。
posted @
2008-07-12 15:15 nake 阅读(1937) |
评论 (2) |
编辑 收藏
2007年1月14日
看看以下代码:
将26个英文字母重复加了5000次,
String tempstr = "abcdefghijklmnopqrstuvwxyz";
int times = 5000;
long lstart1=System.currentTimeMillis();
String str ="";
for(int i=0;i<times;i++)
{
str+=tempstr;
}
long lend1=System.currentTimeMillis();
long time = (lend1-lstart1);
System.out.println(time);
可惜我的计算机不是超级计算机,得到的结果每次不一定一样一般为 154735 左右。
也就是154秒。
我们再看看以下代码
String tempstr = "abcdefghijklmnopqrstuvwxyz";
int times = 5000;
long lstart2=System.currentTimeMillis();
StringBuffer sb =new StringBuffer();
for(int i=0;i<times;i++)
{
sb.append(tempstr);
}
long lend2=System.currentTimeMillis();
long time2 = (lend2-lstart2);
System.out.println(time2);
得到的结果为 16 有时还是 0
所以结论很明显,StringBuffer 的速度几乎是String 上万倍。当然这个数据不是很准确。因为循环的次数在100000次的时候,差异更大。不信你试试。
下一次我将解释为什么StringBuffer 的效率比String 高这么多。
posted @
2007-01-14 12:24 nake 阅读(4203) |
评论 (4) |
编辑 收藏
2007年1月3日
swt 简单的托盘程序
java写和操作系统相关的程序难度非常大。在java 6出现之前,如果你想实现一个托盘程序,最简单的就是用swt了。
通过google我找到了一段代码。
其实很简单。主要的代码如下:
final Tray tray = display.getSystemTray();
final TrayItem trayItem = new TrayItem(tray, SWT.NONE);
Image image = new Image (display, 16, 16);
trayItem.setImage(image);
知道了重点,事情变的很简单了。看看所有程序
//-----------------
public class SystemTray extends Shell {
public static void main(String args[]) {
try {
Display display = Display.getDefault();
SystemTray shell = new SystemTray(display, SWT.SHELL_TRIM);
// shell.createSystemTray(shell);
final Tray tray = display.getSystemTray();
final TrayItem trayItem = new TrayItem(tray, SWT.NONE);
Image image = new Image (display, 16, 16);
trayItem.setImage(image);
shell.open();
shell.layout();
while (!shell.isDisposed()) {
if (!display.readAndDispatch())
display.sleep();
}
} catch (Exception e) {
e.printStackTrace();
}
}
public SystemTray(Display display, int style) {
super(display, style);
createContents();
}
/**
* Create contents of the window
*/
protected void createContents() {
setText("SWT Application");
setSize(500, 375);
}
//swt 默认情况下不允许shell被继承
//所以我重载了父类的方法
protected void checkSubclass() {
}
}
//--------------------
如果你想成功运行以上代码,你最好在eclipse下新建一个swt的类。具体操作你搜索一下吧。
但是上面的代码只是加入了托盘,这可能是最简单的实现托盘的程序了。我们加入事件处理,让程序能够最大和最小化。然后把托盘用图片来表示。
详细的代码不参考
下载
到eclipse里运行
posted @
2007-01-03 22:58 nake 阅读(3404) |
评论 (4) |
编辑 收藏