Java Learning
19.5K subscribers
1.6K photos
1 video
3 files
973 links
№ 5079899194

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

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

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

Реклама на бирже - https://telega.in/c/Java_per_month
Download Telegram
Что выведет код сверху?
Anonymous Quiz
17%
1 2 3 4
42%
1234
3%
0000
38%
Error
👍33😱122
Переопределение (overriding)

В терминах ООП переопределение значит перезапись функционала существующего метода. Если класс наследует метод из своего суперкласса, тогда есть шанс переопределить взятый метод, если он не помечен final.

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

В примере вы можете заметить, что b хоть и является типом Animal, оно запускает метод move в классе Dog. Причина тому такая, что во время компиляции проходит проверка ссылочного типа. Но во время выполнения JVM определяет тип объекта и запускает метод, который принадлежит этому конкретному объекту.

Следовательно, программа запустится правильно, так как класс Animal имеет метод move. Затем, во время выполнения, он запускает метод, принадлежащий этому объекту.
👍30
#Вопросы_с_собеседования

Почему в некоторых интерфейсах вообще не определяют методов?

Это так называемые маркерные интерфейсы. Они просто указывают что класс относится к определенному типу.

Примером может послужить интерфейс Clonable, который указывает на то, что класс поддерживает механизм клонирования.
👍27
Получение обратного массива

Используем библиотеку Apache Commons Lang.

Библиотека Apache Commons Lang представляет собой набор служебных классов для упрощения работы с классами пакета java.lang.*.
👍30
Всё о Java / Войти в IT после 30 / Интервью с Senior Java Developer

Представляю вам с Senior Java Developer Романом Кашенком!

Роман пришел в IT в 30 лет, после курсов, что совершенно не помешало развить в себе отличные навыки разработки.

В выпуске мы обсудили историю Романа, разобрали Java EE, Spring, Hibernate, Criteria API, JSP, Maven, Ant, Android SDK, среды разработки, фишки войти в айти и менторинга и много других не менее умных и интересных вещей из мира Java. А еще, нормально зацепили Kotlin.

https://www.youtube.com/watch?v=iM445BnBhpw
👍16
#Вопросы_с_собеседования

Могут ли нестатические методы перегрузить статические?

Да. В итоге получится два разных метода. Статический будет принадлежать классу и будет доступен через его имя, а нестатический будет принадлежать конкретному объекту и доступен через вызов метода этого объекта.
👍59
👍4
Что выведет код сверху?
Anonymous Quiz
45%
40
4%
0
51%
Compiler Error
26👍13
🧠 25 самых используемых регулярных выражений в Java

Список из 25 регулярных выражений в Java, без которых не обойтись ни новичку, ни профессиональному разработчику. С примерами.

Смотреть статью
👍25
#Вопросы_с_собеседования

К каким конструкциям Java применим модификатор static?

• полям;
• методам;
• вложенным классам;
• членам секции import.
👍33
Популярные ошибки начинающих Java программистов

Часто начинающие Java программисты ошибаются в попытке удалить элемент во время обхода списка.

Рассмотрим пример кода, в котором происходит попытка удалить элемент во время обхода элементов списка(#неверно на картинке).

В ходе выполнения этого кода будет выброшено ConcurrentModificationException, так как нельзя удалять элементы во время итерирования по списку. Такая же ситуация будет и с for-each циклом.

Удалять элементы безопасно можно только при использовании интерфейса Iterator(см #верно на картинке).
👍25👎2
#Вопросы_с_собеседования

Сравнение Iterator и ListIterator

• ListIterator расширяет интерфейс Iterator
• ListIterator может быть использован только для перебора элементов коллекции List;
• Iterator позволяет перебирать элементы только в одном направлении, при помощи метода next(). Тогда как ListIterator позволяет перебирать список в обоих направлениях, при помощи методов next() и previous();
• ListIterator не указывает на конкретный элемент: его текущая позиция располагается между элементами, которые возвращают методы previous() и next().
• При помощи ListIterator вы можете модифицировать список, добавляя/удаляя элементы с помощью методов add() и remove(). Iterator не поддерживает данного функционала.
👍20👎1
Что такое литералы?

Литералы — это явно заданные значения в коде программы, константы определенного типа, которые находятся в коде в момент запуска.

В классе на картинке “Hello world!” — литерал, переменная a — тоже.

Литералы бывают разных типов, которые определяются их назначением и способом написания.
👍24
Вопросы с реального собеседования Senior Java Developer

Сегодня мы рассмотрим обзор реального интервью на позицию Senior Java Developer.

Таймкоды:
00:00 Приветствие
01:34 Введение
02:23 Разбор вопросов и ответов
03:10 Может ли разработчик управлять памятью в Java?
03:40 Как потоки связаны с памятью?
07:28 Spring Context и зачем он нужен?
08:10 Как работает аннотация @Transactional?
09:45 Как работает транзакция?
10:30 Как работает TDD?
14:17 Выводы
17:52 Прощание

Смотреть видео
👍11
Метод rotate()

Метод java.util.Collections.rotate() присутствует в классе java.util.Collections. Используется для поворота элементов, присутствующих в указанном списке Коллекции, на заданное расстояние.
👍30
#Вопросы_с_собеседования

Что вы знаете о OutOfMemoryError?

OutOfMemoryError выбрасывается, когда виртуальная машина Java не может создать (разместить) объект из-за нехватки памяти, а сборщик мусора не может высвободить достаточное её количество.

Область памяти, занимаемая java процессом, состоит из нескольких частей. Тип OutOfMemoryError зависит от того, в какой из них не хватило места:
java.lang.OutOfMemoryError: Java heap space: Не хватает места в куче, а именно, в области памяти в которую помещаются объекты, создаваемые в приложении программно. Обычно проблема кроется в утечке памяти. Размер задается параметрами -Xms и -Xmx.
java.lang.OutOfMemoryError: PermGen space: (до версии Java 8) Данная ошибка возникает при нехватке места в Permanent области, размер которой задается параметрами -XX:PermSize и -XX:MaxPermSize.
java.lang.OutOfMemoryError: GC overhead limit exceeded: Данная ошибка может возникнуть как при переполнении первой, так и второй областей. Связана она с тем, что памяти осталось мало и сборщик мусора постоянно работает, пытаясь высвободить немного места. Данную ошибку можно отключить с помощью параметра -XX:-UseGCOverheadLimit.
java.lang.OutOfMemoryError: unable to create new native thread: Выбрасывается, когда нет возможности создавать новые потоки.
👍23
Как преобразовать цветное изображение в черно-белое

Иногда может потребоваться преобразовать изображение в двоичное. Другими словами, вам нужно преобразовать цветное изображение или изображение в оттенках серого в черно-белое изображение.

Более подробно о работе с изображениями вы можете ознакомиться здесь.
👍214