最有趣/最有用的Java类?

Raf*_*ler 8 java class

我已经使用Java一年左右了,我不断发现自己用语言发现了新东西.有趣的是,大多数这些很酷的东西不是来自第三方API或库,而是来自JDK中提供的类.

所以我想知道,部分是出于好奇,部分出于对他人和我自己的教育,JDK中哪些课程最有趣/最有用/最喜欢?

Jos*_*hua 22

根据定义,对象.

  • +1为机智和聪明. (3认同)

Bal*_*usC 6

既然你特别提到了JDK,我认为它允许提到一个实际上在JRE中不可用的API,并且在我们大多数人中也不太了解:javax.tools.

这是一个完整的演示片段:

package test;

import java.io.File;
import java.io.FileWriter;
import java.io.Writer;
import java.net.URL;
import java.net.URLClassLoader;

import javax.tools.JavaCompiler;
import javax.tools.ToolProvider;

public class Test {

    public static void main(String[] args) throws Exception {
        // Prepare source somehow.
        String source = "public class Test { static { System.out.println(\"test\"); } }";

        // Save source in .java file.
        File root = new File("/test");
        File sourceFile = new File(root, "Test.java");
        Writer writer = new FileWriter(sourceFile);
        writer.write(source);
        writer.close();

        // Compile source file.
        JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
        compiler.run(null, null, null, sourceFile.getPath());

        // Load compiled class.
        URLClassLoader classLoader = URLClassLoader.newInstance(new URL[] { root.toURI().toURL() });
        Class<?> cls = Class.forName("Test", true, classLoader); // Prints "test".
    }
}
Run Code Online (Sandbox Code Playgroud)

有用?不确定.有趣?是的,有趣的是知道:)

对于残余,我喜欢Collections,Reflection,ConcurrentJDBC API.所有这些都在此之前已经提到过.