1. Chinese Word Splitter(中文分词) (*)
2. 猎兔--中文分词技术文档 (*)
3. Lucene中文分词组件 JE-Analysis 1.3.1 (*)
4. 几个免费的中文分词模块
5. 计算所汉语词法分析系统 ICTCLAS (*)
6. fenci,Java 的 ICTCLAS
7. AutoSplit,另一个 Java 的 ICTCLAS
8. 小叮咚中文分词 介绍页面 阅读全文 >>
Category: Java/JEE
运行 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了,这对开发原型很有有用,你也可以插入自己的脚本引擎。 阅读全文 >>
使用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操作指令或汇编指令看出个端倪。 阅读全文 >>
使用JNative,在Java中传递一个C/C++结构参数到动态库中

用C++写的动态库的导出方法的代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
struct TestStruct { int a; int b; }; extern "C" __declspec(dllexport) TestStruct* ShowStruct(TestStruct* testStruct) { cout << "在动态库中打印:传入动态库中的结构成员a的值为:" << testStruct->a << endl; //改变传入结构成员a的值为100 testStruct->a = 100; return testStruct; } |
Java调用动态库最简便方法和最好用的组件
记得以前 Java 要调用C/C++写得动态库都是用的 JNI 方式,还需要自己写不少 C/C++ 代码。比如说要在Java中调用已有的动态库,如 Windows 的 user32.dll 的方法 MessageBoxA,具体步骤是 Java 中声明一个 native 方法,然后用 javah 命令生成JNI样式的头文件,再自己实现头文件中声明的方法,在实现方法中装载动态库 user32.dll,调用 MessageBoxA 方法,需要把自己写的这部分 C/C++ 代码封装成一个动态库,如Sample.dll,最后在 java 中装载 Sample.dll,然后执行其中所声明的本地方法。
可见,用老实的JNI方式,我们在调用一个已知动态库的时候还需要额外生成一个符合JNI规则的动态库作为桥梁,显得有点多余了。 阅读全文 >>
常用log4j配置

常用log4j配置,一般可以采用两种方式,.properties和.xml,下面举两个简单的例子:
最简单的配置是只要取下面的log4j.properties文件中带下划线的四行就行,它完成日志输出到控制台。
一、log4j.properties 阅读全文 >>
关于 Log4j 比较全面的配置

LOG4J的配置之简单使它遍及于越来越多的应用中了:Log4J配置文件实现了输出到控制台、文件、回滚文件、发送日志邮件、输出到数据库日志表、自定义标签等全套功能。择其一二使用就够用了 阅读全文 >>