Java Learning
19.8K subscribers
1.58K photos
1 video
3 files
952 links
№ 5079899194

Обучающий канал по Java

Ссылка для друга - https://t.iss.one/+ZEYYht6-46w5MDM6

По всем вопросам @mascarov_valentin

Реклама на бирже - https://telega.in/c/Java_per_month
Download Telegram
Изучение SQL с нуля

👉 @SQl_and_DB_Learning 👈
👉 @SQl_and_DB_Learning 👈
👉 @SQl_and_DB_Learning 👈

Подписывайся и изучай новый для себя язык программирования.
Работа с ошибками

Отлов багов – это, возможно, самая трудоемкая составляющая процесса разработки на Java. Трассировка стека позволяет отследить, в каком именно месте проекта было выброшено исключение.
👍2
Конструктор по умолчанию в Java

Как и C++, Java автоматически создает конструктор по умолчанию, если нет конструктора по умолчанию или параметризованного конструктора, написанного программистом. А также как и в C++ конструктор по умолчанию автоматически вызывает родительский конструктор по умолчанию.

Но, в отличие от C++, конструктор по умолчанию в Java инициализирует члены класса значениями по умолчанию (числовые значения инициализируются как 0, логические значения инициализируются как false, а ссылки инициализируются как null).
👍23🎉1
Что за зверь "Matcher"?

Класс Java Matcher (java.util.regex.Matcher) создан для поиска некоторого множества вхождений регулярного выражения в одном тексте и поиска по одному шаблону в разных текстах. Класс Java Matcher имеет много полезных методов.

Например:

• boolean matches(): вернет значение true при совпадении строки с шаблоном.
• boolean find(): вернет значение true при обнаружении подстроки, совпадающей с шаблоном, и перейдет к ней.
• int start(): вернет значение индекса соответствия.
• int end(): вернет значение индекса последующего соответствия.
• String replaceAll(String str): вернет значение измененной строки подстрокой str.

Другие методы Matcher можно найти в официальной документации.

Рассмотрите простой пример работы с Pattern и Matcher.
👍4
#Вопросы_с_собеседования
Какая разница между абстрактным классом и интерфейсом?

Абстрактный класс:
• абстрактные классы имеют дефолтный конструктор; он вызывается каждый раз, когда создается потомок этого абстрактного класса;
• содержит как абстрактные методы, так и не абстрактные. По большому счету может и не содержать абстрактных методов, но все равно быть абстрактным классом;
• класс, который наследуется от абстрактного, должен реализовать только абстрактные методы;
• абстрактный класс может содержать Instance Variable

Интерфейс:
• не имеет никакого конструктора и не может быть инициализирован;
• только абстрактные методы должны быть добавлены (не считая default methods);
• классы, реализующие интерфейс, должны реализовать все методы (не считая default methods);
• интерфейсы могут содержать только константы.
👍14
Статический вложенный класс в Java

Статический внутренний класс — это вложенный класс, который является статическим членом внешнего класса. Доступ к нему возможен без создания экземпляра внешнего класса с использованием других статических элементов. Как и статические члены, статический вложенный класс не имеет доступа к переменным экземпляра и методам внешнего класса. Синтаксис статического вложенного класса в Java выглядит следующим образом:

class MyOuter {
static class Nested_Demo {
}
}

Создание экземпляра статического вложенного класса немного отличается от экземпляра внутреннего класса.

Следующая программа показывает, как использовать статические вложенные классы.
👍4👎1
Generics

Всегда старайтесь типизировать ваши коллекции, методы и классы. Это избавляет сразу от 2-х потенциальных проблем: приведение типов и ошибок выполнения. Также назначение таких коллекций легче воспринимать. Особенно часто этим пренебрегают мои американо-индусские коллеги. Если же ваша коллекция должна содержать обьекты разных типов — используйте <?>, а еще лучше <? extends someType> тогда зная общий класс/интерфейс для всех обьектов вам не прийдется делать приведение типов и применять оператор instanceOf.
👍20🔥4
Также напоминанию, что у нас есть чат для обсуждений
@Java_Learning_Chat
👍1
Что выведет код сверху?
Anonymous Quiz
30%
10
38%
9
24%
0
8%
RuntimeException
🔥24👍9👎7
Шестнадцатеричный формат

За этим нет большой истории. Иногда нам нужно преобразовать строки в шестнадцатеричный формат, байты или символы. Начиная с Java 17 вы можете использовать класс HexFormat. Просто создайте экземпляр HexFormat, а затем вы можете отформатировать, например, входную таблицу byte в шестнадцатеричную строку. Вы также можете, например, преобразовать входную шестнадцатеричную строку в таблицу байтов, как показано выше.
👍3
Bit Set

Что, если нам нужно выполнить какие-то операции с массивами битов? Вы будете использовать для этого boolean[]?

Для этого есть более эффективный с точки зрения использования памяти метод.

Это класс BitSet, позволяющий нам хранить массивы битов и манипулировать ими. По сравнению с boolean[] он требует в 8 раз меньше памяти. Мы можем выполнять логические операции над массивами, такими как, например and, or, xor.

Допустим, у нас есть два входных массива битов. Мы хотим провести на них операцию xor.

Уточню, операция xor, возвращает только те элементы, которые имеются только в одном массиве, но не в другом. Для этого нам нужно создать два экземпляра BitSet и вставить туда элементы, как показано ниже. Наконец, вы должны вызвать метод xor в одном из BitSet объектов, указав в качестве аргумента второй BitSet объект.
👍8🎉2
Что выведет код сверху?
Anonymous Quiz
8%
InfinityInfinity
20%
NanNaN
27%
InfinityNaN
9%
NanInfinity
36%
Error
🔥22👍6
Класс-оболочка и тип данных

В приведенном выше примере второй оператор печати не будет отображать значение true, поскольку сравниваются ссылки на объекты класса-оболочки, а не их значения.
👍2😱1
👍3
Что выведет код сверху?
Anonymous Quiz
34%
12
37%
11
24%
01
6%
10
👍16🔥11😁10👎5
#Вопросы_с_собеседования

Какие два класса не наследуются от Object?

Ответ: Не ведитесь на провокации, нет таких классов: все классы прямо или через предков наследуются от класса Object!
👍19