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

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

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

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

1. Введение

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

К концу этой статьи мы сможем принять правильное решение при выборе между двумя вариантами.

2. Основы

Давайте ударим по эпицентру. Singleton — это шаблон проектирования, который гарантирует наличие одного экземпляра класса на протяжении всего жизненного цикла приложения.

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

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

1. Введение

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

Мы также рассмотрим некоторые альтернативы транзакциям в сценарии распределенного микросервиса.

2. Избегайте транзакций между микросервисами

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

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

1. Обзор

В этом руководстве мы покажем, как преобразовать String в BigInteger . BigInteger обычно используется для работы с очень большими числовыми значениями, которые обычно являются результатом произвольных арифметических вычислений.

2. Преобразование десятичных (с основанием 10) целых строк

Чтобы преобразовать десятичную строку в BigInteger , мы будем использовать конструктор BigInteger(String value) :

String inputString = "878";
BigInteger result = new BigInteger(inputString);
assertEquals("878", result.toString());

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

1. Обзор

JVM интерпретирует и выполняет байт -код во время выполнения. Кроме того, он использует JIT-компиляцию для повышения производительности.

В более ранних версиях Java нам приходилось вручную выбирать между двумя типами JIT-компиляторов, доступными в Hotspot JVM. Один оптимизирован для более быстрого запуска приложений, а другой обеспечивает более высокую общую производительность. Java 7 представила многоуровневую компиляцию, чтобы получить лучшее из обоих миров.

В этом руководстве мы рассмотрим JIT-компиляторы клиента и сервера. Мы рассмотрим многоуровневую компиляцию и ее пять уровней компиляции. Наконец, мы увидим, как работает компиляция методов, отслеживая журналы компиляции.

2. JIT-компиляторы

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

1. Обзор

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

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

2. Что такое тип пустоты

Начиная с JDK 1.1, Java предоставляет нам тип Void . Его цель — просто представить возвращаемый тип void как класс и содержать общедоступное значение Class<Void> . Его нельзя создать, поскольку его единственный конструктор является закрытым.

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

1. Обзор

Oracle выпустила Java 11 в сентябре 2018 года, всего через 6 месяцев после предшественницы, версии 10.

Java 11 — это первый выпуск с долгосрочной поддержкой (LTS) после Java 8. Oracle также прекратила поддержку Java 8 в январе 2019 года. Как следствие, многие из нас перейдут на Java 11.

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

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

1. Обзор

При запуске сокет-сервера в нашем Java-приложении API java.net требует, чтобы мы указали свободный номер порта для прослушивания. Номер порта требуется, чтобы уровень TCP мог идентифицировать приложение, для которого предназначены входящие данные.

Явное указание номера порта не всегда является хорошим вариантом, так как приложения могут уже занимать его. Это вызовет исключение ввода/вывода в нашем Java-приложении.

В этом кратком руководстве мы рассмотрим, как проверить состояние определенного порта и как использовать автоматически выделенный порт. Мы рассмотрим, как это можно сделать с помощью простой среды Java и Spring. Мы также рассмотрим некоторые другие реализации серверов, такие как встроенные Tomcat и Jetty.

2. Проверка состояния порта

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

1. Обзор

В этом коротком руководстве мы увидим, как мы можем группировать одинаковые объекты и подсчитывать их количество в Java. Мы будем использовать сборщик groupingBy() в Java.

2. Подсчет вхождений с помощью Collectors.groupingBy()

Collectors.groupingBy() предоставляет функциональные возможности, аналогичные предложению GROUP BY в SQL. Мы можем использовать это для группировки объектов по любому атрибуту и сохранения результатов в Map .

Например, давайте рассмотрим сценарий, в котором нам нужно сгруппировать одинаковые String в потоке и подсчитать их вхождения:

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

1. Обзор

В выпуске Java SE 15 представлены запечатанные классы ( JEP 360 ) в качестве функции предварительного просмотра.

Эта функция предназначена для включения более тонкого контроля наследования в Java. Запечатывание позволяет классам и интерфейсам определять свои разрешенные подтипы.

Другими словами, класс или интерфейс теперь могут определять, какие классы могут его реализовывать или расширять. Это полезная функция для моделирования предметной области и повышения безопасности библиотек.

2. Мотивация

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

1. Обзор

Обычно Java не обеспечивает легкий доступ к компьютерному оборудованию. Вот почему нам может быть сложно получить доступ к веб-камере с помощью Java.

В этом руководстве мы рассмотрим несколько библиотек Java, которые позволяют нам захватывать изображения с помощью доступа к веб-камере.

2. JavaCV

Сначала мы рассмотрим библиотеку javacv . Это Java - реализация Bytedeco библиотеки компьютерного зрения OpenCV .