易截截图软件、单文件、免安装、纯绿色、仅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正则表达式(1)

Java正则表达式的应用,这里主要用到了Pattern类。
源码如下:
package quiz;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* Java正则表达式示例
* */
public class RegularExpressionPattern {
public static void main(String[] args) {
//1.采用Pattern.LITERAL模式,
Patter ......

结合反射与 XML 实现 Java 编程的动态性

反射是 Java 语言被视为动态或准动态语言的一个关键性质,结合反射和 XML 会帮助我们更快、更方便地实现一些动态代码,从而解决编程中可能遇到的不确定问题。本文将结合反射与 XML 对 Java 编程的动态性进行深入浅出的讨论。在理解本文的思想之后,您可以将其应用到程序中以创建灵活的代码。
引言
在现实生活中,经常会发 ......

Java中如何定位资源

本文来自:http://blog.csdn.net/ruyanhai/archive/2007/11/07/1871663.aspx
◆ 一般情况下,我们都使用相对路径来获取资源,这样的灵活性比较大.
比如当前类为com/bbebfe/Test.class
而图像资源比如sample.gif应该放置在com/bbebfe/sample.gif
而如果这些图像资源放置在icons目录下,则应该是com/bbebfe/icons/sample.gif ......

java 任务调度

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

java 中区分字符串中的字符与数字

for(int i=0;i<string.length();i++)
{
 char x=string.CharAt(i);
 if(Character.isDigit(i)==true){
 //x类型转换然后统计
 }
}
如下可以将字母与数字分离出来
用正则!
String str="200Minute";
  String str2="300.25Hour";
  String regex="[a-zA-Z]" ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号