Information Retrieval Blog » Java http://blog.zye.me ANTI-GFW Sun, 29 Aug 2010 03:59:54 +0000 http://wordpress.org/?v=2.9.1 en hourly 1 Java泛型中通配符使用 http://blog.zye.me/2010/02/50190.html http://blog.zye.me/2010/02/50190.html#comments Fri, 19 Feb 2010 16:10:26 +0000 jeffye http://blog.so8848.com/?p=50190 泛型是一种表示类或方法行为对于未知类型的类型约束的方法,比如 “不管这个方法的参数 x 和 y 是哪种类型,它们必须是相同的类型”,“必须为这些方法提供同一类型的参数” 或者 “foo() 的返回值和bar() 的参数是同一类型的”。虽然 String 是 Object 的子类,但是 List<String> 和 List<Object> 之间并没有什么关系——List<String> 不是 List<Object> 的子类或者子类型。

Wildcards

Consider the problem of writing a routine that prints out all the elements in a collection. Here’s how you might write it in an older version of the language (i.e., a pre-5.0 release):

void printCollection(Collection c) { [...]]]>
http://blog.zye.me/2010/02/50190.html/feed 0
Eclipse 无法自动编译 http://blog.zye.me/2009/06/53231.html http://blog.zye.me/2009/06/53231.html#comments Tue, 30 Jun 2009 04:02:10 +0000 jeffye http://blog.so8848.com/?p=53231 Eclipse 无法自动编译 — 交叉引用

还是前人说得好,好记忆不如烂笔头。今天又被这个错误折腾了半天,Eclipse 突然莫名其妙的无法自动编译,依稀好像记得上次也出现这种情况,但今天半天都无法想得当初是如何找到原因的了。以后遇到这种错误还是得简单记录下来。

原因:两个工程互相引用会导致Eclipse 无法编译

Tricks: 遇到半天想不错原因的错误,建议打开windows–>Show View –> Problems , 一般会这里面会提示相应错误。

Incoming search terms for the article:eclipse不能自动编译 (2)eclipse web 自动编译 (1)eclipse 交叉编译 出错 (1)eclipse不能编译 (1)linux eclipse不能编译 (1)Related PostsEclipse 快捷键设置-代码提示Content AssistHadoop on windows with EclipseEclipse快捷键安装Eclipse SVN plugin(Subclipse)]]>
http://blog.zye.me/2009/06/53231.html/feed 0
使用Java Tar Package读取*.tar 或*.tar.gz 文件 http://blog.zye.me/2009/06/53089.html http://blog.zye.me/2009/06/53089.html#comments Fri, 26 Jun 2009 02:10:20 +0000 jeffye http://blog.so8848.com/?p=53089 Java Tar Package com.ice.tar 实现了一个tar 文档输入输出io包。使用方式接近java 中自带的 java.util.zip 包,所以也该非常容易上手,如果使用国java的zip包的话。

而且配合java 的中的GZIPInputStream 使用,就很容易实现.tar.gz 文件的访问。 步骤: 1. 读取文件,生成GZIPInputStream 流 2. 把1中生成的GZIPInputStream流传给 Java Tar Package 中的TarInputStream 流 过程非常简单,代码如下 private void visitTARGZ(P parser, File targzFile) throws IOException { FileInputStream fileIn = null; BufferedInputStream bufIn = null; GZIPInputStream gzipIn = null; TarInputStream taris = null; try { fileIn = new FileInputStream(targzFile); bufIn = new BufferedInputStream(fileIn); gzipIn = new GZIPInputStream(bufIn); //first [...]]]> http://blog.zye.me/2009/06/53089.html/feed 0 Eclipse 快捷键设置-代码提示Content Assist http://blog.zye.me/2009/06/52224.html http://blog.zye.me/2009/06/52224.html#comments Tue, 02 Jun 2009 02:35:06 +0000 jeffye http://blog.so8848.com/?p=52224 新机器换了ubuntu 系统,顺手也下了个最新版的Eclipse,没有到居然我最常用的快捷键代码提示Content Assist 从alt+/ 换成了ctrl+space, 真是没道理啊。 ctrl+space 对于中文用户来说一般都是用于拼音切换,这下可大麻烦了,强烈必是Eclipse设计者不考虑中文用户的使用习惯。今天是在忍不住了,找出来重新修改快捷键设置。以下备忘

Window –> Preferance –> General –>Keys

输入“alt+/” 找到那个功能占用此快捷键,删除或修改该快捷键。

输入找到Content Assist,恢复起快捷键为“alt+/”即可。

Incoming search terms for the article:eclipse 快捷键设置 (152)eclipse快捷键设置 (24)eclipse 提示快捷键 (22)eclipse 快捷键 设置 (21)eclipse 设置快捷键 (19)Related PostsEclipse 无法自动编译Hadoop on windows with EclipseEclipse快捷键安装Eclipse SVN plugin(Subclipse)]]>
http://blog.zye.me/2009/06/52224.html/feed 0
Java Multiplication (Much) Faster than Division http://blog.zye.me/2009/05/52004.html http://blog.zye.me/2009/05/52004.html#comments Tue, 19 May 2009 21:10:30 +0000 jeffye http://blog.so8848.com/2009/05/52004.html funny

    Sent to you by Jeffye via Google Reader:     Java Multiplication (Much) Faster than Division via LingPipe Blog by lingpipe on 5/13/09

Micro-benchmarking

I wrote this little micro benchmark to test it out:

public class MultiplyDivide { public static void main(String[] args) { for (int j = 0; j < 10; ++j) { [...]]]>
http://blog.zye.me/2009/05/52004.html/feed 0
Java中通过classpath路径读取模型(通常是序列化的)或其它资源 http://blog.zye.me/2009/04/50883.html http://blog.zye.me/2009/04/50883.html#comments Sat, 04 Apr 2009 14:25:25 +0000 jeffye http://blog.so8848.com/?p=50883 在某些情况下,譬如模型作为servlet的一部分,直接通过classpath就可以读取模型或其它资源就显得非常的方便,完全不需要考虑路径问题,只需把这些资源文件放在classpath中某一个路径下就可以。这也是我们我们喜欢从流input streams,而不是文件,来读取模型的原因。实际上这些实现非常的容易,看看Lingpipe blog上的一个简单的例子就很清楚。

import com.aliasi.chunk.Chunker; import com.aliasi.util.Streams; import java.io.*; public class ReadModel { public static void main(String[] args) throws IOException, ClassNotFoundException { Chunker chunker = readChunker(args[0]); for (int i = 1; i < args.length; ++i) System.out.println(chunker.chunk(args[i])); } static Chunker readChunker(String resourceName) throws IOException, ClassNotFoundException { InputStream in = null; ObjectInputStream objIn = null; try { in = ReadModel.class [...]]]>
http://blog.zye.me/2009/04/50883.html/feed 0
Eclipse快捷键 http://blog.zye.me/2009/03/50537.html http://blog.zye.me/2009/03/50537.html#comments Tue, 24 Mar 2009 05:25:56 +0000 jeffye http://blog.so8848.com/?p=50537  Eclipse快捷键[转贴]: http://irlab.blogspot.com/2007_11_01_archive.html

本文档从Eclipse软件上整理,是列出了标准的快捷键,未列出Emacs快捷键

作用域 功能 快捷键 

全局 查找并替换 Ctrl+F 

文本编辑器 查找上一个 Ctrl+Shift+K 

文本编辑器 查找下一个 Ctrl+K 

全局 撤销 Ctrl+Z 

全局 复制 Ctrl+C 

全局 恢复上一个选择 Alt+Shift+↓ 

全局 剪切 Ctrl+X 

全局 快速修正 Ctrl1+1 

全局 内容辅助 Alt+/ 

全局 全部选中 Ctrl+A 

全局 删除 Delete 

全局 上下文信息 Alt+?

Alt+Shift+?

Ctrl+Shift+Space 

Java编辑器 显示工具提示描述 F2 

Java编辑器 选择封装元素 Alt+Shift+↑ 

Java编辑器 选择上一个元素 Alt+Shift+← 

Java编辑器 选择下一个元素 Alt+Shift+→ 

文本编辑器 增量查找 Ctrl+J 

文本编辑器 增量逆向查找 Ctrl+Shift+J 

全局 粘贴 Ctrl+V 

全局 重做 Ctrl+Y 

 

?

查看

作用域 功能 快捷键 

全局 放大 Ctrl+= 

全局 缩小 Ctrl+- 

 

?

窗口

作用域 功能 快捷键 

全局 激活编辑器 F12 

全局 切换编辑器 Ctrl+Shift+W 

全局 [...]]]> http://blog.zye.me/2009/03/50537.html/feed 0 如何 Log4j 使用–备忘 http://blog.zye.me/2009/03/50264.html http://blog.zye.me/2009/03/50264.html#comments Mon, 16 Mar 2009 17:12:14 +0000 jeffye http://blog.so8848.com/?p=50264 Appender则是用来指明将所有的log信息存放到什么地方,Log4j中支持多种appender,如 console、files、GUI components、NT Event Loggers等,

一个Logger可以拥有多个Appender,也就是你既可以将Log信息输出到屏幕,同时存储到一个文件中。

   Layout的作用是控制Log信息的输出方式,也就是格式化输出的信息。    Log4j中将要输出的Log信息定义了5种级别,依次为DEBUG、INFO、WARN、ERROR和FATAL, 当输出时,只有级别高过配置中规定的 级别的信息 才能真正的输出,这样就很方便的来配置不同情况下要输出的内容,而不需要更改代码,这点实在是方便啊。 2、Log4j的配置文件 两种格式:xml和Java的property格式 我个人比较喜欢xml格式配置,主要原因两点 ,1)清晰 2)xml 可跨平台使用, 2.1 xml <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">  <appender name="console" class="org.apache.log4j.ConsoleAppender">   <param name="Target" value="System.err"/>   <layout class="org.apache.log4j.SimpleLayout"/>  </appender> <appender name="file" class="org.apache.log4j.FileAppender">   <param name="File" value="var/log.log" />   <layout class="org.apache.log4j.SimpleLayout"/>  </appender>  <root>   <priority value="info" /><!-- Terrier: change to debug to get more output -->   <appender-ref ref="file" />  </root> </log4j:configuration> <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd" > <log4j:configuration> <appender name="stdout" [...]]]>
http://blog.zye.me/2009/03/50264.html/feed 0
java中的基本数值类型 http://blog.zye.me/2009/02/49376.html http://blog.zye.me/2009/02/49376.html#comments Thu, 19 Feb 2009 16:51:32 +0000 jeffye http://blog.so8848.com/2009/02/49376.html

java中的基本数值类型,如下表:

 

Primitive type

http://blog.so8848.com/2009/02/47633.html  

 linux Shell一般不能在cygwin下直接用,因为调研Java 还是windows下的Java,所以路径必须还是windows格式的路径,这里用cygwin中一个简单命令即可实现cygpath 路径的转化。

这有个很大的好处就是可以彻底不用学windows下无用的Shell了,Cheers!

 

Why can’t I get Java to recognize my CLASSPATH environment variable or -classpath command-line argument? (Or other path or file arguments?)

Java is a Windows program, and as such, doesn’t recognize Cygwin-specific paths. So /cygdrive/c/foo/... is useless tojava.exe. If your Java software uses file paths, you’ll need to convert them to Windows-style path names using [...]]]> http://blog.zye.me/2009/02/47633.html/feed 0