ar
Feedback
Java Geek

Java Geek

الذهاب إلى القناة على Telegram

Практичные советы, лайфхаки и код для Java-разработчиков. Каждый пост — реальная польза. Учим Java на примерах. По всем вопросам @evgenycarter

إظهار المزيد
2 447
المشتركون
لا توجد بيانات24 ساعات
+27 أيام
+530 أيام
أرشيف المشاركات
Объединение двух массивов Наиболее лаконичный способ объединить элементы двух массивов – это воспользоваться классом ArrayUti
Объединение двух массивов Наиболее лаконичный способ объединить элементы двух массивов – это воспользоваться классом ArrayUtils из Commons Lang. @java_geek

Создание объектов только при необходимости Создание объектов – одна из самых затратных операций в Java. Лучшая практика – соз
Создание объектов только при необходимости Создание объектов – одна из самых затратных операций в Java. Лучшая практика – создавать их только при необходимости, когда они действительно нужны. @java_geek

Пустая коллекция вместо Null Если ваша программа может возвращать коллекцию, которая не содержит ни одного значения, убедитес
Пустая коллекция вместо Null Если ваша программа может возвращать коллекцию, которая не содержит ни одного значения, убедитесь, что возвращена именно пустая коллекция, а не Null. Это сэкономит вам время на различные проверки. @java_geek

Содержит ли массив указанный элемент Для этого используем прием с представлением массива в виде коллекции и вызовом привычног
Содержит ли массив указанный элемент Для этого используем прием с представлением массива в виде коллекции и вызовом привычного метода contains(). @java_geek

FileOutputStream vs. FileWriter Запись файлов на Java осуществляется двумя способами: FileOutputStream и FileWriter. Какой им
FileOutputStream vs. FileWriter Запись файлов на Java осуществляется двумя способами: FileOutputStream и FileWriter. Какой именно метод выбрать, зависит от конкретной задачи. FileOutputStream предназначен для записи потоков необработанных байтов. Это делает его идеальным решением для работы, например, с изображениями. У FileWriter другое призвание: работа с потоками символов. Так что если вы пишете текстовые файлы, выбирайте этот метод. @java_geek

Метод repeat() Этот метод копирует содержимое строки заданное количество раз и возвращает результат в одной строке. Синтаксис
Метод repeat() Этот метод копирует содержимое строки заданное количество раз и возвращает результат в одной строке. Синтаксис: String repeat(int count). @java_geek

JSON, сериализация JSON – невероятно удобный и полезный синтаксис для хранения и обмена данными. Java полностью поддерживает
JSON, сериализация JSON – невероятно удобный и полезный синтаксис для хранения и обмена данными. Java полностью поддерживает его. В данном примере кода рассмотрим пример сериализации данных. @java_geek

Array vs ArrayList Выбор между Array (стандартным Java-массивом) и ArrayList зависит от специфики задачи на Java, которую тре
Array vs ArrayList Выбор между Array (стандартным Java-массивом) и ArrayList зависит от специфики задачи на Java, которую требуется решить. Помните о следующих особенностях этих типов: ☕️ Array имеет фиксированный размер и память для него выделяется в момент объявления, а размер ArrayList может динамически изменяться; ☕️ Массивы Java работают гораздо быстрее, а в ArrayList намного проще добавлять/удалять элементы; ☕️ При работе с Array велика вероятность получить ошибку ArrayIndexOutOfBoundsException; ☕️ У ArrayList только одно измерение, а вот массивы Java могут быть многомерными. @java_geek

Метод concat() Возвращает строку со значением строки, переданной в метод и приложенной к концу строки, используемой для вызов
Метод concat() Возвращает строку со значением строки, переданной в метод и приложенной к концу строки, используемой для вызова этого метода. Проще говоря метод concat() в Java объединяет строки, путем добавления одной строки в конец к другой. @java_geek

Объединение хеш-таблиц Объединять два хеша, итерируя их значения вручную, весьма неэффективно. Вот альтернативное решение это
Объединение хеш-таблиц Объединять два хеша, итерируя их значения вручную, весьма неэффективно. Вот альтернативное решение этой задачи, которое точно вам понравится. @java_geek

JIT-оптимизация Java-код обрабатывается с помощью JIT-компиляции: сначала транслируется в платформонезависимый байт-код, а уж
JIT-оптимизация Java-код обрабатывается с помощью JIT-компиляции: сначала транслируется в платформонезависимый байт-код, а уже после этого в машинный код. При этом оптимизируется все, что возможно, и разработчик может помочь компилятору создать максимально эффективную программу. В качестве примера взглянем на две простые операции: // 1 n += 2 * i * i; // 2 n += 2 * (i * i); Измерим время выполнения каждой из них. Запустив код с картинки несколько раз, получим подобные цифры, отображающие время выполнения: 2 * (i * i) | 2 * i * i 0.5183738 | 0.6246434 0.5298337 | 0.6049722 0.5308647 | 0.6603363 0.5133458 | 0.6243328 0.5003011 | 0.6541802 Закономерность очевидна: группировка переменных с помощью скобок ускоряет работу программы. Это происходит из-за генерации более эффективного байт-кода при умножении одинаковых значений. @java_geek

Метод Thread.sleep() В работу программы на Java можно вставлять паузы. Например, вы программируете игру и хотите, чтобы она д
Метод Thread.sleep() В работу программы на Java можно вставлять паузы. Например, вы программируете игру и хотите, чтобы она делала какие-то действия раз в две секунды или несколько раз в секунду. В скобках указана длина паузы в миллисекундах (1/1000 часть секунды). В общем, пауза вещь полезная, поэтому смотрим, как же добавить паузу в код. Это на самом деле очень просто. @java_geek

Метод xxxValue() — преобразует в Java числовое значение объекта, который вызывает метод, в примитивный тип данных, который во
Метод xxxValue() — преобразует в Java числовое значение объекта, который вызывает метод, в примитивный тип данных, который возвращается из метода. Каждый примитивный тип данных имеет отдельный метод. @java_geek

Сортировка методом выбора Данный алгоритм имеет схожесть с пузырьковой сортировкой, но работает он несколько быстрее. В качес
Сортировка методом выбора Данный алгоритм имеет схожесть с пузырьковой сортировкой, но работает он несколько быстрее. В качестве примера возьмём ряд чисел, которые мы хотим расставить в возрастающем порядке. Суть алгоритма заключается в последовательном переборе всех чисел и выборе наименьшего элемента, который мы возьмём и поменяем местами с крайним элементом слева (0 элементом). Данный алгоритм превосходит пузырьковую сортировку, ведь тут количество необходимых перестановок сокращается с O(N²) до O(N): мы не гоняем один элемент через весь список, но тем не менее, количество сравнений остается O(N²). @java_geek

Инкапсуляция Инкапсуляция в Java является механизмом обёртывания данных (переменных) и кода, работающего с данными (методами)
Инкапсуляция Инкапсуляция в Java является механизмом обёртывания данных (переменных) и кода, работающего с данными (методами), в одно целое. В инкапсуляции переменные класса будут скрыты от других классов и доступ к ним может быть получен только с помощью метода их текущего класса. По-другому это называется скрытием данных. Для достижения инкапсуляции в Java: ☕️ Объявите переменные класса как private. ☕️ Предоставьте public к методам установки и получения (сеттеру и геттеру) для изменения и просмотра значений переменных. Преимущества инкапсуляции: ☕️ Поля класса можно сделать только для чтения или только для записи. ☕️ Класс может иметь полный контроль над тем, что хранится в его полях. @java_geek

Для чего в Java используются статические блоки инициализации? Статические блоки инициализация используются для выполнения кода, который должен выполняться один раз при инициализации класса загрузчиком классов, в момент, предшествующий созданию объектов этого класса при помощи конструктора. Такой блок (в отличие от нестатических, принадлежащих конкретном объекту класса) принадлежит только самому классу (объекту метакласса Class). @java_geek

Метод retainAll() Используется для удаления всех элементов списка массива, не содержащихся в указанной коллекции, или для сох
Метод retainAll() Используется для удаления всех элементов списка массива, не содержащихся в указанной коллекции, или для сохранения всех совпадающих элементов в текущем экземпляре ArrayList, которые соответствуют всем элементам из списка Collection, переданного методу в качестве параметра. Подробнее про метод можно почитать здесь. @java_geek

Регулярное выражение для электронной почты Регулярные выражения представляют собой формальный язык поиска и редактирования по
Регулярное выражение для электронной почты Регулярные выражения представляют собой формальный язык поиска и редактирования подстрок в тексте. К примеру, надо провалидировать email адрес. Это будет проверка на наличие имени адреса, домена, символа @, точки и доменной зоны. @java_geek

Что такое «пул строк»? Пул строк – это набор строк, хранящийся в Heap. • Пул строк возможен благодаря неизменяемости строк в Java и реализации идеи интернирования строк; • Пул строк помогает экономить память, но по этой же причине создание строки занимает больше времени; • Когда для создания строки используются ", то сначала ищется строка в пуле с таким же значением, если находится, то просто возвращается ссылка, иначе создается новая строка в пуле, а затем возвращается ссылка на неё; • При использовании оператора new создаётся новый объект String. Затем при помощи метода intern() эту строку можно поместить в пул или же получить из пула ссылку на другой объект String с таким же значением; • Пул строк является примером паттерна «Приспособленец» (Flyweight). @java_geek

Метод replaceAll() Заменяет каждую подстроку данной строки, которая соответствует заданному регулярному выражению, с данной з
Метод replaceAll() Заменяет каждую подстроку данной строки, которая соответствует заданному регулярному выражению, с данной заменой, другими словами — метод позволяет заменить слово в строке. Параметры regex — регулярное выражение, которому данная строка должна соответствовать; replacement — строка, которая заменит найденное выражение. @java_geek