Size: a a a

Библиотека джависта

2021 March 21
Библиотека джависта
При посещении клиентом Web-ресурса и выполнении вариантов запросов, контекстная информация о клиенте не хранится. В протоколе HTTP нет возможностей для сохранения и изменения информации о предыдущих посещениях клиента. Сеанс (сессия) – соединение между клиентом и сервером, устанавливаемое на определенное время, за которое клиент может отправить на сервер сколько угодно запросов. Сеанс устанавливается непосредственно между клиентом и Web-сервером. Каждый клиент устанавливает с сервером свой собственный сеанс. Сеансы используются для обеспечения хранения данных во время нескольких запросов Web-страницы или на обработку информации, введенной в пользовательскую форму в результате нескольких HTTP-соединений (например, клиент совершает несколько покупок в интернет-магазине; студент отвечает на несколько тестов в системе дистанционного обучения).

Существует несколько способов обеспечения уникального идентификатора сессии:
User Authentication – Предоставление учетных данных самим пользователем в момент аутентификации. Переданная таким образом информация в дальнейшем используется для поддержания сеанса. Это метод не будет работать, если пользователь вошёл в систему одновременно из нескольких мест.
HTML Hidden Field – Присвоение уникального значения скрытому полю HTML страницы, в момент когда пользователь начинает сеанс. Этот метод не может быть использован со ссылками, потому что нуждается в подтверждении формы со скрытым полем каждый раз во время формирования запроса. Кроме того, это не безопасно, т.к. существует возможность простой подмены такого идентификатора.
URL Rewriting – Добавление идентификатора сеанса как параметра URL. Достаточно утомительная операция, потому что требует постоянного отслеживания этого идентификатора при каждом запросе или ответе.
Cookies – Использование небольших фрагментов данных, отправленных web-сервером и хранимых на устройстве пользователя. Данный метод не будет работать, если клиент отключает использование cookies.
Session Management API – Использование специального API для отслеживания сеанса, построенный на основе и на методах, описанных выше и который решает частные проблемы перечисленных способов:
Чаще всего недостаточно просто отслеживать сессию, необходимо ещё и сохранять какие-либо дополнительные данные о ней, которые могут потребоваться при обработке последующих запросов. Осуществление такого поведения требует много дополнительных усилий.
Все вышеперечисленные методы не являются универсальными: для каждого из них можно подобрать конкретный сценарий, при котором они не будут работать.
источник
Библиотека джависта
#вопросы_с_собеседований
Что такое ThreadLocal-переменная?
источник
2021 March 22
Библиотека джависта
ThreadLocal - класс, позволяющий, имея одну переменную, иметь различное её значение для каждого из потоков.

У каждого потока - т.е. экземпляра класса Thread - есть ассоциированная с ним таблица ThreadLocal-переменных. Ключами таблицы являются cсылки на объекты класса ThreadLocal, а значениями - ссылки на объекты, «захваченные» ThreadLocal-переменными, т.е. ThreadLocal-переменные отличаются от обычных переменных тем, что у каждого потока свой собственный, индивидуально инициализируемый экземпляр переменной. Доступ к значению можно получить через методы get() или set().

Например, если мы объявим ThreadLocal-переменную: ThreadLocal<Object> locals = new ThreadLocal<Object>();. А затем, в потоке, сделаем locals.set(myObject), то ключом таблицы будет ссылка на объект locals, а значением - ссылка на объект myObject. При этом для другого потока существует возможность «положить» внутрь locals другое значение.

Следует обратить внимание, что ThreadLocal изолирует именно ссылки на объекты, а не сами объекты. Если изолированные внутри потоков ссылки ведут на один и тот же объект, то возможны коллизии.

Так же важно отметить, что т.к. ThreadLocal-переменные изолированы в потоках, то инициализация такой переменной должна происходить в том же потоке, в котором она будет использоваться. Ошибкой является инициализация такой переменной (вызов метода set()) в главном потоке приложения, потому как в данном случае значение, переданное в методе set(), будет «захвачено» для главного потока, и при вызове метода get() в целевом потоке будет возвращен null.
источник
Библиотека джависта
🔥 Бесплатное практическое демо-занятие продвинутого курса по Android-разработке на Kotlin от OTUS и Альфа-Банка!

📌  24.03 - «Рисуем свой график котировок в Android» с Вадимом Гальцевым: https://otus.pw/LJtP/

Чему научимся:
— Рассмотрим основные инструменты для рисования
— Изучим возможности классов Canvas, Path, Paint
— Нарисуем кастомизируемый график котировок и добавим в него анимаций

📌 Регистрируйся, а мы напомним в дату проведения вебинара!
Уже все умеешь? Проверь свои знания в, казалось бы, сложном тесте по ссылке https://otus.pw/jpFB/
источник
Библиотека джависта
#вопросы_с_собеседований
Что такое URL Rewriting?
источник
2021 March 23
Библиотека джависта
Всегда думал, чем бы заняться в будущем? Видел себя в мире IT, но не знал кем?

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

Бесплатная регистрация по ссылке: 👉 https://clc.am/EolsYg

Почему Java — отличный выбор?

✔️ Этот язык занимает первые места в рейтингах разработчиков ПО.
✔️ Является одним из самых популярных языков в крупнейших IT-компаниях.
✔️ Многогранен и раскрывает множество возможностей применения.
✔️ Имеет дружественный и понятный синтаксис.

📢 Спикер интенсива — специалист с опытом более 15 лет в сфере Java-разработки, директор центра SymbioWay Даниил Пилипенко.

🎁 Прояви себя, напиши лучший проект и получи грант на обучение в онлайн-университете Skillbox!
источник
Библиотека джависта
URL Rewriting - специальная перезапись (перекодирование) оригинального URL. Данный механизм может использоваться для управления сессией в сервлетах, когда cookies отключены.
источник
Библиотека джависта
Язык программирования, на котором больше всего пишете
Анонимный опрос
4%
Python
4%
JavaScript
76%
Java
3%
С/C++
2%
С#
2%
PHP
1%
Go
5%
Kotlin
0%
Swift
4%
Другой
Проголосовало: 2789
источник
Библиотека джависта
#вопросы_с_собеседований
В чем разница между interrupted() и isInterrupted()?
источник
2021 March 24
Библиотека джависта
С нас крутые спикеры, полезные лекции и трудоустройство, с тебя – желание учиться и минимум год опыта коммерческой разработки на Java.

Как все проходит?
3 раза в неделю на протяжении двух месяцев тебя будут обучать Senior’ы и Teamlead’ы ведущих банков страны. Обучение можно совмещать с работой.

Чему будут учить?
На курсе будем изучать Core Java, промышленную разработку на Java, базы данных, Spring, Kafka, Kubernetes и Istio. Помимо этого еще будут практические занятия и домашние задания.

Что будет после учебы?
Трудоустройство в Цифровые привычки. Ты будешь работать над высоконагруженными,отказоустойчивыми проектами.

Пройти вступительный тест на курс: https://cutt.ly/vxmwM7E
источник
Библиотека джависта
Механизм прерывания работы потока в Java реализован с использованием внутреннего флага, известного как статус прерывания. Прерывание потока вызовом Thread.interrupt() устанавливает этот флаг. Методы Thread.interrupted() и isInterrupted() позволяют проверить, является ли поток прерванным.

Когда прерванный поток проверяет статус прерывания, вызывая статический метод Thread.interrupted(), статус прерывания сбрасывается.

Нестатический метод isInterrupted() используется одним потоком для проверки статуса прерывания у другого потока, не изменяя флаг прерывания.
источник
Библиотека джависта
#вопросы_с_собеседований
Что обозначает ключевое слово transient?
источник
2021 March 25
Библиотека джависта
Что объединяет Apple, Netflix, Huawei и Instragram? Не только миллиарды запросов, петабайты данных и пользователи по всему миру. Все эти компании используют распределённую NoSQL базу данных Apache Cassandra.

Уже в эту субботу 27.03 стартует однодневная онлайн-конференция Cassandra Day Russia 2021. Опытные NoSQL специалисты расскажут о возможностях одной из самых мощных баз данных современности и поделятся практическим опытом управления СУБД Cassandra.

Конференция будет состоять из двух параллельных потоков:
— Воркшопы для тех, кто только начинает или планирует работу с Cassandra;
— Доклады для опытных специалистов.

Время проведения: 27 марта, 10:00—17:00 (UTC+3)
Также всех участников конференции ждут подарки от организаторов.
Все подробности и запись по ссылке: https://proglib.io/w/b0857e34
источник
Библиотека джависта
Поля класса, помеченные модификатором transient, не сериализуются.

Обычно в таких полях хранится промежуточное состояние объекта, которое, к примеру, проще вычислить. Другой пример такого поля - ссылка на экземпляр объекта, который не требует сериализации или не может быть сериализован.
источник
Библиотека джависта
В любой ситуации можно найти положительный аспект. Вот, к примеру, пандемия научила работодателей: не нужно переплачивать за большой офис в центре города — многие сотрудники эффективно справляются с обязанностями и дома. Да и сам дом может располагаться за сотни километров от места работы. Ведь если человек живет там, где ему нравится, он лучше отдыхает и работает с удовольствием и большей отдачей.

https://vc.ru/luxoft/224991-kak-reshat-globalnye-zadachi-ne-uezzhaya-iz-rodnogo-goroda

Но как сделать так, чтобы удалённое взаимодействие не отнимало лишних сил и было комфортным для обеих сторон? Читайте в новом посте компании Luxoft.
источник
Библиотека джависта
🕵️ 10 лучших хакерских приложений для Android

Android имеет множество портативных опций, которые позволяют пользователям выполнять этические хакерские задачи без особых усилий.

https://proglib.io/sh/ZAwz8RIp6l
источник
2021 March 26
Библиотека джависта
Просматривая вакансии по Java, вы наверняка встречали интересные позиции в цифровом ритейле. Оно и понятно: нужна скорость и работа с разными платформами, а Java для этих задачах подходит как нельзя лучше. Но сфера своеобразная, и без опыта трудно попасть.

Недавно мы натолкнулись на совместную программу ВШЭ и X5 Retail Group «Инновации в ритейле». Выглядит неплохо: 3 месяца очно, работа в команде, разработка реальных продуктов и сервисов + домашние задания. 10 лучших кандидатов по итогам конкурса на учебное место получают грант на бесплатное обучение, так что попробовать может каждый. Старт программы уже в апреле.

Смотрите сами – вся информация о программе, преподавателях и поступлении тут: https://www.hse.ru/edu/dpo/434005895
источник
Библиотека джависта
#вопросы_с_собеседований
Какие методы для работы с cookies предусмотрены в сервлетах?
источник
Библиотека джависта
Java — один из самых востребованных языков программирования. На нем пишут игры и приложения, достаточно сложные и трудоемкие проекты.

Кто-то может написать, что Java умирает. Если вы не из таких, забирайте подборку в закладки.
источник
Библиотека джависта
источник