Перейти к основному содержимому

1310 записей с тегом "Java"

Посмотреть все теги

· 3 мин. чтения

1. Обзор

Проверка существования класса может быть полезна при определении используемой реализации интерфейса. Этот метод обычно используется в старых установках JDBC.

В этом руководстве мы рассмотрим нюансы использования Class.forName() для проверки существования класса в пути к классам Java .

2. Использование Class.forName()

Мы можем проверить существование класса с помощью Java Reflection , в частности, Class.forName() . Документация показывает, что если класс не может быть найден, будет выброшено исключение ClassNotFoundException .

· 5 мин. чтения

1. Введение

В этом уроке мы обсудим принцип разделения интерфейса, один из принципов SOLID . Представляя «I» в «SOLID», разделение интерфейсов просто означает, что мы должны разбивать большие интерфейсы на более мелкие.

Таким образом, гарантируется, что реализующие классы не должны реализовывать нежелательные методы.

2. Принцип разделения интерфейса

Этот принцип был впервые определен Робертом С. Мартином как: « Клиенты не должны зависеть от интерфейсов, которые они не используют ».

· 4 мин. чтения

1. Обзор

В этом учебнике мы проанализируем технику составления списка всех классов, загружаемых определенным загрузчиком классов в Java, с использованием API инструментария Java `` . Мы также увидим, как создать и загрузить агент Java для получения экземпляра Instrumentation и вызвать необходимые методы для выполнения нашей задачи.

2. Загрузчики классов в Java

Загрузчики классов являются неотъемлемой частью JRE (Java Runtime Environment). Их работа заключается в динамической загрузке классов в виртуальную машину Java . Другими словами, они загружают классы в память по требованию, когда этого требует приложение. В статье о загрузчиках классов Java рассказывается об их различных типах и подробно рассказывается, как они работают.

3. Использование инструментального API

· 7 мин. чтения

1. Обзор

Профилировщики выборки Java обычно разрабатываются с использованием интерфейса инструментов JVM (JVMTI) и собирают трассировки стека в безопасной точке. Следовательно, эти профилировщики выборки могут страдать от проблемы смещения точки безопасности .

Для целостного представления о приложении нам нужен профилировщик выборки, который не требует, чтобы потоки находились в безопасных точках, и может собирать трассировки стека в любое время, чтобы избежать проблемы смещения безопасных точек .

В этом руководстве мы рассмотрим async-profiler вместе с различными методами профилирования, которые он предлагает.

2. асинхронный профилировщик

· 10 мин. чтения

1. Обзор

В этой статье мы сравним BitSet и boolean[] с точки зрения производительности в разных сценариях.

Обычно мы очень широко используем термин производительность, имея в виду разные значения. Поэтому начнем с рассмотрения различных определений термина «производительность».

Затем мы собираемся использовать две разные метрики производительности для тестов: объем памяти и пропускная способность. Чтобы оценить пропускную способность, мы сравним несколько распространенных операций с битовыми векторами.

2. Определение производительности

· 2 мин. чтения

1. Обзор

В этой короткой статье мы увидим разницу между различными показателями размера памяти в JVM.

Сначала мы поговорим о том, как работает адаптивный размер, а затем оценим разницу между максимальным, используемым и зафиксированным размерами.

2. Максимальный размер и адаптивный размер

Два значения управляют размером кучи JVM : одно начальное значение, указанное с помощью флага -Xms, и другое максимальное значение, управляемое флагом настройки -Xmx .

· 5 мин. чтения

1. Введение

Java предоставляет значительное количество методов и классов, предназначенных для объединения строк.

В этом уроке мы рассмотрим некоторые из них, а также обрисуем в общих чертах некоторые распространенные ловушки и плохие практики.

2. Построитель строк

Прежде всего, это скромный StringBuilder. Этот класс предоставляет набор утилит для построения строк , упрощающих работу со строками .

· 4 мин. чтения

1. Введение

Mockito — популярный фреймворк для имитации Java. С его помощью легко создавать фиктивные объекты , настраивать фиктивное поведение , захватывать аргументы методов и проверять взаимодействие с фиктивными объектами .

Теперь мы сосредоточимся на определении фиктивного поведения. У нас есть два способа сделать это: синтаксис when().thenDoSomething() и doSomething().when() .

В этом коротком уроке мы увидим, почему у нас есть они оба.

2. метод когда()

· 3 мин. чтения

1. Обзор

Временные каталоги пригодятся, когда нам нужно создать набор файлов, которые мы можем позже отбросить. Когда мы создаем временные каталоги, мы можем делегировать операционной системе, куда их поместить, или указать самим, где мы хотим их разместить.

В этом коротком руководстве мы узнаем , как создавать временные каталоги в Java, используя различные API и подходы . Все примеры в этом руководстве будут выполняться с использованием простой Java 7+, Guava и Apache Commons IO .

2. Делегировать операционной системе

Один из наиболее популярных подходов, используемых для создания временных каталогов, заключается в делегировании места назначения основной операционной системе. Местоположение задается свойством java.io.tmpdir , и каждая операционная система имеет свою собственную структуру и процедуры очистки.

· 4 мин. чтения

1. Введение

Среди решений, которые мы принимаем при написании наших приложений, многие касаются того, когда генерировать исключения и какой тип генерировать.

В этом кратком руководстве мы рассмотрим вопрос о том, какое исключение генерировать, когда кто-то передает нулевой параметр одному из наших методов: IllegalArgumentException или NullPointerException .

Мы изучим тему, изучив аргументы обеих сторон.

2. Исключение нелегального аргумента