突然呀,想到了这个题目。随便列出几个要点。没有仔细的考虑。。。 Java是好东西,但不完美。 1、统一的数据类型,这个是很非常非常实惠的功能。以前学Delphi。就知道有N多种的String类型,有Pacal的String,C的String,还有WideString,这些东西,整体要转来转去,痛苦死了。 2、语言简单和统一。这个统一性很重要,不会说一个东西有N种表达方式。然后要不断的想区分这个那个。 3、没有指针,不用关心内存。这个是最好的东西。当然,带来的副作用就是慢一些。偶尔还要考虑内存问题,因为呀,在手机上还是要考虑内存的。 4、先有标准API后又实现。这个是好传统。看,Ser ...
如果要自己来写Java的编译器,我是指出编译出来的目标程序文件是Java的class执行文件.那么这里有个很好的工具: jasmin. 这个工具是一个Java的汇编编译器.能够将类式汇编的bytecode指令,翻译成最终的Java的class文件.   jasmin本身也是Java来写.不过和其它很多Java bytecode Assembler比起来,感觉它的优势是最大的,最广泛使用的.   Jasmin也是一个有名的开源项目,它的主页是: http://jasmin.sourceforge.net   这里我贴一下jasmin里面的一个例子程序Hello ...
安装好后,解压镜像目录中的Crack/Crack.zip 并将Crack.zip中的*.JAR文件复制到JBuilder2006\lib目录中,将*.SLIP复制到JBuilder2006\(即安装好后的根目录) ,启动程序,有个激活的界面,选择Have Activation File。将目录指定到第3步放*.SLIP的地方即可。   再次备份下。
早在Java 1.2推出之时,Java平台中就引入了一个新的支持:java.lang.ThreadLocal,给我们在编写多线程程序时提供了一种新的选择。使用这个工具类可以很简洁地编写出优美的多线程程序,虽然ThreadLocal非常有用,但是似乎现在了解它、使用它的朋友还不多。  ThreadLocal是什么 ThreadLocal是什么呢?其实ThreadLocal并非是一个线程的本地实现版本,它并不是一个Thread,而是thread local variable(线程局部变量)。也许把它命名为ThreadLocalVar更加合 ...
n        TrustManager 信任管理器   n        TrustManagerFactory 信任管理器工厂   getAlgorithm获取算法,默认算法 getInstance:算法,提供者 getProvider: init:根据keystore或管理器工厂参数 n        X509ThustManager X ...
n      ElementInfo.java 状态类,由元素名、bean和父元素信息构成。   n        BeanHandler.java (1)    createChild(final ElementInfo parent, final String name) 取得父类的名称,如Configuration,然后找到方法addDiskStrore。   n   &nbs ...
HttpParam描述配置参数。 HTTPParam描述参数,参数由名称和值构成。 通过HttpProtocolParams来注入参数。 BasicHttpProcessor描述的HTTP的拦截器,以列表维护拦截器,然后遍历逐个处理拦截器。 HttpRequestInterceptor是请求拦截器。 里面有很多中拦截器。每一种请求头都可以有拦截器。 HttpRequestExecutor请求执行器。 HttpExecutionContext是简单的哈希表。 HttpClient的连接是使用SocketHttpClientConnection的Socket连接。 Connectio ...
最近的一个项目在Hibernate使用C3P0的连接池,数据库为Mysql。开发测试没有问题,在运行中每个一段长的空闲时间就出现异常Communications link failure due to underlying exception: java 代码 org.hibernate.exception.JDBCConnectionException: could not execute query at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:74) at org.h ...
环境属性 EnvironmentConfig.setAllowCreate() true不存在就创建,false如果不存在则打开环境失败。 EnvironmentConfig.setReadOnly() true 以只读方式打开,如果是多进程应用,每个进程都要设置为true. EnvironmentConfig.setTransactional() true支持事务,false不支持,默认false。同样可以更改配置文件来设置此参数。 setCachePercent() 设置je的cache占用jvm 内存的百分比 setCacheSize() 设定缓存的大小 setTxnNoSy ...
JE 是一种多用途,提供事务保护支持的 内嵌的数据库,她是由纯java语言编写 (JE没有使用JNI). 正因为如此, 她提供给java程序员安全高效的程序级存储以及管理任意类型数据的能力. JE 提供一种基于java的企业级的数据管理方案. 通过调用java API的方式就可以使用JE.你需要做的就是把jar文件加入的你的classpath中 JE 提供一下主要特性: 大数据量的支持. JE 数据库能够高效的处理一条至数百万条记录. 制约JE数据库的往往是硬件系统,而不是JE本身. 支持多线程多进程. JE是基于多线程控制设计的.读写操作均可用于多线程. JE使 ...
1     ANTLR简介 ANTLR—A,其前身是PCCTS,它为包括Java,C++,C#在内的语言提供了一个通过语法描述来自动构造自定义语言的识别器(recognizer),编译器(parser)和解释器(translator)的框架。ANTLR可以通过断言(Predicate)解决识别冲突;支持动作(Action)和返回值(Return Value)来;更棒的是,它可以根据输入自动生成语法树并可视化的显示出来(这一点我将在下面的例子中演示)。由此,计算机语言的翻译变成了一项普通的任务—在这之前YACC/LEX显得过于学院 ...
EJB3.1专家组通过JCP发布了该规范的早期草案 。EJB的新版本期望作为2008年底发布的Java EE 6规范的一部分,它主要面向如下两个方面:简化工作(从EJB3开始)以及增加Java企业社区要求的新特性。主要改变如下:一个简化的本地视图,无需单独的本地业务接口就可提供session bean的访问。通过这种方式,开发人员仅仅使用一个bean类就能实现一个组件。 一个单例session bean组件:在应用所运行的JVM上,针对每个应用仅实例化一次,该单例session bean组件的目的是为应用提供一个缓存状态的简单方法。作为一个EJB,该单例可以访问标准的EJB中间件服务集&mda ...
尽管Java SE 7的内容仍在不断变动,早期包含在其中的并发特性候选已经成形为jsr166y:一个fork/join框架和一个传递队列。InfoQ与Doug Lea谈及了这些特性及Java SE 7中的并发性。 fork/join框架是一个“多核友好的、轻量级并行框架 ”,它支持并行编程风格,将问题递归拆分成多个更小片断,以并行和调配的方式解决,如同Java Fork/join框架 中描述的伪代码那样: Result solve(Problem problem) { if (problem is small) directly solve problem e ...
1、isSpace已过时。 用 isWhitespace(char) 取代。 确定指定字符是否为 ISO-LATIN-1 空白。该方法只对以下五个字符返回 true: '\t' '\u0009' HORIZONTAL TABULATION 水平tab'\n' '\u000A' NEW LINE  换行'\f' '\u000C' FORM FEED '\r' '\u000D' CARRIAGE RETURN ' ' '\u0020' SPACE 这是ISO-8859-1所定义的空格,它跟ASCII定义的空格是一样的。2、isWhiteSpace确定指定字符依据 Ja ...
一个工具将java源代码以html格式展现出来 http://www.java2html.com/ 很不错的说
java runtime.exec() 的编写作者: okone96(http://okone96.itpub.net)发表于: 2006.03.17 11:55分类: JAVA 出处: http://okone96.itpub.net/post/9033/60404--------------------------------------------------------------- 那就首先说点Runtime类吧,他是一个与JVM运行时环境有关的类,这个类是Singleton的。我说几个自己觉得重要的地方。1、Runtime.getRuntime()可以取得当前JVM的运行时环境,这 ...
碰到一个项目需要从Java中运行Perl程序,这个Perl程序调用客户的Web service,每次发送一个请求,接受一个响应。Java程序中包含多个请求,需要多次调用Perl程序,并且接受和解析响应(这个烂设计可不是我干的,我实在不明白强大的Java Web Service为什么要弄成这样,不过客户是老大)。使用Java Runtime的exec()方法,发现运行一段时间后,进程就被挂起了(之前的响应完全正确)。于是分析原因,发现我在运行exec()方法后,立刻执行了Process的waitFor()方法,这里出了问题。在网上找到一篇文章讲述这个问题:地址:http://brian.pont ...
什么是UTF8 UTF8并不算是一种电脑编码,而是一种储存和传送的格式,如前所述,每个Unicode/UCS字符都以 2或4个bytes来储存,看看以下的比较:   以"I am Chinese"为例   用ANSI储存:12 Bytes   用Unicode/UCS2储存:24 Bytes + 2 Bytes(header)   用UCS4储存:48 Bytes + 4 Bytes(header)  以"我是中国人"为例   用ANSI储存:10 Bytes   用Unicode/UCS2储存:10 Bytes + 2 Bytes(header)    ...
Step 1:修改jbuilderX 安装目录中的bin/jbuilder.config在# Specify location of Visual SourceSafe and Databasevmparam -DVSSLocation="E:\\Program Files\\Microsoft Visual Studio\\VSS\\win32"vmparam -DVSSCurrentDBase="\\\\Rogers\\WorkSheelt"下面增加这一行:vmparam -Dprimetime.editor.useVariableWidthFont ...
当一个代码段正对集合进行枚举而另一段代码试图修改这个集合时,就会发生常见的多线程问题。解决这一问题的方法是在处理前拷贝一份枚举变量。 在撰写多线程代码时,你遇到过多少次下面的提示:Exception in thread "main" java.util.ConcurrentModificationException  这个异常产生的原因有几个。一是直接对集合调用删除操作而不是在枚举器上。二是不同的线程试图对集合进行增删操作的时候。这个解决办法的第一步就是同步代码,使得你在枚举的时候其它的线程不能增删记录。但是如果每个枚举过程要进行复杂的计算或者是数据库访问的一部分 ...
  1. Adapter模式理论    Adapter模式又称变压器模式,关于该模式的基本概念请参考其他书籍或资料;这里我们只粗略讨论该模式两大实现方法的区别:基于类的Adapter模式和基于对象的Adapter模式。    基于类的Adapter模式的一般结构如下:Adaptee类为Adapter的父类,Adaptee类为适配源,适配目标(接口)也是Adapter的父类;基于类的Adapter模式比较适合应用于Adapter想修改Adaptee的部分方法的情况。基于对象的Adapter模式的一般结构如下:Adap ...
File suffixContent type presented to the SDK.3g2video/3gpp2 and audio/3gpp2.3gpvideo/3gpp and audio/3gpp.3gppvideo/3gpp and audio/3gpp2.amraudio/amr.3gsvideo/3gpp2 and audio/3gpp2.3gpvideo/3gpp and audio/3gpp.3gppvideo/3gpp and audio/3gpp2.amraudio/amr.awbaudio/amr-wb.bmpimage/bmp.codtext/x-co-desc. ...
早期的一些记录,未必是正确,仅仅是为了删除硬盘上的N多文字。maxActive:池中最多的对象实例,实际上用来限制调用makeObject方法的个数。maxIdle:   在borrowObject时有用。   如果池的size超过了maxIdle,则应该释放对象了。   如果池的size没有超过maxIdle,则把对象放到池中。   如果是shouldDestroy,则调用destroyObject方法。minIdle:   是在驱逐线程在驱逐对象之后,应该添加多少个对象回去。但此时并没有调用 ...
那么多参数,记录下keytool 用法:-certreq     [-v] [-protected]             [-alias <alias>] [-sigalg <sigalg>]             [-file <csr_file>] [-keypass &l ...
在JBuilder中有个审计功能,用来检查你写的代码的命名是否合理,检查各种常见的问题下面一些文字是N早前的记录。1、CQS------------命令查询分离2、HIA------------隐藏机场的属性3、HN-----------隐藏名称,意思是名称存在冲突.4、UC-----------不必要的转换.5、UIMM-----------不必要的接口成员修饰发符。要求删除多余的接口修饰符。6、UPCM---------未使用的私有类成员.7、EOBA---------if(b==true)用if(b)即可.8、 DVSS---------声明变量为独立的语句int i, limit, c ...
直接使用java.security.MessageDigest。但结果是返回byte[]的,需要转String.import java.security.MessageDigest; public class StringUtil {   private final static String[] hexDigits = {       "0", "1", "2", "3", "4", "5", "6&qu ...
1、引入package的主要原因是java本身的跨平台特性。java中所有资源以文件形式组织,java采用了目录树的结构,虽然操作系统也有目录树,但java的目录以.号分隔的。2、类的衔接是通过CLASSPATH来衔接的如classpath = d:jdk1.4.2libdt.jar; d:cjm因此资源文件的路径就是由CLASSPATH和包路径的构成。要找资源文件的话,靠包路径就可以。包是用.号分隔,但程序中用/分隔,学unix的。3、CLASSPATH的设置方法1)在系统环境变量中设置。2)以命令参数设置:javac -classpath d:\jdk1.4.2\lib d:\cjm\ed ...
1、isSpace已过时。 用 isWhitespace(char) 取代。 确定指定字符是否为 ISO-LATIN-1 空白。该方法只对以下五个字符返回 true: '\t' '\u0009' HORIZONTAL TABULATION 水平tab'\n' '\u000A' NEW LINE  换行'\f' '\u000C' FORM FEED '\r' '\u000D' CARRIAGE RETURN ' ' '\u0020' SPACE 这是ISO-8859-1所定义的空格,它跟ASCII定义的空格是一样的。2、isWhiteSpace确定指定字符依据 Ja ...
1、共享scopesJavascript是一种委托的语言,不用于类继承的语言。我们目的是提供一种在多个scope中共享一组只读的变量。为此我们设置一个对象的原型。当访问javascript的对象的属性时,对象首先根据属性名搜索属性,如果没有找到,则对象原型找到了。继续处理,直到找到对象原型,直到原型链结束了。为了在多个scope中共享信息,我们首先创建希望共享的对象,首先用initStandardObjects 来创建对象,然后创建一个新的对象,然后设置它为原型,并且设置它的父亲scope为空。Scriptable newScope = cx.newObject(sharedScope);&n ...
1、Contexts用来存储线程特定的相关信息,也就是执行环境。每个线程有且只有一个Context,用来执行javascript。Context为了关联当前线程,用Context cx = Context.enter();javascript执行之后,用Context.exit();来退出。而且必须放在finally块中。enter/exit是基于引用计数的,每引用一次,则计数器加1,当计数器为0,则取消与当前线程的关联。2、ScopesScope是javascript对象的集合。执行javascript要求一个scope,用来存储顶层的脚本变量。也是找标准对象的地方。Scope是独立于Con ...