Soggy biscuit не гуглить почему
Перейти к содержимому

Soggy biscuit не гуглить почему

  • автор:

Soggy biscuit не гуглить почему

Тезисы выступления Дмитрия Березянского, Senior Software Engineering Manager ЕРАМ Ukraine, на Soft Skills Online Marathon for Juniors

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

Эксперты украинского EPAM University совместно с коллегами c продакшена, провели не один, не два, а целый цикл онлайн-ивентов под названием Soft Skills Online Marathon for Juniors. Пять дней, пять спикеров, пять вебинаров, в ходе которых молодые люди, делающие свои первые шаги в сфере IT, получили ответы на самые актуальные вопросы. Ивент прошел в начале апреля и собрал свыше 1300 желающих принять участие. Делимся с вами наиболее интересными инсайтами одного из наших спикеров — Дмитрия Березянского, Senior Software Engineering Manager. Его выступление на тему “ТОР-5 Junior’s mistakes on the projects. Manager’s View” стало одно из самых высокооцененных среди участников,

Дима рассказал о том, как разорвать замкнутый круг «нет опыта — нет работы, нет работы – нет опыта» при помощи pet проектов, хакатонов и open source проектов, а также об ожиданиях менеджера относительно новоприбывшего в команду джуниора. Вместе с примерами из опыта, отборным юмором и честными ответами на вопросы участников — получилось очень искренне, интересно и полезно.

Мы собрали для вас самое интересное и “вкусное” из доклада:

  • CV большинства джуниоров похожи: большинство имеют высшее образование, старательны, прилежны, исполнительны. Как выделиться на общем фоне? Заведите себе pet project — неважно будете ли вы писать код, тестировать чужой или рисовать дизайн – но у вас должно быть портфолио работ. Ссылка на репозиторий, включенная в резюме, является тем самым «звоночком» для технического специалиста и рекрутера, что с кандидатом стоит пообщаться.
  • Принимайте участие в open source проектах. Так вы сможете получить быстрые фидбэки от опытных специалистов, работающих над тем же проектом.
  • Участвуйте в хакатонах – самостоятельно ли или в команде с друзьями. Результаты включайте в портфолио.
  • Безостановочно, усердно и всеми способами учите английский. На первом же митинге на реальном проекте вы поймете, что уровень В1 критически недостаточен для общения с клиентом.
  • Менеджер ожидает, что новоприбывший в команду джуниор будет учиться: учиться быстро, учиться все время, учиться всему, с чем сталкивается. Любой новичок ошибается. Успешный джуниор – не повторяет своих ошибок и постепенно учится не ошибаться.
  • Менеджер ожидает, что любая проблема будет решена, потому считает нужным узнать о ее возникновении как можно раньше. При возникновении технических вопросов рекомендую в первую очередь гуглить. И только после обращаться за советом к более опытным коллегам.
  • Единственный способ достичь мастерства в программировании – это программировать все свободное время, сделать это занятие своим хобби. Горите, любите и тогда все получится.

И, напоследок, одна из любимых профессиональных шуток Дмитрия Березянского:

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

Если у вас паранойя, то это не значит, что за вами не следят!

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

⇣ Содержание

  • Слежение со стороны Google
  • Слежение со стороны «Яндекса»
  • Слежение со стороны Facebook✴ и других соцсетей
  • Проверка разрешений для Windows и приложений на компьютере
  • Отслеживание в MacOS
  • Отслеживание действий в Linux
  • Защита от отслеживания при помощи cookie
  • Проверка на несанкционированное слежение
  • Вывод

Многие ИТ-компании совершенно бесплатно предлагают массу сервисов, обслуживание которых стоит немалых денег. Причина этого проста: пользователь, о котором можно собрать подробную информацию, — это идеальный товар для рекламодателей: количество переходов по рекламным ссылкам, соответствующим запросам пользователей, значительно выше кликов по неперсонализированной рекламе. Неудивительно, что больше всего информации о нас собирают как раз те, кто потом показывает нам рекламу, — поисковые сервисы и социальные сети.

⇡#Слежение со стороны Google

Благодаря Google у нас есть такие известные продукты, как операционная система Android, самый популярный браузер Google Chrome, сервис электронной почты Gmail, видеохостинг Youtube и так далее. Отказаться от этих продуктов и тем самым избавиться от слежения практически невозможно. А избавиться иногда хочется очень сильно, потому что компания отслеживает местоположение устройств с ОС Android, записывает историю поисковых запросов, просмотров видеороликов на Youtube, историю приложений Google и так далее. Ситуация осложняется еще и тем, что с помощью одного и того же аккаунта можно получить доступ практически ко всем продуктам Google, а это означает, что компания может получить очень подробные сведения о пользователе — что он ищет в интернете, какие видео ему нравятся, какие приложения установлены у него на телефоне, кто находится у него в списке контактов, какие места он посещает и так далее. Вся эта информация позволяет составить очень точный портрет пользователя, и ему можно будет предлагать рекламу тех товаров и услуг, которые почти наверняка его заинтересуют. К счастью, компания предлагает довольно широкие возможности для настройки конфиденциальности.

Для отключения отслеживания со стороны Google необходимо перейти в настройки аккаунта и выбрать раздел «Проверьте настройки конфиденциальности». В этом разделе нас прежде всего интересует первый пункт — «Персонализируйте работу с сервисами Google».

Первое, что Google предлагает настроить, — это отслеживание истории приложений и веб-поиска. Компания хранит поисковые запросы и другие действия в различных сервисах Google (например, в «Картах»), информацию о местоположении, языке, IP-адресе, а также сведения о том, как были просмотрены страницы — через браузер или приложение, данные о просмотренных объявлениях или покупках на сайте рекламодателя; недавние приложения и контакты. Все эти данные могут сохраняться даже в офлайн-режиме. Дополнительно данный раздел настроек позволяет включать или отключать историю действий в Google Chrome, а также на сайтах и в приложениях, использующих сервисы Google. Пользователь может просмотреть записанную историю приложений и веб-поиска, очистить ее, а также запретить ее хранить.

Следующий блок в настройках отслеживания — история местоположений. По умолчанию история местоположений отключена. Но если пользователь ее включит, то Google будет создавать карту перемещений на основе геоданных с устройств, на которых пользователь вошел в аккаунт. Причем это будет происходить даже тогда, когда сервисы Google не используются. На карте будут сохраняться данные о том, как часто пользователь бывает в тех или иных местах, сколько времени там проводит и как туда добирается. История местоположений позволит получать более точные результаты поиска адресов и сведения о маршрутах, а также просматривать данные о посещенных местах.

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

В истории голосового управления хранится запись речи пользователя. Запись отправляется в аккаунт в двух случаях — когда пользователь произносит команды (например, «О’кей, Google») и когда нажимает на значок микрофона. В аккаунте можно посмотреть хранящиеся записи, удалить их, а также отключить хранение истории голосового управления.

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

В настройках конфиденциальности несколько пунктов посвящены данным, которые могут видеть другие пользователи, — например, геотеги в «Google Фото», подписки на плей-листы Youtube, номер телефона, имя и фамилия пользователя и так далее. Но эти настройки не имеют непосредственного отношения к нашей теме. Упоминаем их только для того, чтобы пользователь на всякий случай проверил, готов ли он делиться той или иной информацией со всеми желающими.

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

Все настройки в аккаунте Google будут работать для всех устройств и браузеров, где пользователь войдет в свой аккаунт.

Кстати, далеко не факт, что после отключения отслеживания в настройках конфиденциальности Google перестанет следить за пользователем. Например, в прошлом году журналисты Associated Press выяснили, что Google не перестаёт отслеживать перемещения пользователя после отключения записи истории местоположений. Повысить конфиденциальность пользователя могут, например, приватные поисковики (такие как DuckDuckGo и StartPage), а также специальные расширения для браузера (например, Privacy Badger, Disconnect).

⇡#Слежение со стороны «Яндекса»

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

Для нашей задачи в настройках портала «Яндекса» интересны разделы «Мои места», «Поиск», «Реклама».

В «Моих местах» компания хранит адреса места работы и места жительства. Это позволяет быстро строить маршруты домой и на работу. При авторизации в «Яндексе» точки синхронизируются на разных устройствах и доступны в «Яндекс.Картах» и мобильном «Яндекс.Навигаторе». Удалить сведения об адресах можно просто нажатием значка корзины справа от поля адреса.

В разделе «Поиск» есть несколько интересных настроек. Первый подраздел — «Поисковые подсказки». Здесь можно указать системе, что именно нужно подсказывать пользователю при поиске, — историю поисков, сайты, на которые пользователь часто заходит, время посещения сайтов, на которых была найдена какая-либо информация, метки персонализации веб-ответов. Интересно, что пользователь может очистить историю поисковых запросов (хотя просмотреть ее нельзя), а в отношении остальной информации доступно только отключение ее показа, но не удаление истории действий.

Второй подраздел в «Поиске» — «Результаты поиска». Здесь можно настроить, сколько показывать документов на странице поиска, указать язык интерфейса и так далее. Нас здесь интересует блок «Персональный поиск». В нем два пункта — «Учитывать мою историю поиска в результатах» и «Показывать мои любимые сайты в подсказках». Второй пункт не нуждается в пояснениях, а первый означает, что «Яндекс» будет учитывать интересы пользователя, предлагая ответы, которые подходят именно ему. Например, на запрос «Агата Кристи» для меломана, скорее всего, будет предложен официальный сайт российской рок-группы, а для любителя детективов — сайты про Эркюля Пуаро и мисс Марпл.

В разделе «Реклама» можно отключить показ рекламы на главной странице «Яндекса» (да, сделать это так легко!) и персонализацию рекламы в «Яндекс.Директе». Персонализация включает в себя два пункта — учет интересов пользователя и учет его местоположения. Данные для персонализации компания собирает при помощи cookie-файлов, а также сервисов и приложений, которым пользователь разрешил передавать информацию в «Яндекс».

Для доступности настроек портала «Яндекса» необходимо войти в аккаунт. При этом некоторые настройки в другом браузере (или на другом компьютере) придется осуществлять заново, так как они завязаны на cookie-файлы браузера.

⇡#Слежение со стороны Facebook✴ и других соцсетей

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

И все же какое-то отслеживание в Facebook✴ можно отключить. Для этого нужно перейти в настройки аккаунта и проверить разделы «Конфиденциальность» и «Приложения и сайты».

В разделе «Конфиденциальность» можно установить, какая информация о владельце аккаунта будет видна разным категориям пользователей. Здесь же можно разрешить или запретить выдавать данные пользователя в поисковиках. Этот раздел не позволяет запретить компании отслеживать действия пользователя, но помогает хоть каким-то образом сохранить неприкосновенность личной жизни.

В разделе «Приложения и сайты» можно посмотреть, какие сайты и приложения имеют доступ к аккаунту Facebook✴, и указать, можно ли вообще сайтам и приложениям получать такой доступ. По умолчанию приложения и сайты могут прочитать всю публичную информацию из аккаунта Facebook✴, а при необходимости могут запросить и доступ к другим данным. Пользователь всегда может запретить доступ к аккаунту любому приложению или сайту.

Повторим еще раз: избавление от отслеживания Facebook✴ по сути заключается в том, что пользователь сам сообщает этой соцсети как можно меньше информации. Кстати, так же обстоит дело и с другими соцсетями — «ВКонтакте», «Одноклассники» и так далее. Причем настроек, позволяющих отключить отслеживание, здесь еще меньше, чем в Facebook✴.

⇡#Проверка разрешений для Windows и приложений на компьютере

Веб-камера и микрофон на компьютере для того и существуют, чтобы записывать видео и звук. Но доступ к этим устройствам наиболее чувствителен для пользователя в отношении его приватности. Поэтому полезно время от времени проверять, какие приложения на компьютере имеют к ним доступ.

Расскажем, как проверить разрешения для приложений в Windows 10. Для этой цели в «Параметрах» системы выделен специальный раздел — «Конфиденциальность». Этот раздел, в свою очередь, состоит из двух подразделов — «Разрешения Windows» и «Разрешения приложений».

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

В подразделе «Разрешения приложений» можно проверить все пункты: «Расположение», «Камера», «Микрофон», «Сведения учетной записи», «Контакты», «Электронная почта» и так далее. Посмотрите, что за приложения имеют доступ к тем или иным разделам системы или интерфейсам компьютера. И если, например, со Skype все понятно: это приложение должно иметь доступ к микрофону и веб-камере для видеосвязи, то какая-нибудь программа типа HP Smart вряд ли получила доступ к камере при осознанном желании пользователя.

⇡#Отслеживание в MacOS

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

Настройки конфиденциальности в MacOS связаны с аккаунтом Apple ID. Доступ к настройкам можно получить через страницу «Данные и конфиденциальность». Здесь компания предлагает всего четыре пункта — «Получение копии данных», «Исправление данных», «Временная деактивация учетной записи» и «Удаление учетной записи». Первая настройка позволяет получить копию данных, хранящихся на серверах Apple, вторая — исправить личную информацию о себе. Третий и четвертый пункт в комментариях не нуждаются, отметим только, что если учетная запись неактивна, то невозможно пользоваться ею и любыми сервисами Apple.

Говоря об отслеживании в MacOS, следует отметить настройки голосового помощника Siri. Чтобы облегчить распознавание речи и повысить точность ответов, некоторая информация (например, имя, контакты, песни из медиатеки и история поиска) отправляется на серверы Apple. Кроме того, при включенной геолокации Siri отправляет на серверы и геоданные. Информация о местонахождении позволяет получать релевантные результаты поиска, предложений и новостей.

Отправку данных в Siri можно контролировать через настройки Siri в MacOS. Для этого надо выбрать в меню Apple «Системные настройки», затем нажать на значок «Siri». Здесь нас интересует кнопка «Предложения Siri и конфиденциальность». Нажав ее, можно отказаться от того, чтобы голосовой помощник использовал данные приложений «Заметки», «Почта» и браузера Safari.

⇡#Отслеживание действий в Linux

Ubuntu — одна из самых популярных сборок Linux — отправляет поисковые запросы в Unity Dash на сайт productsearch.ubuntu.com, а так же на сайты сторонних компаний: Amazon, Facebook✴ и так далее. Это помогает улучшить поиск и выдать наиболее релевантный результат. Но эта функциональность дает возможность ИТ-компаниям отслеживать действия пользователя, поэтому для повышения конфиденциальности можно отключить онлайн-поиск.

Для отключения онлайн-поиска необходимо набрать в панели Unity «Параметры» (или «Settings», в результатах нажать на «Параметры системы», в открывшемся окне выбрать «Защита и приватность» и перейти на вкладку «Поиск». Здесь нужно просто перевести переключатель в положение «Выключено».

⇡#Защита от отслеживания при помощи cookie

За пользователям следят не только крупные интернет-компании типа Google и «Яндекса». Даже обыкновенные интернет-магазины не против узнать о пользователях больше, чтобы можно было предложить более подходящие товары. Делается это обычно при помощи файлов cookie.

Файлы cookie сами по себе не вредоносны. Они используются для того, чтобы сайт мог запомнить пользователя и его действия на странице. Это нужно, например, в интернет-магазинах, чтобы система не забыла, какой товар был добавлен в корзину. Но аналогичным образом в файл можно записывать и другую информацию о пользователе, которую потом сайт может получить и использовать в своих целях. Кроме того, куки может создавать не сам сайт, а сторонняя рекламная сеть, к которой он подключен, и такие куки позволяют собрать довольно подробную информацию о пользователе, так как к одной и той же рекламной сети могут быть подключены десятки и сотни сайтов. И такие сторонние куки как раз бывает полезно отключать. Отключать куки полностью не рекомендуется, так как тогда нарушится работа некоторых сайтов — например, будет невозможно войти в аккаунт любого интернет-сервиса.

Отключить отслеживание с помощью cookie можно в браузере. Для отключения сторонних куков в Google Chrome перейдем в настройки браузера и выберем раздел «Дополнительные». В нем нужен подраздел «Конфиденциальность и безопасность » . Здесь нажимаем на кнопку «Настройки контента» и далее — на кнопку «Файлы cookie».

Чтобы запретить файлы cookie от сторонних сайтов, которые размещают рекламу или изображения, нужно установить флажок «Блокировать данные и файлы cookie сторонних сайтов». Сторонние файлы cookie будут заблокированы даже в том случае, если сайты добавлены в список исключений.

Для отключения сторонних куков в «Яндекс.Браузере» нужно перейти в настройки браузера, выбрать раздел «Сайты», нажать кнопку «Расширенные настройки сайтов» и в блоке «Сookie-файлы» включить опцию «Блокировать данные и файлы сторонних сайтов».

Попасть на страницу отключения cookie в Mozilla Firefox немного проще, чем в Google Chrome. Для этого в меню программы выбираем пункт «Блокировка содержимого», и в браузере сразу откроется нужная страница с настройками. В первом же блоке выбираем вариант блокировки содержимого — «Стандартная», «Строгая» и «Персональная». Для отключения сторонних куков нужно выбрать либо вариант «Строгая», либо соответствующий пункт в варианте «Персональная».

В качестве дополнительной меры безопасности можно потребовать от браузеров удалять cookie-файлы после завершения сессии. Но в таком случае каждый раз придется заново заходить во все аккаунты.

Напомним, что при полном отключении cookie-файлов пользователь не сможет войти в аккаунты, пользоваться «Корзиной» в интернет-магазинах и осуществлять на сайтах любые действия, требующие запоминания действий пользователя. Так что переусердствовать с отключением cookie не стоит.

⇡#Проверка на несанкционированное слежение

Следить за пользователем могут и недоброжелатели с целью украсть конфиденциальную информацию, но это обычно происходит несанкционированно — при помощи вирусов и шпионских программ. Эти программы не афишируют свою деятельность, так что отключить им доступ, например, к клавиатуре, камере, микрофону стандартным путем не удастся. Правда, у некоторых антивирусов (например, у «Касперского») есть функция блокировки доступа к камере. То есть если какой-либо вирус попытается получить доступ к камере, эта попытка будет заблокирована, даже если сам вирус не будет опознан.

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

⇡#Вывод

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

Будем рады вашим советам и лайфхакам по защите от слежки в комментариях к этому материалу! И помните — сайт 3DNews.ru не следит за вами! Во всяком случае, пока 😉

Материалы по теме:

  1. Проще простого: 10 полезных «лайфхаков» для пользователей YouTube
  2. Приложения для учета финансов с максимальной автоматизацией
  3. Итоги 2018 года: программное обеспечение
  4. Попытка номер три: обзор социальной AI-сети «Яндекс.Аура»
  5. Рабочие инструменты, которые можно заменить смартфоном

Вещи которые нельзя, никогда нельзя, гуглить. Наслаждаеися вот они.

Circle jerk (с англ. — «онанизм по кругу») — сексуальная практика , при которой группа мужчин или юнош встают в круг и занимаются онанизмом сами себе или друг другу.

Blue waffle (вагинальное заболевание)

Ascariasis (БОЛЬШОЕ КОЛИЧЕСТВО АСКАРИД)

Skin condition (Любой кожный недуг который выглядит неприятно)

Mucus plug (вагинальная слизь)

Peanut dog (уродливая собака Арахис)

Bedbugs on mattress (клещи на матрасе)

Lamprey eel (минога)

Crabs the STD (глазной паразит)

Отличия между слабыми, мягкими, фантомными и обычными ссылками в Java

Вебінар JavaRush

Отличия между слабыми, мягкими, фантомными и обычными ссылками в Java - 1

«Слабые» ссылки и «мягкие» ссылки (WeakReference, SoftReference) были добавлены в Java API давно, но не каждый программист знаком с ними. Это свидетельствует о пробеле в понимании где и как их использовать. Ссылочные классы особенно важны в контексте сборки мусора . Как все мы знаем сборщик мусора сам освобождает память занимаемую объектами, но не все программисты знают что решение об освобождении памяти он принимает исходя из типа имеющихся на объект ссылок. Главное отличие SoftReference от WeakReference в том как сборщик с ними будет работать. Он может удалить объект в любой момент если на него указывают только weak ссылки, с другой стороны объекты с soft ссылкой будут собраны только когда JVM очень нужна память. Благодаря таким особенностям ссылочных классов каждый из них имеет свое применение. SoftReference можно использовать для реализации кэшей и когда JVM понадобится память она освободит ее за счет удаления таких объектов. А WeakReference отлично подойдут для хранения метаданных, например для хранения ссылки на ClassLoader. Если нет классов для загрузки то нет смысла хранить ссылку на ClassLoader, слабая ссылка делает ClassLoader доступным для удаления как только мы назначим ее вместо крепкой ссылки (Strong reference). В этой статье мы рассмотрим отличия типов ссылок в том числе Strong reference и Phantom reference (фантомная ссылка).

WeakReference vs SoftReference в Java

  1. Strong reference
  2. Weak Reference
  3. Soft Reference
  4. Phantom Reference
 Counter counter = new Counter(); // strong reference WeakReference weakCounter = new WeakReference(counter); //weak reference counter = null; // now Counter object is eligible for garbage collection 

Теперь, как только вы присвоили strong ссылке counter значение null (counter = null), тот объект что создан в первой строке становится доступным для удаления сборщиком мусора, потому что он больше не имеет strong ссылки. Cозданная Weak ссылка weakCounter не может предотвратить удаление сборщиком объекта Counter. С другой стороны если бы это была Soft ссылка, объект типа Counter не был бы удален до тех пор пока JVM не нуждалась бы в памяти особенно сильно. Soft ссылки в Java представлены классом java.lang.ref.SoftReference. Пример создания SoftReference в Java

 Counter prime = new Counter(); // prime holds a strong reference SoftReference soft = new SoftReference(prime) ; //soft reference variable has SoftReference to Counter Object prime = null; // now Counter object is eligible for garbage collection but only be collected when JVM absolutely needs memory 

После обнуления strong ссылки (в 3-ей строке) на объект Counter останется только 1 мягкая ссылка которая не сможет предотвратить удаление этого объекта сборщиком мусора, но в отличие от weak ссылки сможет отложить этот процесс до тех пор пока не появится острая нехватка памяти. Учитывая это отличие soft ссылки от weak, первая больше подходит для кэшей, а weak для метаданных. Хорошим примером служит класс WeakHashMap который является наследником интерфейса Map как и классы HashMap или TreeMap, но с одной отличительной особенностью. WeakHashMap оборачивает ключи как weak ссылки, что означает что как только не осталось strong ссылок на объект, weak ссылки которые расположены внутри WeakHashMap не спасут от сборщика мусора. Фантомные ссылки — третий тип ссылок, доступных в пакете java.lang.ref. Phantom ссылки представлены классом java.lang.ref.PhantomReference. Объект на который указывают только phantom ссылки может быть удален сборщиком в любой момент. Phantom ссылка создается точно так же как weak или soft.

 DigitalCounter digit = new DigitalCounter(); // digit reference variable has strong reference PhantomReference phantom = new PhantomReference(digit); // phantom reference digit = null; 

Как только вы обнулите strong ссылки на объект DigitalCounter, сборщик мусора удалит его в любой момент, так как теперь на него ведут только phantom ссылки. Кроме классов WeakReference, SoftReference, PhantomReference, WeakHashMap, полезно знать о классе ReferenceQueue. Вы можете воспользоваться этим классом при создании объекта класса WeakReference, SoftReference или PhantomReference:

 ReferenceQueue refQueue = new ReferenceQueue(); //reference will be stored in this queue for cleanup DigitalCounter digit = new DigitalCounter(); PhantomReference phantom = new PhantomReference(digit, refQueue); 

Отличия между слабыми, мягкими, фантомными и обычными ссылками в Java - 2

Ссылка на объект будет добавлена в ReferenceQueue и вы сможете контролировать состояние ссылок путем опроса ReferenceQueue. Жизненный цикл Object хорошо представлен на этой диаграмме: Вот и все отличия между weak и soft ссылками в Java. Так же мы познакомились с phantom ссылками, классом WeakHashMap и ReferenceQueue. Правильное использование ссылок поможет при сборке мусора и в результате мы получим более гибкое управление памятью в Java. Оригинал статьи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *