运行 Think In Java中的 RMI 示例可能产生的几种异常及解决

在Think In Java里有一个示例 RMI 的代码 PerfectTime, 可是其中并没有把有些执行细节说明了,也就可以造成新手运行它会出某些异常而不知所措。下面将列出可能产生的异常,并说明解决办法,如读者在执行当中还遇到其他未列出的异常,可留言告知,吾将尽力而为。

首先把代码PerfectTime和DisplayPerfectTime 中的//colossus:2005/PerfectTime改为//localhost:2005/PerfectTime ,因为colossus为机器名,所以改为localhost指向本机,不然找不到主机colossus的。

已经用命令 RMIC 生成PerfectTime_Stub.class,并且执行了命令 rmiregistry 2005 阅读全文 >>

JAVA RMI 快速入门实例

本实例为参考多篇文章写就而成,网上及书上各类文章介绍如何使用RMI有多种实例可参考,譬如有:

1. 用命令rmiregistry启动RMI注册服务的
2. 同时创建存根(stub)和骨架(skeleton)的
3. 只创建存根类的(jdk1.2以后版本)
4. 通过RemoteRef和rmi://协议字串方式的
5. 比较少讲到的用LocateRegistry直接在代码上启动RMI注册服务的。

以上描述并非明显分类,比如,你总是可以选择用rmiregistry或者代码LocateRegistry启动RMI注册服务

下面我将介绍一个完整的实例,让初学者能快速体验RMI的功用。

分为以下四个步骤 阅读全文 >>

你应该知道的10件关于Java 6的事情 [转]

http://java.sun.com/developer/technicalArticles/J2SE/Desktop/mustang/beta2.html 一文中描述了你应该知道的10件关于Java 6的事情,下面总结如下

1.Web Services. 优先支持编写 XML web service 客户端程序。你可以用过简单的annotaion将你的API发布成.NET交互的web services. Mustang 添加了新的解析和 XML 在 Java object-mapping APIs中, 之前只在Java EE平台实现或者Java Web Services Pack中提供.

2.Scripting. 现在你可以在Java源代码中混入JavaScript了,这对开发原型很有有用,你也可以插入自己的脚本引擎。 阅读全文 >>

JavaScript:世界上误解最深的语言 [转]

JavaScript, aka Mocha, aka LiveScript, aka JScript, aka ECMAScript, is one of the world's most popular programming languages. Virtually every personal computer in the world has at least one JavaScript interpreter installed on it and in active use. JavaScript's popularity is due entirely to its role as the scripting language of the WWW.

JavaScript,或者叫 Mocha,或者叫 LiveScript,或者叫 JScript,又或者叫 ECMAScript,是世界上最流行的编程语言之一。事实上世界上的每一台个人电脑都安装并在频繁使用至少一个JavaScript解释器。JavaScript的流行完全是由于他在WWW脚本语言领域中的地位决定的。 阅读全文 >>

以一个最简单的例子把OO的JavaScript说明白[转]

以一个最简单的例子把OO的JavaScript说明白 OO的JavaScript并不高深,麻烦就麻烦在google出来的国人介绍文章经常罗罗嗦嗦,而且之间的说法还各有不同,摆在一起就让人看了头大。
这里重拾简单主义,以一个最简单的例子把OO Javascript说明白。

1.一个颇为精简的例子

只需理解三个关键字:
第一个是function ,JS世界里Class的定义用'function',function里面的内容就是构造函数的内容。 阅读全文 >>

单元测试培训 笔记 2004-5-9

培训日期:2004/5/9

用系统测试的方法来测试单元
每30行代码要出一个测试用例 -- 单元测试
每50行代码要出一个测试用例 -- 系统测试

检视代码,测试用得好,设计是浪费时间
黑盒是基础,点80%用例,白盒是补充

代码覆盖应该有一个标准 阅读全文 >>

使用Lucene的两段精要代码

Lucene简介:
Lucene是一个基于Java的全文索引工具包。Lucene的发展历程:早先发布在作者自己的www.lucene.com,后来发布在SourceForge,2001年年底成为APACHE基金会jakarta的一个子项目:http://jakarta.apache.org/lucene/.
Jive,Eyebrows,Cocoon,Eclipse中都使用了Lucene
全文检索和数据库应用最大的不同在于:让最相关的头100条结果满足98%以上用户的需求

索引过程中可以看到:
    * 语言分析器提供了抽象的接口,因此语言分析(Analyser)是可以定制的,虽然lucene缺省提供了2个比较通用的分析器 SimpleAnalyser和StandardAnalyser,这2个分析器缺省都不支持中文,所以要加入对中文语言的切分规则,需要修改这2个分析器。或者建立自己的语言分析器 阅读全文 >>

拾谈"用最有效率的方法算出2乘以8等於几?"

这是网上流传的"变态级JAVA程序员面试32问"的其中一题(二十八题),然后下面给出来的答案是

第二十八,编程题: 用最有效率的方法算出2乘以8等於几?
有C背景的程序员特别喜欢问这种问题。

2 << 3

粗看似乎很在理,大致想来2<<3会是移位操作,在Java的字节码中移位指令是ishl(右移),而在CPU上的硬件指令可能就会是shl(算术右移指令)。其实不然,如果熟悉汇编语言,还考虑过编译优化,2<<3根本不会使用移位操作,而是在编译时就优化计算出16来了。

但如果是写成这样的方式(int i = 2; int j = i<<2;),又是不一样的,大家可以从代码不同写法生成的Java操作指令或汇编指令看出个端倪。 阅读全文 >>

怎样成为优秀的软件模型设计者

我们期待自己成为一个优秀的软件模型设计者,但是,要怎样做,又从哪里开始呢?将下列原则应用到你的软件工程中,你会获得立杆见影的成果。

1. 人远比技术重要

你开发软件是为了供别人使用,没有人使用的软件只是没有意义的数据的集合而已。许多在软件方面很有成就的行家在他们事业的初期却表现平平,因为他们那时侯将主要精力都集中在技术上。显然,构件(components),EJB(Enterprise Java Beans)和代理(agent)是很有趣的东西。但是对于用户来说, 阅读全文 >>