Java | Фишки и трюки
Open in Telegram
Java: примеры кода, интересные фишки и полезные трюки Купить рекламу: https://telega.in/c/java_tips_and_tricks ✍️По всем вопросам: @Pascal4eg
Show more6 824
Subscribers
+724 hours
-97 days
-6030 days
Posts Archive
6 824
public class Quest {
public static void main(String[] args) {
boolean b = false;
System.out.println(b++);
}
}6 824
⌨️ Чем абстрактный класс отличается от интерфейса? В каких случаях следует использовать абстрактный класс, а в каких интерфейс?
✅ В Java класс может одновременно реализовать несколько интерфейсов, но наследоваться только от одного класса.
✅ Абстрактные классы используются только тогда, когда присутствует тип отношений «is a» (является). Интерфейсы могут реализоваться классами, которые не связаны друг с другом.
✅ Абстрактный класс - средство, позволяющее избежать написания повторяющегося кода, инструмент для частичной реализации поведения. Интерфейс - это средство выражения семантики класса, контракт, описывающий возможности. Все методы интерфейса неявно объявляются как
public abstract или (начиная с Java 8 ) default - методами с реализацией по-умолчанию, а поля - public static final.
✅ Интерфейсы позволяют создавать структуры типов без иерархии.
✅ Наследуясь от абстрактного, класс «растворяет» собственную индивидуальность. Реализуя интерфейс, он расширяет собственную функциональность.
Абстрактные классы содержат частичную реализацию, которая дополняется или расширяется в подклассах. При этом все подклассы схожи между собой в части реализации, унаследованной от абстрактного класса, и отличаются лишь в части собственной реализации абстрактных методов родителя. Поэтому абстрактные классы применяются в случае построения иерархии однотипных, очень похожих друг на друга классов. В этом случае наследование от абстрактного класса, реализующего поведение объекта по умолчанию может быть полезно, так как позволяет избежать написания повторяющегося кода. Во всех остальных случаях лучше использовать интерфейсы.6 824
📌 Составили список лучших каналов для любого айтишника:
Java Developer — советы и практики от действующего Senior-разработчика
Python Developer — секреты и тонкости программирования на Python
CodeLang — изучение английского языка в IT сфере
Библиотека Кодера — лучшие книги, шпаргалки и советы для разработчиков
6 824
⌨️ Дайте определение понятию «интерфейс». Какие модификаторы по умолчанию имеют поля и методы интерфейсов?
Ключевое слово
interface используется для создания полностью абстрактных классов. Основное предназначение интерфейса - определять каким образом мы можем использовать класс, который его реализует. Создатель интерфейса определяет имена методов, списки аргументов и типы возвращаемых значений, но не реализует их поведение. Все методы неявно объявляются как public.
Начиная с Java 8 в интерфейсах разрешается размещать реализацию методов по умолчанию default и статических static методов.
Интерфейс также может содержать и поля. В этом случае они автоматически являются публичными public, статическими static и неизменяемыми final.6 824
⌨️ Зачем нужен модификатор abstract?
Модификатор
abstract применяется для создания абстрактных классов и методов. Абстрактный класс является шаблоном для других классов и не может быть инстанциирован сам по себе. Он предоставляет общие черты для всех своих подклассов, которые могут быть как абстрактными, так и конкретными классами.
Абстрактный метод, который помечен ключевым словом abstract, не имеет реализации в абстрактном классе. Если в классе есть хотя бы один абстрактный метод, то весь класс должен быть объявлен как абстрактный.
Использование абстрактных классов и методов позволяет определить общий шаблон объекта, который должен быть реализован в других классах. В них же самих описывается лишь некое общее для всех потомков поведение.6 824
Как разобраться в вышмате за 1 вечер? 😨
Да никак. Но можно научиться понимать математику. И сэкономить месяцы жизни, килограмм нервов и сил.
И поможет вам в этом единственный канал в телеграме о высшей математике. Его автор - выпускник СПБГУ, а ныне — преподаватель предмета.
На простом языке разбирает сложные вещи, даёт шпаргалки и проводит эфиры с решением задач 📈
Находка для студентов и тех, кому нужен вышмат по работе. От полезных материалов и книг до ответов на вопросы и уроков.
Посмотрите сами 👉 @lav_math
6 824
⌨️ Почему нельзя объявить метод интерфейса с модификатором final?
В случае интерфейсов указание модификатора
final бессмысленно, т.к. все методы интерфейсов неявно объявляются как абстрактные, т.е. их невозможно выполнить, не реализовав где-то еще, а этого нельзя будет сделать, если у метода идентификатор final.6 824
⌨️ Логические операторы
«И» (AND): конъюнкция, логическое умножение
true && true = true
false && false = false
true && false = false
false && true = false
true & true = true
false & false = false
true & false = false
false & true = false
Побитовые операции:
1010
&&&&
1001
====
1000
Включающее «ИЛИ» (OR): дизъюнкция, логическое сложение
true || true = true
false || false = false
true || false = true
false || true = true
true | true = true
false | false = false
true | false = true
false | true = true
Побитовые операции:
1010
||||
1001
====
1011
Исключающее «ИЛИ» (XOR): строгая дизъюнкция, логическое вычитание
true ^ true = false
false ^ false = false
true ^ false = true
false ^ true = true
Побитовые операции:
1010
^^^^
1001
====
0011
«НЕ» (NOT): инверсия, отрицание
!true = false
!false = true
Побитовый унарный оператор NOT:
~~
01
==
10
Порядок выполнения операторов
Когда в выражении несколько логических операторов, результат вычисляется с учётом их приоритета. Если нет логических скобок, то операции выполняются в таком порядке:
! ~ (NOT) & (AND) ^ (XOR) | (OR) && (условный AND) || (условный OR)Если одинаковые операции стоят по соседству, то раньше выполняется та, что левее.
6 824
В мае стартует новая программа «Java разработчик. Уровень Специалист».
Обучение проходит в мини-группе с преподавателем и живой практикой. Часть материалов — для самообучения.
Программа включает в себя:
📌 Применение ООП и функциональной парадигмы,
📌 Spring Framework,
📌 работу с БД,
📌 архитектуру REST,
📌 вспомогательные инструменты Java-разработчика,
📌 продвинутые аспекты применения Java,
📌 стандартную библиотеку Java II.
👉 Узнать подробнее 👈
Бонусы:
✔️ всем, кто запишется на программу до 17 мая, предоставляем бесплатный доступ к первым 5 урокам на 3 дня
✔️ подготовка к сдаче Java-сертификации и скидка 50% на ее прохождение
✔️ бесплатный курс «Разработка на Java и Spring с помощью Chat GPT: от составления ТЗ до модульного тестирования»
Реклама. АНО ДПО "УЦ ИБС". ИНН 7713388004. erid: LjN8K63R4
6 824
Майские скидки!
Профессия «Java-разработчик»
🎁 Получите скидку до 80 900 р. Успейте получить специальное предложение до 14 мая!
Освойте язык крупного бизнеса и финансовых технологий и научитесь разрабатывать веб-приложения на фреймворке Spring.
Уже во время обучения вы вступите в программу «Карьерный трек», чтобы найти свою первую работу в IT.
Вы научитесь подбирать правильные структуры для хранения и обработки данных, познакомитесь с автоматизированным тестированием и напишите свои первые модульные тесты.
📌 Пройдите 5 бесплатных уроков и поймите, подходит ли вам профессия!
6 824
public class Quest {
public static void main(String[] args) {
int i = 0;
System.out.println(--i++);
}
}6 824
Оплачиваемая стажировка и трудоустройство без опыта — ну ничего себе 😳
Все возможно с Добровольным квалификационным экзаменом! Это бесплатный проект Правительства Москвы, где ты можешь показать свои знания по специальности, запомниться потенциальным работодателям и получить оффер в престижные компании Москвы.
Тебя ждет всего три шага:
1️⃣ Пройди тест
После регистрации на сайте ДКЭ тебе будет доступно 70 профессий по 7 направлениям. Выбирай тест по своей специальности и проверь уровень своих знаний!
2️⃣ Реши кейс
Если ты успешно сдал тест, тебя пригласят на следующий этап, где ты с другими участниками в команде будешь решать реальный кейс одного из работодателей.
3️⃣ Стань победителем
Окажись в числе лучших по общему количеству баллов за оба этапа и получи шанс попасть на оплачиваемую стажировку с дальнейшим трудоустройством.
Готов проявить себя? Регистрируйся и начинай проходить тест — https://dke.moscow
Реклама. АНО "РАЗВИТИЕ ЧЕЛОВЕЧЕСКОГО КАПИТАЛА", АНО "РЧК". ИНН 7710364647. erid: LjN8JwPY5
6 824
public class Quest {
public static void main(String[] args) {
String s = null;
if (s != null & s.length() > 0) {
System.out.println("FULL");
} else {
System.out.println("EMPTY");
}
}
}6 824
⌨️ Как ^, | и & работают с целочисленными операндами
Пример:
int a = 3 & 5;
int b = 3 | 5;
int c = 3 ^ 5;
System.out.println(a); // 1
System.out.println(b); // 7
System.out.println(c); // 6
Чтобы думать как Java, нужно:
✅ Перевести значения обоих операндов в двоичную систему счисления.
✅ Расположить результаты перевода друг под другом.
✅ Сравнять в них число разрядов (дополнить лидирующими нулями).
✅ Применить к битам из каждого столбца оператор (&, | или ^).
✅ Записать результат каждой операции ниже в том же столбце.
✅ Перевести итог в десятичную форму.
Потренеруемся на примере 3 & 5:
Число 3 в двоичной системе счисления имеет вид 11, а число 5 — 101.
Так как у числа 5 три разряда в двоичной системе, а у числа 3 — всего два, добавим лидирующий ноль к числу 3 в двоичной системе и получим 011.
Берём цифры из обоих чисел и применяем к ним попарно оператор & (AND):
011 &&& 101 === 001Получаем число 001. В десятичной записи ему соответствует число 1. Поэтому операция 3 & 5 и возвращает в результате 1.
