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

学习JAVA中...

学习java已达一周。
促使我打算学习java的原因是今年的一个项目。今年用C++做了一个很简单的分布式non-relational key-value store. 功能仿照Dynamo,但是实现要比它简单得多,很多比如容错等模块都没有加上去。但即便如此,用C++来开发这么一个东西仍然不是一件让人愉快的事。举个例子,为了用event driven架构,一开始打算使用epoll,但是epoll太底层,后来就找到了libevent,因为是网络应用,自然就得用linux下的网络编程,然后C++不支持序列化,所以又找了半天才找到protocolbuf,所以C++的第一个问题就是它的标准库太烂了。十年前就是这个样子,现在还是这个样子,到今天都没有和线程,锁或者序列化有关的内容,在项目中要实现这些就要另外的去找库,这其实是个痛苦的过程,因为不太好确定说到底哪个库最适合。
更郁闷的一个问题则是对内存的维护,搭建一个robust的系统就要求要对所有可能的错误都要有对应的措施,比如一个失败的链接就要去释放它所拥有的所有资源,所以首先要找到它们,然后delete掉。这真不是件轻松的活。
所以,不是说用C++做不了这件事。而是如果要用C++,那么它的要求会很高。首先,它要求整个团队的编程水平都要足够的好(事实上这样的人都不好找)。如果你像google一样有那么多天才的程序员,那么C++当然是首选,但是,如果你找不到这么多优秀的人,那用C++只会适得其反。最后得到的程序一定堆满了bug。其次,要花大量的时间放在找库和学习库上。没办法,谁让它的标准库是那么的陈旧呢。
之所以想换java,是因为找到的很多开源的类似系统都是用java或者erlang做的。erlang当然好,但还是小众了一点,所以就打算试试java。经过一周的学习,我有了两个基本认识,首先,它的语法要比C++简单多了,说明它比C++更容易操控。其次,它的标准库很强大。所以,用java应该会让你的项目开发周期缩短很多,并且bug会更少。当然,效率可能会慢一些。但是,对于大部分的项目,应该都是可忍受的范围内。
一点小感受,等我多学几周,也许会理解得更深刻些。


相关文档:

Java桌面游戏开发框架,LGame Simple 0.2.5版发布


LGame是Loonframework框架的一部分,也是针对Java2D游戏开发而设计的“一揽子”项目,它的创立初衷在于构建一个高效且完善的Java2D游戏开发体系。

发布时间

版本号

2009-12-29
0.2.5
2009-10-10
0.2.0
2009-09-13
0.1.5
2009-08-11
0.1.0
2009-12-29 LGame-Simple-0.2.5 ......

java 任务调度

1、Timer介绍
建立任务:使用Timer调度的任务应该继承TimerTask抽象类,该类实现Runnable接口,因些具备多线程的能力,实现该接口的run方法,该方法是需要高度的任务执行体。
调度任务:调度任务通过Timer类完成,调度任务通过schedul方法完成,查一下java doc文档:
Java代码
void schedule(TimerTask task, Date tim ......

Java时间更新周期测试

写了个简单的测试代码,测试了JAVA的时间更新单元,发现currentTimeMillis的更新周期大约是15或16ms,所以精度也就在15ms-16ms,低于15ms的时间是无法测量出来的。而nanoTime的更新周期大约在800-1200纳秒左右,因此低于 800ns的时间无法测量出来。代码如下:
public class JavaTimeWinTest
{
public static void main ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号