Получи случайную криптовалюту за регистрацию!

Senior Java Developer

Логотип телеграм канала @seniorjavist — Senior Java Developer S
Логотип телеграм канала @seniorjavist — Senior Java Developer
Адрес канала: @seniorjavist
Категории: Образование
Язык: Русский
Количество подписчиков: 21.18K
Описание канала:

Изучаем Java.
По вопросам сотрудничества: @adv_and_pr
Канал на бирже: https://telega.in/c/seniorjavist

Рейтинги и Отзывы

3.50

2 отзыва

Оценить канал seniorjavist и оставить отзыв — могут только зарегестрированные пользователи. Все отзывы проходят модерацию.

5 звезд

1

4 звезд

0

3 звезд

0

2 звезд

1

1 звезд

0


Последние сообщения 12

2023-04-21 17:18:17 Что такое ordering, as-if-serial semantics, sequential consistency, visibility, atomicity, happens-before, mutual exclusion, safe publication?

ordering
механизм, который определяет, когда один поток может увидеть out-of-order (неверный) порядок исполнения инструкций другого потока. CPU для для повышения производительности может переупорядочивать процессорные инструкции и выполнять их в произвольном порядке до тех пор пока для потока внутри не будет видно никаких отличий. Гарантия, предоставляемая этим механизмом, называется as-if-serial semantics.

sequential consistency - то же что и as-if-serial semantics, гарантия того, что в рамках одного потока побочные эффекты от всех операций будут такие, как будто все операции выполняются последовательно.

visibility определяет, когда действия в одном потоке становятся видны из другого потока.

happens-before - логическое ограничение на порядок выполнения инструкций программы. Если указывается, что запись в переменную и последующее ее чтение связаны через эту зависимость, то как бы при выполнении не переупорядочивались инструкции, в момент чтения все связанные с процессом записи результаты уже зафиксированы и видны.

atomicity — атомарность операций. Атомарная операция выглядит единой и неделимой командой процессора, которая может быть или уже выполненной или ещё невыполненной.

mutual exclusion (взаимоисключающая блокировка, семафор с одним состоянием) - механизм, гарантирующий потоку исключительный доступ к ресурсу. Используется для предотвращения одновременного доступа к общему ресурсу. В каждый момент времени таким ресурсом может владеть только один поток. Простейший пример: synchronized(obj) { … }.

safe publication? - показ объектов другим потокам из текущего, не нарушая ограничений visibility. Способы такой публикации в Java:
• static{} инициализатор;
• volatile переменные;
• atomic переменные;
• сохранение в разделяемой переменной, корректно защищенной с использованием synchronized(), синхронизаторов или других конструкций, создающих read/write memory barrier;
• final переменные в разделяемом объекте, который был корректно проинициализирован.
1.8K views14:18
Открыть/Комментировать
2023-04-20 12:58:13 #вопросы_с_собеседований
Что такое «зелёные потоки» и есть ли они в Java?

Зелёные (легковесные) потоки(green threads) - потоки эмулируемые виртуальной машиной или средой исполнения. Создание зелёного потока не подразумевает под собой создание реального потока ОС.

Виртуальная машина Java берёт на себя заботу о переключении между разными green threads, а сама машина работает как один поток ОС. Это даёт несколько преимуществ. Потоки ОС относительно дороги в большинстве POSIX-систем. Кроме того, переключение между native threads гораздо медленнее, чем между green threads.

Это всё означает, что в некоторых ситуациях green threads гораздо выгоднее, чем native threads. Система может поддерживать гораздо большее количество green threads, чем потоков OС. Например, гораздо практичнее запускать новый green thread для нового HTTP-соединения к веб-серверу, вместо создания нового native thread.

Однако есть и недостатки. Самый большой заключается в том, что вы не можете исполнять два потока одновременно. Поскольку существует только один native thread, только он и вызывается планировщиком ОС. Даже если у вас несколько процессоров и несколько green threads, только один процессор может вызывать green thread. И всё потому, что с точки зрения планировщика заданий ОС всё это выглядит одним потоком.

Начиная с версии 1.2 Java поддерживает native threads, и с тех пор они используются по умолчанию.
3.8K views09:58
Открыть/Комментировать
2023-04-19 20:35:14 Чем отличается процесс от потока?

Процесс — экземпляр программы во время выполнения, независимый объект, которому выделены системные ресурсы (например, процессорное время и память). Каждый процесс выполняется в отдельном адресном пространстве: один процесс не может получить доступ к переменным и структурам данных другого. Если процесс хочет получить доступ к чужим ресурсам, необходимо использовать межпроцессное взаимодействие. Это могут быть конвейеры, файлы, каналы связи между компьютерами и многое другое.

Для каждого процесса ОС создает так называемое «виртуальное адресное пространство», к которому процесс имеет прямой доступ. Это пространство принадлежит процессу, содержит только его данные и находится в полном его распоряжении. Операционная система же отвечает за то, как виртуальное пространство процесса проецируется на физическую память.

Поток(thread) — определенный способ выполнения процесса, определяющий последовательность исполнения кода в процессе. Потоки всегда создаются в контексте какого-либо процесса, и вся их жизнь проходит только в его границах. Потоки могут исполнять один и тот же код и манипулировать одними и теми же данными, а также совместно использовать описатели объектов ядра, поскольку таблица описателей создается не в отдельных потоках, а в процессах. Так как потоки расходуют существенно меньше ресурсов, чем процессы, в процессе выполнения работы выгоднее создавать дополнительные потоки и избегать создания новых процессов.
4.1K views17:35
Открыть/Комментировать
2023-04-19 17:51:32
Пройдите тест по Kotlin из 10 вопросов и проверьте, насколько вы готовы к обучению на онлайн-курсе "Kotlin Backend Developer" от OTUS. Курс доступен в рассрочку.

На курсе вы:
Освоите практики гибкой архитектуры и сможете применять их в проектах на любых языках
Откроете для себя широкий спектр технологий и инструментов разработки (около 10 различных фреймворков)
Изучите Kotlin на высоком уровне, включая DSL, мультиплатформенность, корутины
Погрузитесь в темы высокой нагрузки, больших данных, масштабируемости и высокой доступности
Освоите классические и передовые архитектурные шаблоны

ПРОЙТИ ТЕСТ — https://otus.pw/WBTz/

Сможете пройти успешно тест — бонусом получите курс по GIT в записи бесплатно + доступ к 2 открытым урокам курса!

Нативная интеграция. Информация о продукте www.otus.ru
3.9K views14:51
Открыть/Комментировать
2023-04-19 13:06:31 Какие логические операции и операторы вы знаете?

• & : Логическое AND (И);
• && : Сокращённое AND;
• | : Логическое OR (ИЛИ);
• || : Сокращённое OR;
• ^ : Логическое XOR (исключающее OR (ИЛИ));
• ! : Логическое унарное NOT (НЕ);
• &= : AND с присваиванием;
• |= : OR с присваиванием;
• ^= : XOR с присваиванием;
• == : Равно;
• != : Не равно;
• ?: : Тернарный (троичный) условный оператор.
3.8K views10:06
Открыть/Комментировать
2023-04-18 15:48:46 Что такое класс Object? Какие в нем есть методы?

Object это базовый класс для всех остальных объектов в Java. Любой класс наследуется от Object и, соответственно, наследуют его методы:

public boolean equals(Object obj) – служит для сравнения объектов по значению;

int hashCode() – возвращает hash код для объекта;

String toString() – возвращает строковое представление объекта;

Class getClass() – возвращает класс объекта во время выполнения;

protected Object clone() – создает и возвращает копию объекта;

void notify() – возобновляет поток, ожидающий монитор;

void notifyAll() – возобновляет все потоки, ожидающие монитор;

void wait() – остановка вызвавшего метод потока до момента пока другой поток не вызовет метод notify() или notifyAll() для этого объекта;

void wait(long timeout) – остановка вызвавшего метод потока на определённое время или пока другой поток не вызовет метод notify() или notifyAll() для этого объекта;

void wait(long timeout, int nanos) – остановка вызвавшего метод потока на определённое время или пока другой поток не вызовет метод notify() или notifyAll() для этого объекта;

protected void finalize() – может вызываться сборщиком мусора в момент удаления объекта при сборке мусора.
2.7K views12:48
Открыть/Комментировать
2023-04-17 22:39:24 Создание многопоточного клиент-серверного приложения на Java

В этом видео преподаватель пишет сервер на языке Java и простой клиент, которые передают информацию друг другу с помощью сокетов.

Смотреть на YouTube
3.6K views19:39
Открыть/Комментировать
2023-04-17 19:31:19
Пройди тест по Java и проверь свои знания.

Ответишь
— пройдешь на продвинутый курс "Java Developer. Professional" от OTUS по специальной цене + получишь запись мастер-класса от преподавателя курса .

ПРОЙТИ ТЕСТ: https://otus.pw/C3DC/

Реклама. Информация о рекламодателе на сайте otus.ru
3.6K views16:31
Открыть/Комментировать
2023-04-17 15:15:02 Какими должны быть классы по Clean Code

В ролике подробно рассказано, как правильно создавать классы по парадигмам из книги Чистый код. Автору видео удалось разъяснить тему ещё лучше, чем в переводе книги.

Смотреть на YouTube
1.9K views12:15
Открыть/Комментировать
2023-04-17 12:05:42
Открой для себя лучший способ найти работу на удаленке или в офисе: подпишись на Java Job

Здесь вы найдете:
Вакансии от ведущих IT-компаний (таких как Яндекс, Сбербанк, Intel)
Вакансии стартапов, которые не представлены на других сайтах;
Предложения от зарубежных компаний с возможностью релокации;
Стажировки и обучающие материалы для карьерного роста

Цени свое время - подпишись на @Java_Job
2.4K views09:05
Открыть/Комментировать