JavaStart
911 subscribers
904 photos
28 videos
614 links
Учи Java вместе с нами!
Наша платформа с курсом - https://javastart.tech
Ютуб с обучающими видео - https://www.youtube.com/@javastart_tech
Download Telegram
Garbage Collector в Java. Часть 5.2. Алгоритмы очистки памяти. Mark–and–Sweep.

Следующий алгоритм называется Mark–and–Sweep – "отслеживание и очистка".

Алгоритм очень похож на предыдущий, но с некоторыми улучшениями.
Объекты аллоцируются в памяти и в какой-то момент запускается очистка мусора. Приложение полностью останавливается – здесь все также, как и в предыдущем случае, без остановки никуда.

После остановки мы проходим по всем объектам и помечаем (mark) все "живые" объекты, после чего делаем sweep – чистим и снимаем все пометки с "живых" объектов.

Главным минусом подхода является то, что память становится фрагментированной. Так как получаются целые куски свободной памяти после sweep.

Также при большом количестве "живых" объектов работа алгоритма становится гораздо менее эффективной.

Проиллюстрируем это, красным выделена очищенная область – мусор.

👩‍💻 Наш практический курс Java–разработчика

JavaStart. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍42👨‍💻2
Какой из предложенных вариантов является правильным для создания объекта с именем myObj класса MyClass?
Anonymous Quiz
5%
new myObj = MyClass();
9%
class MyClass = new myObj();
6%
class myObj = new MyClass();
78%
MyClass myObj = new MyClass();
2%
Посмотреть ответ
3👨‍💻3🎉2👍1
Garbage Collector в Java. Часть 5.3. Алгоритмы очистки памяти. Mark–and–Sweep Compact.

В отличии от простого Mark–and–sweep мы ищем "мертвые" объекты, помечаем их для переноса и только после этого останавливаем приложение для очистки памяти.

Так как с "мертвыми" объектами наше приложение уже не работает, мы можем искать их параллельно работе приложения. Это очень эффективно, так как мы теперь не тратим время паузы на поиск, как в предыдущих алгоритмах.

После завершения процедуры удаления происходит compact – мы дефрагментируем память. Объекты "сдвигаются" на более близкие адреса.

Плюсы:

– Нет фрагментации памяти;

– Эффективная работа при большом количестве "живых" объектов.

Минусы:

– Плохо работает при большом количестве "мертвых" объектов;

– Compact – дорогостояющая операция, занимающая много времени.

👩‍💻 Наш практический курс Java–разработчика

JavaStart. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
👍42👨‍💻2
Please open Telegram to view this post
VIEW IN TELEGRAM
😁5👍3💯2
Garbage Collector в Java. Часть 6. Некоторые реализации Garbage Collector.

– Serial GC
Это последовательная сборка молодого и старого поколения в области памяти Java.

– Parallel GC
Работает также как и Serial GC, но с использованием многопоточности.

– CMS GC (Concurrent Mark–and–Sweep)
Для сборки мусора задействуются несколько потоков, и происходит это через такой же алгоритм, как в Parallel GC.
Использовался до Java 8 и G1.

– G1 GC
Был задуман как замена CMS и разрабатывался для многопоточных приложений, которые характеризуются крупным размером кучи (более 4 ГБ).

– Epsilon
Был выпущен как часть JDK 1. Не реализует никакого реального механизма восстановления памяти. Как только доступная куча исчерпана, JVM завершает работу.

– Shenandoah
Выпущен как часть JDK 12. Ключевое преимущество перед G1 в том, что G1 может эвакуировать области кучи только тогда, когда приложение приостановлено, а Shenandoah перемещает объекты одновременно с приложением.

– ZGC
Выпущен как часть JDK 11 и улучшен в JDK 12. Предназначен для приложений, требующих низкой задержки (паузы в менее чем 10 мс) или задействующих очень большую кучу (несколько терабайт).

👩‍💻 Наш практический курс Java–разработчика

JavaStart. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6👨‍💻31
Как выглядит начало написания блока if с условием в Java?
Anonymous Quiz
92%
if (x > y)
3%
if x > y
3%
if x > y then
2%
Посмотреть ответ
🎉4👨‍💻21👍1
Для чего используется Jira?

Jira – это программный инструмент для управления проектами, разработанный компанией Atlassian. Jira часто используется в IT–компаниях для формирования списка задач, отслеживания общего прогресса команды и решения возникающих по ходу разработки продукта проблем.

Приложение Atlassian построено по принципам канбан / скрам–досок.

Канбан – это методика планирования задач, разработанная в сороковых годах. Суть канбан–доски заключается в наглядном расположении задач в соответствии с их статусом. Типичная доска делится на 3 колонки:

– Задачи, которые необходимо выполнить (обычный TODO–лист);

– Задачи, которые в текущий момент находятся в работе;

– Задачи, которые уже выполнены и висят на доске исключительно для отслеживания прогресса.

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

Карточки с задачами перемещаются слева направо, начиная от колонки TODO, минуя все другие колонки, и заканчивая последней колонкой DONE (завершено). Также задачи можно перемещать и справа налево, например, в случае когда задача была по ошибке перемещена в последнюю колонку DONE, а над ней еще нужно поработать. Или же, например, если задача была в колонке CODEREVIEW, и проверяющий сделал вывод, что нужно внести некоторые доработки, тогда задачу можно двинуть из колонки CODEREVIEW снова в колонку TODO.

👩‍💻 Наш практический курс Java–разработчика

JavaStart. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥321
Please open Telegram to view this post
VIEW IN TELEGRAM
😁10👍3🔥1
Какое ключевое слово используется в Java для возвращения величины внутри метода?
Anonymous Quiz
2%
break
3%
void
8%
get
85%
return
2%
Посмотреть ответ
🎉3👨‍💻2👍1🔥1
http и https. Часть 1.

Что такое http?

HTTP – это протокол передачи данных, на основе которого работает всемирная паутина. Благодаря этому протоколу, мы можем заходить на сайты в браузере и взаимодействовать с ними: переходить с одной страницы на другую, скачивать файлы и просматривать изображения, обмениваться сообщениями и оплачивать покупки.

Аббревиатура HTTP расшифровывается как HyperText Transfer Protocol – протокол передачи гипертекста (то есть текстовых документов, который содержат ссылки на другие документы). Сейчас с его помощью передают любые форматы данных.

👩‍💻 Наш практический курс Java–разработчика

JavaStart. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
👍62👨‍💻21🔥1
Какое ключевое слово в Java используется для того, чтобы остановить цикл?
Anonymous Quiz
1%
return
95%
break
1%
exit
2%
stop
1%
Посмотреть ответ
🎉4👨‍💻21👍1
Можно ли в Java наследовать атрибуты (поля) и методы одного класса другому?
Anonymous Quiz
15%
Можно, это полиморфизм
76%
Можно, это наследование
5%
Нельзя
5%
Посмотреть ответ
👍7🎉2👨‍💻1
http и https. Часть 2.

Как работает HTTP?

Протокол HTTP использует в работе технологию «клиент–сервер»: клиент отправляет на сервер запрос, где специальная программа его обрабатывает, формирует ответ и возвращает клиенту.

В роли клиента как правило выступает браузер, но его функции может выполнять и другая программа. В роли сервера выступает веб–сервер — специальная программа на физическом сервере, где хранится сайт.

👩‍💻 Наш практический курс Java–разработчика

JavaStart. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6👨‍💻21
http и https. Часть 3.

Что такое HTTPs?

HTTPs — это расширение для протокола HTTP, которое делает его безопасным. Дело в том, что данные передаются по HTTP в открытом виде. Это создаёт риск раскрыть конфиденциальную информацию, если кто-то перехватит трафик. HTTPs решает эту проблему, добавляя в изначальный протокол возможность шифрования данных.

Аббревиатура HTTPs расшифровывается как HyperText Transfer Protocol Secure — безопасный протокол передачи гипертекста. Безопасность достигается за счёт объединения протокола HTTP с криптографическим протоколом TLS.

👩‍💻 Наш практический курс Java–разработчика

JavaStart. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7👨‍💻41
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🤓422
Какой синтаксис является корректным для вывода "Hello World" в консоль в Java?
Anonymous Quiz
0%
print ("Hello World");
2%
Console.WriteLine("Hello World");
96%
System.out.println("Hello World");
1%
echo("Hello World");
0%
Посмотреть ответ
6👍2🎉2💯1👨‍💻1
http и https. Часть 4.

Как работает HTTPs?

Протокол HTTPs предусматривает, что при установке соединения клиент и сервер договариваются об использовании временного ключа, при помощи которого будут зашифровывать и расшифровывать сообщения. Этот ключ называется «сеансовый», потому что действует только в течение текущего сеанса на сайте. Для каждого нового сеанса генерируется новый ключ.

👩‍💻 Наш практический курс Java–разработчика

JavaStart. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
6👍3👨‍💻3
http и https. Часть 5.

Чем отличается HTTP от HTTPs?

HTTP использует в работе порт 80, а HTTPs — порт 443. Так принято для удобства. Но главное отличие этих двух протоколов в том, что по HTTPs безопасно передавать личные данные, а по HTTP — нет.

Если злоумышленник перехватит трафик, отправленный по протоколу HTTP, он сможет увидеть всё, что вы ввели на сайте: контактную информацию, логин и пароль, детали банковской карты. Чтобы не раскрыть конфиденциальные данные, нужно вводить их только на тех сайтах, которые работают по HTTPs. Используемый протокол всегда можно посмотреть в адресной строке браузера.

Если перехватят трафик, отправленный по протоколу HTTPs, сообщение будет выглядеть как набор случайных символов. Чтобы его прочитать, нужен ключ. Но их специально делают такими длинными, что даже у самого мощного компьютера ушли бы годы непрерывной работы, чтобы их подобрать.

👩‍💻 Наш практический курс Java–разработчика

JavaStart. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
👨‍💻5👍32🔥1
Какой метод может быть использован для преобразования строки в верхний регистр?
Anonymous Quiz
0%
.tuc()
85%
.toUpperCase()
3%
.touppercase()
10%
.upperCase()
2%
Посмотреть ответ
👍5🎉21