2024-04-20 09:00:01

Java的隐藏特性

在阅读了c#的隐藏特性之后,我想知道Java的隐藏特性有哪些?


当前回答

在Java 1.6 Update 10及以后版本中发现的下一代Java插件有一些非常简洁的特性:

传递java_arguments参数,将参数传递给创建的JVM。这允许您控制给予applet的内存量。 为每个applet创建单独的类装入器,甚至单独的JVM。 指定要使用的JVM版本。 在只需要完整Java库功能的一个子集的情况下,安装部分Java内核。 更好的Vista支持。 支持(实验性)将applet拖出浏览器,并在导航离开时让它继续运行。

这里记录了许多其他事情:http://jdk6.dev.java.net/plugin2/

更多信息请访问:http://jdk6.dev.java.net/6u10ea.html

其他回答

显然,在一些调试版本中,有一个从HotSpot: http://weblogs.java.net/blog/kohsuke/archive/2008/03/deep_dive_into.html转储本机(JIT)程序集代码的选项

不幸的是,我无法通过那篇文章中的链接找到构建,如果有人能找到一个更精确的URL,我很乐意使用它。

在枚举中允许使用方法和构造函数让我感到惊讶。例如:

enum Cats {
  FELIX(2), SHEEBA(3), RUFUS(7);

  private int mAge;
  Cats(int age) {
    mAge = age;
  }
  public int getAge() {
    return mAge;
   }
}

你甚至可以有一个“常量特定类主体”,它允许特定的枚举值覆盖方法。

更多文档请点击这里。

并不是一个真正的功能,但它让我笑,goto是一个保留词,除了提示javac戳你的眼睛什么也不做。只是想提醒你,你现在在天堂。

静态导入可以“增强”语言,这样你就可以以类型安全的方式做一些漂亮的文字工作:

List<String> ls = List("a", "b", "c");

(也可以做映射,数组,集)。

http://gleichmann.wordpress.com/2008/01/13/building-your-own-literals-in-java-lists-and-arrays/

更进一步说:

List<Map<String, String>> data = List(Map( o("name", "michael"), o("sex", "male")));

您选择的编码中的属性文件如何?过去,当你加载你的属性,你提供了一个InputStream和load()方法解码为ISO-8859-1。你实际上可以用其他编码来存储文件,但你必须在加载后使用像这样令人作呕的黑客来正确解码数据:

String realProp = new String(prop.getBytes("ISO-8859-1"), "UTF-8");

但是,从JDK 1.6开始,有一个load()方法接受Reader而不是InputStream,这意味着您可以从一开始就使用正确的编码(还有一个store()方法接受Writer)。对我来说,这似乎是一件相当大的事情,但它似乎是悄无声息地潜入JDK的。我几周前才偶然发现它,快速搜索谷歌,只发现了一个提及。