Большинство классов, реализующих интерфейс Collection
!
Одна вещь, которую я видел, как новички в Java пропускают, это класс SimpleDateFormat. В своем текущем проекте я нашел кучу устаревшего кода, который был написан программистом на C++, не знавшим Java, и он в основном делал все форматирование даты в строку с помощью собственного кода. Поговорим о повторном изобретении колеса.
Недавно я начал использовать поддержку zip/unzip, которая является частью стандартного JDK. Она работает отлично! Я использую ее для создания KMZ-архивов в веб-приложении.
ThreadLocal, вероятно, находится в начале списка. Этот класс является основным способом, с помощью которого происходит много волшебства во фреймворках более высокого уровня, и при правильном использовании обеспечивает интересный способ обмена ссылками между потоками.
Пакет Reflection также довольно мощный и достойный инструмент для умеренного использования.
Скучно, но почему-то все время возвращается к старой системе
. Не для чего-то крутого или захватывающего (как я уже сказал, скучно), а для той единственной команды, которую я использую, наверное, чаще, чем что-либо другое - System.out.println
(или просто print, если вам так больше нравится)
Я отвечу на свой вопрос. Мой личный любимый класс - java.util.Random. Я считаю его невероятно полезным для моделирования вероятности, карточных игр и других небольших программ. Я также нахожу идею (псевдо)случайности захватывающей.
SwingWorker
- определенно отличный класс. Он позволяет удобно создавать рабочие потоки в ваших Swing-приложениях. Он будет возвращать конечный результат обработки и даже может предоставлять промежуточные результаты EDT на основе обработки.
фреймворк Collections, пакет Java Utility, особенно классы для разбора RegExp. Действительно зависит от того, что вы хотите сделать!
Пытался перечислить несколько полезных, но я думаю, что список действительно будет длинным.
Поскольку вы специально упомянули JDK, я думаю, что можно упомянуть API, который на самом деле недоступен в JRE и также менее известен среди большинства из нас: 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".
}
}
Полезно? Точно сказать не могу. Интересный? Да, интересно знать :)
Что касается остатка, мне нравятся API Collections , Reflection , Concurrent и JDBC . Все это уже упоминалось здесь ранее.