Java с нуля до middle
153 subscribers
56 photos
14 links
Download Telegram
Channel name was changed to «prerare4java»
Forwarded from Deleted Account
Всем привет, я java developer.
Последнее место работы было в Лиге, хоть работа была удаленной, но работать можно только из рф. Начинаю с сегодняшнего дня готовиться к собесам.
Опыт прохождения есть, поэтому представляю, что и как примерно спрашивают. Предлагаю вам последить или проделать этот же путь.

Цель получить первый оффер через две-три недели.
👍7
Channel name was changed to «prepare4java»
Forwarded from Deleted Account
аппка запускается все круто, но для того что бы что-то вывелось в консоль, нужно написать:
System.out.println(тут инфа на вывод)

java идет в класс System, там ищет сущность out и вызывает у нее метод println

out - это обьект класса PrintStream, который говорит нам, о том, что вся инфа которая попала в него выводиться в консоль
Перейдем к классу Object.
Все классы которые мы создаем и которые уже есть наследуются от него.
Создадим еще один обьект класса classOne.
У него есть методы .hashcode .equals
Вызовем и сравним hashcode у наших обьектов.
Они разные. Это из-за того, что сейчас hashcode определяется в зависимости от String.

Нам нужно перееопределить hashcode и equals.
Они будут считаться по полям и сравниваться тоже. Если не перееопределить hascode по полям сравнение будет одинаково, а hashcode будет разным и обьекты будут не равны.


Перееопределили и теперь все ровно.
👍1
В коде есть проблема
Поле int в ClassOne public, это значит оно доступно из любого класса и может быть изменено.
Проверим. Получается любой человек может изменить значение этого поля, это не правильно.
Мы должны скрывать реализацию. Это называется инкапсуляцией.

Сделаем поле private.
Обьявим конструктор.
Теперь каждый раз создавая обьект мы передаем туда значение. Поле int у этого обьекта будет стабильным.
Это важно если мы не хотим изменять больше этот обьект и давать это делать другим.
Если же мы хотим передать другое число, то просто создаем новый обьект.
Задача по sql

Простая задачка с литкод,
написать sql обьединив две таблицы,
таблица Person обязательно должна быть,
потерять можно только данные из Address

Решение в комментах
Java с нуля до middle pinned «Всем привет, я java developer. Последнее место работы было в Лиге, хоть работа была удаленной, но работать можно только из рф. Начинаю с сегодняшнего дня готовиться к собесам. Опыт прохождения есть, поэтому представляю, что и как примерно спрашивают. Предлагаю…»
Как работает сборщик мусора?

Мы знаем, что для очистки heap’a java использует сборщик мусора.

На данный момент используется G1, его включили в работу с Java 9

Принцип работы

Память разбивается на множество регионов одинакового размера. Размер этих регионов зависит от общего размера кучи и по умолчанию выбирается так, чтобы их было не больше 2048, обычно получается от 1 до 32 МБ. Исключение составляют только так называемые громадные регионы.

Продолжение в статье:
https://telegra.ph/Garbage-collector-11-03
Channel name was changed to «Java с 0 до middle»
Задача на собесе

Написать код, который выводит числа от 0 до 1000, которые делятся на 3, но не делятся на 5, и сумма цифр меньше десяти

Решение в комментах
Задача по sql

Решение в комментах
Утечка памяти раз

Продолжая вчерашнюю темы про память,
В примере утечка возникает из-за того, что list static,
статические переменные освобождаются только после завершения программы.
То есть после выхода из метода populateList(), garbage collector не сработает.
Если static уберем gc будет работать и проблем с памятью не будет.