Java | Фишки и трюки
7.21K subscribers
182 photos
29 videos
6 files
40 links
Java: примеры кода, интересные фишки и полезные трюки

Купить рекламу: https://telega.in/c/java_tips_and_tricks

✍️По всем вопросам: @Pascal4eg
Download Telegram
public class Quest {
public static void main(String[] args) {
System.out.println(calc());
}

static int calc() {
try {
if (1 == 1)
throw new RuntimeException();
return 1;
} catch (Exception e) {
return 2;
} finally {
return 3;
}
}
}
👍5
Что выведет код?
Anonymous Quiz
14%
1
17%
2
41%
3
27%
ошибка компиляции
3🔥1🎉1
Два джуна померджили свои ветки
😁54🤣9👏2🤯1😱1
public class Quest {
public static void main(String[] args) {
System.out.println(5 + true);
}
}
Что выведет код?
Anonymous Quiz
6%
5
12%
6
28%
5true
54%
ошибка компиляции
🤩5🙈2🎉1
public class Quest {
public static void main(String[] args) {
System.out.println("5" + true);
}
}
Что выведет код?
Anonymous Quiz
5%
5
6%
51
36%
5true
53%
ошибка компиляции
😱10🎉3😍3👍21❤‍🔥1🤩1
⌨️ Что такое перечисления (enum)?

Перечисления представляют набор логически связанных констант. Нужны для ограничения области допустимых значений: например, времена года, дни недели.

Перечисление фактически представляет новый класс, поэтому мы можем определить переменную данного типа и использовать ее.

Перечисления, как и обычные классы, могут определять конструкторы, поля и методы.
Следует отметить, что конструктор по умолчанию приватный.

Преимуществом Еnum перед обычными константами является возможность проверки типа данных.

К недостаткам относится невозможность применения операторов >, <, >=, <=, а так же большее потребление памяти по сравнению с обычными константами.

Встроенные методы:
- ordinal() возвращает порядковый номер определенной константы (нумерация начинается с 0)
- values() возвращает массив всех констант перечисления


public enum Day {
MONDAY("понедельник"),
TUESDAY("вторник"),
WEDNESDAY("среда"),
THURSDAY("четверг"),
FRIDAY("пятница"),
SATURDAY("суббота"),
SUNDAY("воскресенье");

Day(String value) {
this.value = value;
}

String value;

public String getValue() {
return value;
}

}

public class EnumClass {
public static void main(String[] args) {
System.out.println(message(Day.FRIDAY));
}
public static String message(Day day) {
return "Это " + day.getValue();
// Это пятница
}
}
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15🔥1👏1
boolean f = false;
System.out.println(f = f ^ true);
Что выведет код?
Anonymous Quiz
22%
false
32%
true
46%
ошибка компиляции
🤯82👍2🎉2😱1
⌨️ О чем говорит ключевое слово final?

Модификатор final может применяться к переменным, параметрам методов, полям и методам класса или самим классам.

Класс не может иметь наследников;

Метод не может быть переопределен в классах наследниках;

Поле не может изменить свое значение после инициализации;

Параметры методов не могут изменять своё значение внутри метода;

Локальные переменные не могут быть изменены после присвоения им значения.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍36
public class Quest {
public static void main(String[] args) {
System.out.println(cond(1) && cond(2));
}

private static boolean cond(int i) {
try {
return false;
} finally {
System.out.print(i);
}
}
}
Что выведет код?
Anonymous Quiz
37%
12false
26%
1false
23%
false12
14%
false1
👍4🤩3🎉1💯1
⌨️ Полные и сокращённые версии AND и OR

&& и || называются сокращёнными логическими операторами AND и OR соответственно, или операторами короткой схемы вычислений. В спецификации Java их ещё зовут условными. Значения их операндов могут быть только булева типа.

В отличие от двойных, одиночные & и | называются операторами полной схемы вычислений. Значения их операндов могут быть как только булевыми, так и только целочисленными (вместе с оператором ^ они используются в побитовых операциях).

В чём разница?

В том, что для операторов & и | всегда вычисляются значения обоих операндов, а при работе операторов && и || второй операнд вычисляется только по необходимости.

То есть иногда результат выражения однозначно определён уже по первому операнду:

Если первый операнд && равен false, то второй не вычисляется, так как уже понятно, что результат всего выражения будет false.

Если первый операнд || равен true, то второй не вычисляется, так как уже понятно, что || вернёт true.

&& и || используют как операторы булевой логики. Они оперируют значениями только булева типа и применяются только в логических выражениях.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍143🔥1
System.out.println(2 ^ 3);
👍2
Что выведет код?
Anonymous Quiz
10%
0
34%
1
17%
5
40%
Ошибка компиляции
👍3🤯3😱1👌1
☕️Использование библиотеки Vaadin

Vaadin - это Java библиотека для создания веб-приложений с использованием пользовательского интерфейса на основе компонентов. Она предоставляет набор готовых элементов управления и возможность создавать собственные компоненты.

➡️Один из основных классов в Vaadin - это UI, который представляет собой пользовательский интерфейс приложения. Для создания нового UI необходимо наследоваться от класса UI и переопределить метод init(), где создаются компоненты интерфейса.

Пример создания UI с использованием Vaadin:

public class MyUI extends UI {
@Override
protected void init(VaadinRequest request) {
Button button = new Button("Click me");
button.addClickListener(e -> Notification.show("Button clicked"));

setContent(button);
}
}


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

✔️Еще один важный класс в Vaadin - это Layout, который представляет собой контейнер для компонентов. Существует несколько типов Layout, таких как VerticalLayout, HorizontalLayout, GridLayout и др. Каждый из них определяет способ размещения компонентов.

Пример использования Layout для размещения компонентов:

VerticalLayout layout = new VerticalLayout();
layout.addComponent(new Label("Hello, Vaadin!"));
layout.addComponent(new Button("Click me"));
setContent(layout);


⚙️В данном примере мы создаем вертикальный Layout, добавляем к нему Label и кнопку, и устанавливаем его как контент для UI.

Также Vaadin предоставляет множество других компонентов, таких как Table, Form, DateField и др., которые можно использовать для создания более сложных интерфейсов.

🔖В целом, Vaadin - это мощная библиотека для создания веб-приложений на Java с удобным и интуитивно понятным API. Она упрощает процесс разработки пользовательского интерфейса и позволяет создавать богатые и интерактивные веб-приложения.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍111🔥1👏1👨‍💻1
public class Quest {
public static void main(String[] args) {
System.out.println(true &! false);
}
}
Что выведет код?
Anonymous Quiz
56%
true
7%
false
37%
Ошибка компиляции
👍43🔥1🎉1
⌨️ Что вы знаете о методе main()?

Метод main() - точка входа в программу. В приложении может быть несколько таких методов. Если метод отсутствует, то компиляция возможна, но при запуске будет получена ошибка `Error: Main method not found`.


public static void main(String[] args) {}
Please open Telegram to view this post
VIEW IN TELEGRAM
👍29💯21🔥1
public class Quest {
public static void main(String[] args) {
System.out.println(isEqual(1, 1));
}

private static boolean isEqual(int i, int j) {
return (i == j) ? null : false;
}
}