ru
Feedback
Java | Фишки и трюки

Java | Фишки и трюки

Открыть в Telegram

Java: примеры кода, интересные фишки и полезные трюки Купить рекламу: https://telega.in/c/java_tips_and_tricks ✍️По всем вопросам: @Pascal4eg Менеджер по рекламе: @shmyzna

Больше
6 950
Подписчики
-124 часа
-137 дней
+1430 день
Архив постов
Что выведет код?
Anonymous voting

photo content

Принцип программирования YAGNI — «Вам это не понадобится» Cледование данному принципу заключается в том, что возможности, которые не описаны в требованиях к системе, просто не должны реализовываться. Это позволяет вести разработку, руководствуясь экономическими критериями: Заказчик не должен оплачивать ненужные ему функции, а разработчики не должны тратить своё оплачиваемое время на реализацию того, что не требуется. Основная проблема, которую решает принцип YAGNI — это устранение тяги программистов к излишней абстракции, к экспериментам «из интереса» и к реализации функционала, который сейчас не нужен, но, по мнению разработчика, может вскоре понадобиться или просто будет полезен, хотя в реальности такого часто не происходит. «Бесплатных» функций в программных продуктах просто не бывает. Если рассматривать материальную сторону, то любые ненужные, но фактически реализованные «фичи» оплачиваются либо заказчиком (в бюджет закладываются расходы на те функции, которые не нужны), либо исполнителем из прибыли по проекту. И тот, и другой варианты с точки зрения бизнеса неверны. Если же говорить о нематериальных затратах, то любые «бонусные» возможности усложняют сопровождение, увеличивают вероятность ошибок и усложняют взаимодействие с продуктом, — между объёмом кодовой базы и описанными характеристиками есть прямая зависимость. Больше написанного кода — труднее сопровождать и выше вероятность появления «багов», тут очень уместна поговорка: «лучший код — это ненаписанный код». Принципы YAGNI и KISS очень похожи, если KISS нацелен на упрощение и полезен в плане работы с теми требованиями, которые имеют место быть, то YAGNI более категоричен и применяется для ограждения проектов по разработке ПО от «размывания» их рамок. Подход к реализации проектов строго по ТЗ бывает верен с нескольких ракурсов: заказчик не должен платить за то, что ему не надо, а продукт должен быть максимально сопровождаем и его качество не должно страдать от реализации ненужных функций.

Microservices | Вопросы с Собеседований - Подборка вопросов по микросервисной архитектуре с реальных собеседований - Авторски
Microservices | Вопросы с Собеседований - Подборка вопросов по микросервисной архитектуре с реальных собеседований - Авторские статьи по архитектуре, проектированию, базам данных - Автор - Lead Developer с 8 лет опыта на Java/Kotlin

Что выведет код?
Anonymous voting

double d = 1 / 3;
System.out.print(d);

photo content

⌨️ JDBC, Java DataBase Connectivity (соединение с базами данных на Java) — промышленный стандарт взаимодействия Java-приложений с различными СУБД. Реализован в виде пакета java.sql, входящего в состав Java SE. JDBC основан на концепции драйверов, которые позволяют получать соединение с базой данных по специально описанному URL. При загрузке драйвер регистрирует себя в системе и в дальнейшем автоматически вызывается, когда программа требует URL, содержащий протокол, за который этот драйвер отвечает. Преимущества JDBC: 👉 Лёгкость разработки: разработчик может не знать специфики базы данных, с которой работает; 👉 Код практически не меняется, если компания переходит на другую базу данных (количество изменений зависит исключительно от различий между диалектами SQL); 👉 Не нужно дополнительно устанавливать клиентскую программу; 👉 К любой базе данных можно подсоединиться через легко описываемый URL.

Java. Руководство для начинающих, 9-е изд. Автор: Герберт Шилдт Год: 2023 Язык: Русский Практическое введение в программирова
Java. Руководство для начинающих, 9-е изд. Автор: Герберт Шилдт Год: 2023 Язык: Русский Практическое введение в программирование на языке Java, полностью переработанное с учетом версии Java SE 17 В этой книге, которая полностью обновлена с учетом Java Platform Standard Edition 17, начиная с самой первой главы, шаг за шагом показано, как приступить к программированию на языке Java. Книга, написанная ведущим специалистом по Java Гербертом Шилдтом, начинается с основ, таких как создание, компиляция и запуск программ на Java. Затем объясняются основные ключевые слова, синтаксис и команды языка Java. В книге раскрыты основы и кратко описаны расширенные функциональные средства, в числе которых многопоточное программирование, обобщения, лямбда-выражения и графический интерфейс Swing. Вдобавок приводится четкое объяснение перечислений, модулей и методов интерфейса. 💾 Скачать книгу

⌨️ Launch4j — это кроссплатформенный инструмент для упаковки Java-приложений, распространяемых в виде jar-файлов, в облегченные собственные исполняемые файлы Windows, Linux и Mac OS X. Исполняемый файл можно настроить для поиска определенной версии JRE или использования встроенной версии, а также можно установить параметры времени выполнения, такие как начальный/максимальный размер кучи. Некоторые особенности: 👉 Пользовательский значок приложения с несколькими разрешениями и глубиной цвета. 👉 Собственный экран-заставка до JRE, отображаемый до запуска приложения Java. 👉 Открывает страницу загрузки Java, если не удается найти подходящую версию Java, или веб-сайт поддержки в случае ошибки. 👉 Поддерживает графический интерфейс и консольные приложения. 👉 Передаёт аргументы командной строки 👉 Легкий вес: 62 КБ. 👉 Это бесплатно и может использоваться в коммерческих целях.

Программистика: кодируй, учись, вдохновляйся! 💻✨ Открой для себя бесконечный мир программирования вместе с нами! Здесь тебя
Программистика: кодируй, учись, вдохновляйся! 💻✨ Открой для себя бесконечный мир программирования вместе с нами! Здесь тебя ждут: Глубокие статьи, которые помогут разобраться в сложных вопросах; Сервисы, упрощающие жизнь каждого кодера; Обучающие видеоролики от профессионалов в сфере IT; Актуальные новости IT-индустрии. Программистика – для тех, кто хочет быть в курсе последних тенденций и улучшать свои навыки каждый день. Присоединяйся!

🌱 Query Methods Spring Framework предоставляет множество способов взаимодействия с базой данных, и одним из основных инструментов для этого являются Query Methods. Query Methods предоставляют простой способ создания запросов к базе данных на основе именованных методов в интерфейсах репозиториев. Пример репозитория, если у нас есть сущность User с полями username и email:



public interface UserRepository extends JpaRepository<User, Long> {
    List<User> findByUsername(String username);

    List<User> findByUsernameAndEmail(String username, String email);
}
В данном примере метод findByUsername создает запрос, который извлекает всех пользователей с указанным именем пользователя из базы данных. Spring Data автоматически анализирует сигнатуру метода и создает SQL-запрос. Также, можно добавлять условия к запросам, используя ключевые слова, такие как And, Or, Is, Equals, и т.д. в именах методов.

🎄Трогайте, это на Новый год! Профессия «Java-разработчик» 🎁 Получите скидку до 30 000 р. и доступ ко второй профессии в под
🎄Трогайте, это на Новый год! Профессия «Java-разработчик» 🎁 Получите скидку до 30 000 р. и доступ ко второй профессии в подарок + 1 из 4 бонусов на выбор! Освойте язык крупного бизнеса и финансовых технологий и научитесь разрабатывать веб-приложения на фреймворке Spring. Уже во время обучения вы вступите в программу «Карьерный трек», чтобы найти свою первую работу в IT.  Вы научитесь подбирать правильные структуры для хранения и обработки данных, познакомитесь с автоматизированным тестированием и напишите свои первые модульные тесты. 📌 Пройдите 5 бесплатных уроков и поймите, подходит ли вам профессия! Реклама. АНПОО "ХЕКСЛЕТ КОЛЛЕДЖ". ИНН 7839056670.

Метод Arrays.fill() для инициализации массива Класс java.util.Arrays имеет несколько методов с именем fill(), которые принимают разные типы аргументов и заполняют весь массив одним и тем же значением:
long array[] = new long[5];
Arrays.fill(array, 30);
У метода также есть несколько альтернатив, которые устанавливают диапазон массива в определенное значение:
int array[] = new int[5];
Arrays.fill(array, 0, 3, -50);
Обратите внимание, что метод принимает массив, индекс первого элемента, индекс последнего элемента (не включительно) и значение.

С наступающим новым годом, друзья! Пусть всё получается, всё удается, ничего не зависает и не стоит на месте. Желаю, чтобы жизнь была интересной и захватывающей, чтоб не было времени на грусть и тоску, обиды и разочарования! Пусть любое дело увенчается успехом, а твои достижения помогут достичь карьерного роста и технического прогресса! Свежих идей и ярких воплощений нам всем! 🎉🍾🥂🎁

⌨️ Что такое «конструктор по умолчанию»? Если у какого-либо класса не определить конструктор, то компилятор сгенерирует конструктор без аргументов - так называемый «конструктор по умолчанию».

public ClassName() {}
Если у класса уже определен какой-либо конструктор, то конструктор по умолчанию создан не будет и, если он необходим, его нужно описывать явно.

⌨️ Почему строка является популярным ключом в HashMap в Java? Поскольку строки неизменяемы, их хэш код вычисляется и кэшируется в момент создания, не требуя повторного пересчета при дальнейшем использовании. Поэтому в качестве ключа HashMap они будут обрабатываться быстрее.

⌨️ Почему char[] предпочтительнее String для хранения пароля? С момента создания строка остаётся в пуле, до тех пор, пока не будет удалена сборщиком мусора. Поэтому, даже после окончания использования пароля, он некоторое время продолжает оставаться доступным в памяти и способа избежать этого не существует. Это представляет определённый риск для безопасности, поскольку кто-либо, имеющий доступ к памяти сможет найти пароль в виде текста. В случае использования массива символов для хранения пароля имеется возможность очистить его сразу по окончанию работы с паролем, позволяя избежать риска безопасности, свойственного строке.

Метод containsAll() интерфейса Collection проверяет входят ли в коллекцию все элементы переданной в параметре коллекции. bool
Метод containsAll() интерфейса Collection проверяет входят ли в коллекцию все элементы переданной в параметре коллекции.

boolean containsAll(Collection<?> c);
Параметры: c – коллекция, которую необходимо проверить на предмет содержания в этой коллекции Возврат: true, если эта коллекция содержит все элементы указанной коллекции

⌨️ Для чего используется оператор assert? Assert (Утверждение) — это специальная конструкция, позволяющая проверять предположения о значениях произвольных данных в произвольном месте программы. Утверждение может автоматически сигнализировать об обнаружении некорректных данных, что обычно приводит к аварийному завершению программы с указанием места обнаружения некорректных данных. Утверждения существенно упрощают локализацию ошибок в коде. Даже проверка результатов выполнения очевидного кода может оказаться полезной при последующем рефакторинге, после которого код может стать не настолько очевидным и в него может закрасться ошибка. Обычно утверждения оставляют включенными во время разработки и тестирования программ, но отключают в релиз-версиях программ. Так как утверждения могут быть удалены на этапе компиляции либо во время исполнения программы, они не должны менять поведение программы. Если в результате удаления утверждения поведение программы может измениться, то это явный признак неправильного использования assert. Таким образом, внутри assert нельзя вызывать методы, изменяющие состояние программы, либо внешнего окружения программы. В Java проверка утверждений реализована с помощью оператора assert, который имеет форму: assert [Выражение типа boolean]; или assert [Выражение типа boolean] : [Выражение любого типа, кроме void]; Во время выполнения программы в том случае, если поверка утверждений включена, вычисляется значение булевского выражения, и если его результат false, то генерируется исключение java.lang.AssertionError. В случае использования второй формы оператора assert выражение после двоеточия задаёт детальное сообщение о произошедшей ошибке (вычисленное выражение будет преобразовано в строку и передано конструктору AssertionError).