Java | Фишки и трюки
Открыть в Telegram
Java: примеры кода, интересные фишки и полезные трюки Купить рекламу: https://telega.in/c/java_tips_and_tricks ✍️По всем вопросам: @Pascal4eg
Больше6 824
Подписчики
+724 часа
-97 дней
-6030 день
Архив постов
6 823
Cамый простой способ изучить Java — залезть в голову профи
Один из лучших айтишников России учит базе кодинга в Telegram. Даже гуманитарий поймёт, как создавать приложения, сайты, игры и чат-боты.
Достаточно подписаться на «Секреты Java», где каждый день появляются гайды, готовые примеры кода и лучших практик.
И всё это бесплатно — вместо сотен тысяч рублей за курсы. Стартовать в прибыльной профессии с нуля вы сможете гораздо проще!
Теперь обучиться Java может каждый: @java_secrets
6 823
⌨️ Типы конструкторов
Конструктор по умолчанию (Default Constructor)
Это конструктор без параметров, который автоматически создается компилятором, если в классе не объявлено ни одного конструктора. Он будет пустым и не делает ничего, кроме вызова конструктора суперкласса.
public class MyClass {
private int number;
private String text;
// Компилятор создаст конструктор по умолчанию:
// public MyClass() {
// super();
// }
}
Конструктор с параметрами (Parameterized Constructor)
Это конструктор, который принимает один или несколько параметров, используемых для инициализации полей класса. Если объявлен хотя бы один конструктор с параметрами, конструктор по умолчанию больше не создается автоматически (его нужно явно определить, если он нужен).
public class MyClass {
private int number;
private String text;
public MyClass(int number, String text) {
this.number = number;
this.text = text;
}
}
Конструктор копирования (Copy Constructor)
Это конструктор, который создает новый объект как копию существующего объекта того же класса.
public class MyClass {
private int number;
private String text;
// Конструктор копирования
public MyClass(MyClass other) {
this.number = other.number;
this.text = other.text;
}
}6 823
Ну все! Теперь не нужно тратить деньги на топовые курсы и книги по программированию — их выложили в Telegram бесплатно
Все найденные курсы собирают тут — @portalToIT
По этим курсам выучить любой язык за 7 дней вообще не проблема, находка для начинающих программистов.
6 823
В ходе массового опроса секретарш, проведенного американскими социальными психологами, девяносто два процента респонденток заявили, что они подпишись, чтобы узнать больше со своим шефом.
6 823
⌨️ Можно ли сузить уровень доступа/тип возвращаемого значения при переопределении метода?
✅ При переопределении метода нельзя сузить модификатор доступа к методу (например с
public в MainClass до private в Class extends MainClass).
✅ Изменить тип возвращаемого значения при переопределении метода нельзя, будет ошибка attempting to use incompatible return type.
✅ Можно сузить возвращаемое значение, если они совместимы.
public class Animal {
public Animal eat() {
System.out.println("animal eat");
return null;
}
public Long calc() {
return null;
}
}
public class Dog extends Animal {
public Dog eat() {
return new Dog();
}
/*attempting to use incompatible return type
public Integer calc() {
return null;
}
*/
}6 823
Repost from Яндекс
🔲 Посмотрите, как выглядит стол промышленного дизайнера. Авенир Бабин работает в команде Яндекс Маркета и создаёт дизайн для бренда аксессуаров Commo: наушников, пауэрбанков, чехлов и зарядных устройств.
Commo — это один из собственных брендов Яндекс Маркета. Помимо него, маркетплейс также развивает, например, бренды велосипедов Raskat, мебели и товаров для дома Pragma, компьютерной техники Lunnen и другие.
Подписывайтесь ✨ @yandex
6 823
public class Quest {
public static void main(String[] args) {
System.out.println(!!true);
}
}6 823
⌨️ В Java static import (статический импорт) позволяет импортировать статические члены (методы и поля) из класса, чтобы использовать их напрямую без указания имени класса. Это может сделать код более читабельным и компактным.
// Для импорта конкретного статического члена
import static package.Clazz.member;
// Для импорта всех статических членов класса
import static package.Clazz.*;
Пример:
public class MathUtils {
public static final double PI = 3.141592653589793;
public static int add(int a, int b) {
return a + b;
}
public static int subtract(int a, int b) {
return a - b;
}
}
import static MathUtils.PI;
import static MathUtils.add;
public class Main {
public static void main(String[] args) {
System.out.println("Value of PI: " + PI);
System.out.println("Addition result: " + add(5, 3));
}
}
import static MathUtils.*;
public class Main {
public static void main(String[] args) {
System.out.println("Value of PI: " + PI);
System.out.println("Addition result: " + add(5, 3));
System.out.println("Subtraction result: " + subtract(5, 3));
}
}
Плюсы: читаемость, компактность кода.
Минусы:
- не очевидно откуда берется поле или метод
- импорт всех статических членов может привести к конфликтам имен, если разные классы содержат статические члены с одинаковыми именами6 823
👉 С чего начать изучение Apache Kafka?
Apache Kafka — многогранный и непростой инструмент. Даже если вы уверены, что знаете его, наш курс докажет вам обратное!
💻 Начните работу с Kafka на открытом практическом уроке от OTUS, где вы:
— разберете особенности и устройство Kafka;
— познакомитесь с основными утилитами;
— рассмотрите базовое API для работы с Kafka.
♦️ Спикер — опытный разработчик и преподаватель.
Встречаемся 20 мая в 20:00 мск в преддверии старта курса «Apache Kafka». Все участники вебинара получат специальную цену на обучение и персональную консультацию от менеджеров OTUS!
🔥 Регистрируйтесь прямо сейчас, чтобы не пропустить бесплатный урок: https://otus.pw/6hKL/?erid=LjN8KLX2V
6 823
⌨️ К каким конструкциям Java применим модификатор static?
✅полям;
✅методам;
✅вложенным классам;
✅блокам инициализации;
✅членам секции
import.6 823
public class Quest {
public static void main(String[] args) {
Value val = new Value(1);
System.out.print(val.i);
System.out.print(change(val).i);
System.out.print(val.i);
}
public static Value change(Value val) {
val.i = 2;
return val;
}
static class Value {
int i;
public Value(int i) {
this.i = i;
}
}
}6 823
⌨️ Способы передачи параметров в методы
Существуют два основных способа передачи параметров в методы: "по значению" (pass-by-value) и "по ссылке" (pass-by-reference). В первом случае метод работает с копией значения параметра, не изменяя исходное значение. Во втором случае метод получает ссылку на объект или переменную, и любые изменения в параметре отражаются на исходном объекте или переменной.
Понимание разницы между этими способами важно для правильной работы программы и отладки, так как правила могут различаться в разных языках программирования.
В Java параметры всегда передаются "по значению", однако при передаче ссылочного типа данных можно изменить сам объект.
6 823
Познакомьтесь с основами востребованного языка программирования Java на бесплатном мини-курсе Skillbox! Узнайте, как Java-разработчики работают в офисе, на фрилансе, удалёнке и что нужно для старта карьеры. Бессрочный доступ за пару кликов: 👉 https://epic.st/cKK-t?erid=2VtzqurDYbk
Что вас ждёт:
✔️ Полезная теория
За 4 занятия изучите основы профессии и языка Java по видеоматериалам.
✔️ Интересная практика
Напишете первые проекты: Telegram-бота, программу для обработки файлов и чат на Spring. Опыт и знания в IT не нужны для их выполнения.
✔️ Живой эфир с экспертом по Java
В финале в прямом эфире пообщаетесь с Даниилом Пилипенко, который более 19 лет работает в сфере Java и веб-разработки.
🎁 За время обучения вы получите 5 полезных материалов в подарок, сертификат на скидку 10 000 рублей на любой курс, персональную карьерную консультацию и доступ к изучению английского языка в Skillbox на год.
Сразу после регистрации пришлём гайд по профессии Java-разработчика 😉
Реклама. ЧОУ ДПО «Образовательные технологии «Скилбокс (Коробка навыков)», ИНН: 9704088880
6 823
public class Quest {
public static void main(String[] args) {
int i = 1;
System.out.print(i);
System.out.print(change(i));
System.out.print(i);
}
public static int change(int i) {
i = 2;
return i;
}
}6 823
⌨️ Могут ли нестатические методы перегрузить статические?
Да. В итоге получится два разных метода. Статический будет принадлежать классу и будет доступен через его имя, а нестатический будет принадлежать конкретному объекту и доступен через вызов метода этого объекта.
6 823
Разверните Kubernetes за 10 минут — от VK Cloud
Сертифицированный K8s от VK Cloud. Масштабируйте до 100 серверов. Разворачивай за 10 минут.
Экосистема Kubernetes от VK Cloud: управление с Terraform; мониторинг на базе Prometheus, Grafana.
Узнать больше
#реклама
cloud.vk.com
О рекламодателе
