Class 最有趣/最有用的Java类?

Class 最有趣/最有用的Java类?,class,java,Class,Java,我已经使用Java一年左右了,我不断发现自己在语言中发现了新的东西。有趣的是,这些很酷的东西大部分不是来自第三方API或库,而是来自JDK中提供的类 因此,我想知道,部分出于好奇,部分出于对他人和我自己的教育,JDK中的哪些课程最有趣/有用/你最喜欢?无聊,但不知何故,它总是回到ole系统。不是为了任何酷或令人兴奋的东西(正如我所说的,无聊),而是为了这一个命令,我可能会使用比任何其他命令都多的命令-System.out.println(或者只是打印,如果这更像是你的爱好的话)。集合框架,Jav

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


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

无聊,但不知何故,它总是回到ole
系统。不是为了任何酷或令人兴奋的东西(正如我所说的,无聊),而是为了这一个命令,我可能会使用比任何其他命令都多的命令-
System.out.println
(或者只是打印,如果这更像是你的爱好的话)。

集合框架,Java实用程序包,特别是RegExp解析类。
真的取决于你想做什么

实现
集合
接口的大多数类

对于Java人来说,我看到了一件新的东西,那就是SimpleDataFormat类。我发现了一个遗留代码,在我当前的项目中,是由一个C++程序员编写的,他不真正懂java,他基本上用自定义代码完成了所有的字符串格式的数据。谈论重新发明轮子


我最近开始使用zip/unzip支持,这是股票JDK的一部分。它工作得很好!我正在用它在一个webapp中创建KMZ档案。

对我来说,
java.nio
包中有很多类。

java.beans.Expression

我会考虑我自己的问题。我个人最喜欢的类是java.util.Random。我认为它对于概率模拟、纸牌游戏和其他小程序非常有用。我还发现(伪)随机性的概念很吸引人。

  • 等于()和的所有“对象”的基数 toString()方法
  • 异常类。你不能放弃 用它
  • 集合API。几乎所有 “来自集合”API非常有用,并且 在代码中使用
  • System.out.println的系统类。 但它几乎被记录器所取代 API
  • ThreadPoolExecutor如果您的产品 真的使用线程,你真的 关心他们是否被控制:)
  • JDBCAPI。完全基于我们是否 谈论用法。但即使是这样 由于使用了 Hibernate(ORM工具)
我试着列出一些有用的,但我认为这个列表会很长

可能在列表的顶部。这个类是在更高级别的框架中实现许多神奇功能的主要方式,如果使用得当,它将提供一种有趣的方式在线程之间共享引用


反射包也非常强大,是一个值得适度使用的工具。

SwingWorker
绝对是一个很棒的类。它允许您在Swing应用程序中方便地创建工作线程。这将返回处理的最终结果,甚至可以根据处理结果向EDT提供临时结果

根据定义,对象。

既然您特别提到了JDK,我认为可以提及一个实际上在JRE中不可用的API,我们大多数人也不太了解它:

以下是完整的演示片段:

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".
    }
}
封装测试;
导入java.io.File;
导入java.io.FileWriter;
导入java.io.Writer;
导入java.net.URL;
导入java.net.URLClassLoader;
导入javax.tools.JavaCompiler;
导入javax.tools.ToolProvider;
公开课考试{
公共静态void main(字符串[]args)引发异常{
//以某种方式准备来源。
String source=“公共类测试{static{System.out.println(\“Test\”);}}”;
//将源代码保存在.java文件中。
文件根=新文件(“/test”);
File sourceFile=新文件(根,“Test.java”);
Writer Writer=新文件编写器(sourceFile);
writer.write(来源);
writer.close();
//编译源文件。
JavaCompiler=ToolProvider.getSystemJavaCompiler();
run(null,null,null,sourceFile.getPath());
//加载编译类。
URLClassLoader=URLClassLoader.newInstance(新URL[]{root.toURI().toURL()});
Class cls=Class.forName(“Test”,true,classLoader);//打印“Test”。
}
}
有用吗?不确定。有趣?是的,很想知道:)


对于剩余的,我喜欢,和API的。前面已经提到了所有这些。

同意,各种数据结构非常棒+1,为了命名一个你真正喜欢的,我会说“代码>堆栈类,堆栈总是有用的。它还有一个队列和列表界面,因此您可以将其用作其中之一。@Brian:这很相似,也同样有趣,尽管大多数都与语法怪癖等有关。而不是标准类。这是一个社区wiki问题,为什么它会以主观方式关闭?CW并不意味着这个问题适合问答网站“best of”问题通常不会。看,InheritableThreadLocal看起来也很整洁。在不久的将来,我自己可能会使用它来管理与缓冲区分配相关的线程池数据。从本质上说,对象类是所有事物的基类。