我已经使用Java一年左右了,我不断发现自己用语言发现了新东西.有趣的是,大多数这些很酷的东西不是来自第三方API或库,而是来自JDK中提供的类.
所以我想知道,部分是出于好奇,部分出于对他人和我自己的教育,JDK中哪些课程最有趣/最有用/最喜欢?
既然你特别提到了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,Concurrent和JDBC API.所有这些都在此之前已经提到过.
| 归档时间: |
|
| 查看次数: |
9325 次 |
| 最近记录: |