Install Java ME SDK 3.0

在安装完 Java ME SDK 3.0,并试图启动,总是提示 connection refused,这就是 windows 防火墙在搞鬼,阻挡了对特定端口的访问。
把 Java ME SDK Device Manager 加到防火墙的允许名单内,就可以顺利启动 Java ME SDK。

By javafuns on March 2, 2010 at 22:22 · Views: 37 · Permalink · Leave a comment
Categorized in: Java · Tagged with: ,

应该使用 char[] 保存 Java 密码

以下内容引用《Java安全性, 第一部分: 密码学基础》:
存储/删除密码。如果密码是存储在 Java String 对象中的,则直到对它进行垃圾收集或进程终止之前,密码会一直驻留在内存中。即使进行了垃圾收集,它仍会存在于空闲内存堆中,直到重用该内存空间为止。密码 String 在内存中驻留得越久,遭到窃听的危险性就越大。
更糟的是,如果实际内存减少,则操作系统会将这个密码 String 换页调度到磁盘的交换空间,因此容易遭受磁盘块窃听攻击。
为了将这种泄密的可能性降至最低(但不是消除),您应该将密码存储在 char 数组中,并在使用后对其置零。(String 是不可变的,所以无法对其置零。)
.

By javafuns on January 28, 2010 at 10:40 · Views: 88 · Permalink · Leave a comment
Categorized in: Java · Tagged with: 

Java Annotations

原文:http://java.sun.com/javase/6/docs/technotes/guides/language/annotations.html
许多 APIs 需要模板代码. 例如, 为了编写 JAX-RPC web 服务, 你必须提供一对接口和实现. 这种模板代码其实可以由工具自动生成, 如果程序使用了注释进行修饰以指示哪些方法可远程访问.
其它 APIs 需要有与程序一起的额外附属文件. 例如 JavaBeans 需要一个与 bean 一同存在的 BeanInfo 类, 而 Enterprise JavaBeans (EJB) 需要一个 部署描述符. 如果这些文件中的信息随同程序在一块会更加方便, 也会不易出错.
The Java platform 已经有各种特定的 annotation 机制. 例如 transient 修饰符是一个特定 annotation 用于指示一个域应该在序列化时忽略, @deprecated javadoc tag 用于指示该方法不应该再使用了. 到了 Java 5.0, 平台具有常规用途的 annotation (也称之为 metadata) 设施, 允许你定义和使用自己的 annotation types. 该设施提供的语法可声明 annotation types, 对声明进行注释, 读取 annotations [...]

By javafuns on December 1, 2009 at 22:43 · Views: 97 · Permalink · Leave a comment
Categorized in: Java · Tagged with: ,

Java 中的 Properties

Java 中使用 Properties 类代表一个属性集合。相对于我们通常的用法,Properties其实还有其它很多很有意思的使用方式。
构造方法:
Properties 有2种构造方法,其中之一用于创建一个无默认值的属性集合,另外一个用于创建一个带有默认值的属性集合。
Properties(Properties defaults)
例如,当调用 properties 的 getProperty(String key) 方法时,首先在属性集合中查找,如果未找到,则在默认集合中查找,如果还未找到,则返回 null。
加载属性集合:
常用的是通过 load(InputStream inStream) 或 load(Reader reader) ,不过也可以加载 XML 文件 loadFromXML(InputStream in)
另外请参考《巧妙装载你的properties》
存储属性集合:
与加载方法相对应,存储方法有 store(OutputStream out, String comments),store(Writer writer, String comments),特别是,也可以存储为 XML:storeToXML(OutputStream os, String comment) or storeToXML(OutputStream os, String comment, String encoding)
属性文件格式:
属性以行为单位,行分为2种:自然行和逻辑行。自然行是指单独的一行,行尾是以回车、换行或者回车加换行作为结尾。而逻辑行则是由多个自然行组成,自然行行尾以 \ 表示该行并未结束。如:
fruits=apple, banana, pear, \
cantaloupe, watermelon, \
kiwi, mango
fruits属性值是 apple, banana, pear, cantaloupe, watermelon, kiwi, mango
键包含行中下列区间内的所有字符:从首个非空白字符开始,直到(但不包括)首个非转义的 ‘=’、 ‘:’ 或非行结束符的空白字符。
所以,属性的 [...]

By javafuns on November 18, 2009 at 22:08 · Views: 112 · Permalink · Leave a comment
Categorized in: Java · Tagged with: 

What’s the differences between ClassNotFoundException and NoClassDefFoundError

坦白说,这两者之间有什么区别,以前没有去特意留意过。前些天,QA小姑娘问到我 NoClassDefFoundError 这个错误,我就顺便对比了一下这两者。
从 Java API 文档中,我们其实可以看出一些端倪。
ClassNotFoundException:
文档中写到:
当应用程序试图使用以下方法通过字符串名加载类时,抛出该异常:

Class 类中的 forName 方法。
ClassLoader 类中的 findSystemClass 方法。
ClassLoader 类中的 loadClass 方法。

但是没有找到具有指定名称的类的定义。
显然,这些方法在编译期是不会检查Class定义是否存在,而只会在 runtime 期间抛出这个异常。
NoClassDefFoundError
当 Java 虚拟机或 ClassLoader 实例试图在类的定义中加载(作为通常方法调用的一部分或者作为使用 new 表达式创建的新实例的一部分),但无法找到该类的定义时,抛出此异常。
当前执行的类被编译时,所搜索的类定义存在,但无法再找到该定义。
也就是,该类在编译时还是存在并且能找到,但在运行期却找不到对应的class导致加载失败,抛出了该异常。

By javafuns on November 12, 2009 at 22:15 · Views: 145 · Permalink · Leave a comment
Categorized in: Java · Tagged with: 

Class and ClassLoader in Java

(以下摘自 Java API 中文文档)
关于 Class
Class 类的实例表示正在运行的 Java 应用程序中的类和接口。枚举是一种类,注释是一种接口。每个数组属于被映射为 Class 对象的一个类,所有具有相同元素类型和维数的数组都共享该 Class 对象。基本的 Java 类型(boolean、byte、char、short、int、long、float 和 double)和关键字 void 也表示为 Class 对象。
Class 没有公共构造方法。Class 对象是在加载类时由 Java 虚拟机以及通过调用类加载器中的 defineClass 方法自动构造的。

By javafuns on November 12, 2009 at 21:58 · Views: 138 · Permalink · Leave a comment
Categorized in: Java · Tagged with: 

某些 Linux distribution 导致 Java swing 空白

某些 Linux 下使用最新的 Java Swing application 会出现一片空白。
尝试如下两种解决办法:

在 .profile 或 .bashrc 添加 export AWT_TOOLKIT=MToolkit
禁用外观的特殊效果

By javafuns on November 3, 2009 at 17:06 · Views: 153 · Permalink · Leave a comment
Categorized in: Java, Operation Systems · Tagged with: , ,

Netbeans 6.7 中的 Link-in-Editor 功能

Eclipse 和 Netbeans 两大 IDE 我都用过,当然,主要还是 Eclipse 为主。在熟悉了 Eclipse 的快捷键后,开发起来有一种很顺手的感觉。

然而,转换到 Netbeans 之后一直很郁闷,也很纳闷,为什么 Netbeans 没有类似 Eclipse 的 link-in-editor 功能呢? 在切换文件的同时,左侧的项目浏览器或文件浏览器也能够同时切换。

By javafuns on October 23, 2009 at 10:59 · Views: 146 · Permalink · Leave a comment
Categorized in: Java · Tagged with: , ,
  • Highest Rated

  • My PicasaPhotos

    IMG_0678.JPG

    IMG_0565.JPG

    IMG_0528.JPG

  • RSS My del.icio.us

  • My RSS