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

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

1. Обзор

В этой статье мы обсудим форматирование строк в Java с использованием класса java.util.Formatter , который обеспечивает поддержку выравнивания и выравнивания макета.

2. Как использовать форматтер

Помните printf C? Форматирование строки в Java очень похоже.

Метод format() Formatter предоставляется через статический метод класса String . Этот метод принимает строку шаблона и список аргументов для заполнения шаблона:

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

1. Обзор

В этом кратком руководстве мы увидим, как использовать шаблон метода шаблона — один из самых популярных шаблонов GoF .

Это упрощает реализацию сложных алгоритмов за счет инкапсуляции логики в одном методе.

2. Реализация

Чтобы продемонстрировать, как работает шаблон метода шаблона, давайте создадим простой пример, представляющий создание компьютерной станции.

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

1. Введение

Переменные были введены в Java 5 и обеспечивают сокращение для методов, поддерживающих произвольное количество параметров одного типа.

В этой статье мы увидим, как мы можем использовать эту основную функцию Java.

2. Перед Вараргами

До Java 5 всякий раз, когда мы хотели передать произвольное количество аргументов, нам приходилось передавать все аргументы массивом или реализовывать N методов (по одному на каждый дополнительный параметр):

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

1. Обзор

Представленный в Java 8 цикл forEach предоставляет программистам новый, лаконичный и интересный способ перебора коллекции.

В этом руководстве мы увидим, как использовать forEach с коллекциями, какой аргумент он принимает и чем этот цикл отличается от расширенного цикла for .

Если вам нужно освежить некоторые концепции Java 8, наша подборка статей может помочь.

2. Основы forEach

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

1. Обзор

В этой статье мы рассмотрим API-интерфейс отражения Guava , который определенно более универсален по сравнению со стандартным API-интерфейсом отражения Java. ``

Мы будем использовать Guava для захвата универсальных типов во время выполнения, а также будем эффективно использовать Invokable .

2. Захват универсального типа во время выполнения

В Java дженерики реализованы с удалением типа. Это означает, что информация об универсальном типе доступна только во время компиляции, а во время выполнения она больше недоступна.

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

1. Обзор

В этом кратком руководстве мы узнаем, как получить размер файла в Java , используя Java 7, новую Java 8 и Apache Common IO.

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

2. Стандартный ввод-вывод Java

Начнем с простого примера вычисления размера файла — с помощью метода File.length() : ``

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

1. Введение

LinkedList — это двусвязный список, реализующий интерфейсы List и Deque . Он реализует все необязательные операции со списками и разрешает все элементы (включая null ).

2. Особенности

Ниже вы можете найти наиболее важные свойства LinkedList :

  • Операции, индексирующие список, будут проходить по списку с начала или с конца, в зависимости от того, что ближе к указанному индексу.
  • Это не синхронизировано
  • Его итераторы Iterator и ListIterator являются отказоустойчивыми (это означает, что после создания итератора, если список будет изменен, будет выдано исключение ConcurrentModificationException )
  • Каждый элемент представляет собой узел, который хранит ссылку на следующий и предыдущий элементы.
  • Он поддерживает порядок вставки

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

1. Введение

В этой статье мы сосредоточимся на классе PriorityBlockingQueue и рассмотрим несколько практических примеров.

Исходя из предположения, что мы уже знаем, что такое очередь , мы сначала продемонстрируем , как элементы в PriorityBlockingQueue упорядочены по приоритету .

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

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

2. Приоритет элементов

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

1. Обзор

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

2. Преобразование String в int или Integer

Если нам нужно преобразовать String в примитивный тип оболочки int или Integer , мы можем использовать API-интерфейсы parseInt() или valueOf() , чтобы получить соответствующее возвращаемое значение int или Integer :

@Test
public void whenConvertedToInt_thenCorrect() {
String beforeConvStr = "1";
int afterConvInt = 1;

assertEquals(Integer.parseInt(beforeConvStr), afterConvInt);
}

@Test
public void whenConvertedToInteger_thenCorrect() {
String beforeConvStr = "12";
Integer afterConvInteger = 12;

assertEquals(Integer.valueOf(beforeConvStr).equals(afterConvInteger), true);
}

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

1. Обзор

В этой статье мы рассмотрим WeakHashMap из пакета java.util .

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

Проще говоря, WeakHashMap — это основанная на хеш-таблицах реализация интерфейса Map с ключами типа WeakReference .

Запись в WeakHashMap будет автоматически удалена, когда ее ключ больше не используется в обычном режиме, а это означает, что нет ни одной ссылки , указывающей на этот ключ. Когда процесс сборки мусора (GC) отбрасывает ключ, его запись фактически удаляется из карты, поэтому этот класс ведет себя несколько иначе, чем другие реализации Map .

2. Сильные, мягкие и слабые ссылки