{"@context":"http://schema.org","@type":"Question","@id":"https://codegalaxy.io/courses/java-ru/questions/9aea134c68ff4a639ffef310a675fbc8/iz-kakoj-struktury-dannyh-sborshchik-musora-udalit-vse-elementy-u-kotoryh-ischez","text":"Из какой структуры данных \"сборщик мусора\" удалит все элементы у которых исчезла последняя ссылка на их ключ в этой структуре?","headline":"Из какой структуры данных \"сборщик мусора\" удалит все элементы у которых исчезла последняя ссылка на их ключ в","learningResourceType":["programming test","programming course","programming question"],"isPartOf":{"@type":"Course","@id":"https://codegalaxy.io/courses/java-ru","url":"https://codegalaxy.io/courses/java-ru","name":"Java Quiz","description":"Java - объектно-ориентированный кросс-платформенный язык программирования, предназначенный для удобства чтения и интероперабельности. Java обычно читается как легкая и простая версия языка Си++. Тем не менее, Java может использоваться как полная версия для создания приложений, которые могут работать на всех платформах, поддерживающих Java, без необходимости перекомпиляции. В 2020 году Java является самым популярным языком программирования, с которым работают более 9 миллионов разработчиков. \u003cbr\u003e\nЭтот обучающий курс полностью посвящен \u003cstrong\u003eJava языку\u003c/strong\u003e, где вы можете проверить свои знания и ответить на \u003cstrong\u003e вопросы интервью по Java\u003c/strong\u003e. Вы ответите на теоретические и практические вопросы, которые проверяют ваши навыки на понимание \u003cstrong\u003e Java-кода\u003c/strong\u003e и поиска ошибок.\n\u003cbr\u003e\nВы можете вернуться к этому java курсу когда захотите, так как он постоянно обновляется и добавляются новые вопросы и задачки!\n\nПереведено с помощью www.DeepL.com/Translator (бесплатная версия)","provider":{"@type":"Organization","@id":"https://codegalaxy.io","name":"CodeGalaxy","logo":{"@type":"ImageObject","url":"https://codegalaxy.io/app/assets/images/g_code.png","height":"513","width":"513"},"description":"Project aimed to provide new ways in learning programming languages and preparing for the interview."},"image":{"@type":"ImageObject","url":"https://codegalaxy.io/app/assets/images/fb/16x9/share-java-ru.png","height":"630","width":"1200"}},"image":{"@type":"ImageObject","url":"https://codegalaxy.io/app/assets/images/fb/16x9/share-java-ru.png","height":"630","width":"1200"},"answerCount":5,"potentialAction":[{"@type":"AssessAction","object":{"@type":"Question","@id":"https://codegalaxy.io/courses/java-ru/questions/9aea134c68ff4a639ffef310a675fbc8/iz-kakoj-struktury-dannyh-sborshchik-musora-udalit-vse-elementy-u-kotoryh-ischez"}},{"@type":"ChooseAction","actionOption":[{"@type":"Answer","@id":"https://codegalaxy.io/courses/java-ru/questions/9aea134c68ff4a639ffef310a675fbc8/iz-kakoj-struktury-dannyh-sborshchik-musora-udalit-vse-elementy-u-kotoryh-ischez#20012","url":"https://codegalaxy.io/courses/java-ru/questions/9aea134c68ff4a639ffef310a675fbc8/iz-kakoj-struktury-dannyh-sborshchik-musora-udalit-vse-elementy-u-kotoryh-ischez#20012","text":"HashMap","dateCreated":"2020-02-06"},{"@type":"Answer","@id":"https://codegalaxy.io/courses/java-ru/questions/9aea134c68ff4a639ffef310a675fbc8/iz-kakoj-struktury-dannyh-sborshchik-musora-udalit-vse-elementy-u-kotoryh-ischez#20013","url":"https://codegalaxy.io/courses/java-ru/questions/9aea134c68ff4a639ffef310a675fbc8/iz-kakoj-struktury-dannyh-sborshchik-musora-udalit-vse-elementy-u-kotoryh-ischez#20013","text":"LinkedHashMap","dateCreated":"2020-02-06"},{"@type":"Answer","@id":"https://codegalaxy.io/courses/java-ru/questions/9aea134c68ff4a639ffef310a675fbc8/iz-kakoj-struktury-dannyh-sborshchik-musora-udalit-vse-elementy-u-kotoryh-ischez#20014","url":"https://codegalaxy.io/courses/java-ru/questions/9aea134c68ff4a639ffef310a675fbc8/iz-kakoj-struktury-dannyh-sborshchik-musora-udalit-vse-elementy-u-kotoryh-ischez#20014","text":"WeakHashMap","dateCreated":"2020-02-06"},{"@type":"Answer","@id":"https://codegalaxy.io/courses/java-ru/questions/9aea134c68ff4a639ffef310a675fbc8/iz-kakoj-struktury-dannyh-sborshchik-musora-udalit-vse-elementy-u-kotoryh-ischez#20015","url":"https://codegalaxy.io/courses/java-ru/questions/9aea134c68ff4a639ffef310a675fbc8/iz-kakoj-struktury-dannyh-sborshchik-musora-udalit-vse-elementy-u-kotoryh-ischez#20015","text":"IdentityHashMap","dateCreated":"2020-02-06"}],"object":{"@type":"Answer","@id":"https://codegalaxy.io/courses/java-ru/questions/9aea134c68ff4a639ffef310a675fbc8/iz-kakoj-struktury-dannyh-sborshchik-musora-udalit-vse-elementy-u-kotoryh-ischez#20014","url":"https://codegalaxy.io/courses/java-ru/questions/9aea134c68ff4a639ffef310a675fbc8/iz-kakoj-struktury-dannyh-sborshchik-musora-udalit-vse-elementy-u-kotoryh-ischez#20014","text":"WeakHashMap","dateCreated":"2020-02-06"}}],"audience":{"@type":"EducationalAudience","audienceType":["developers","programmers"],"educationalRole":["Specialist","Student"],"alternateName":"Java Programmers","name":"Java Developers","sameAs":["https://en.wikipedia.org/wiki/Programmer","https://en.wikipedia.org/wiki/Software_developer","https://en.wikipedia.org/wiki/Software_engineer","https://en.wikipedia.org/wiki/Web_developer"]},"dateCreated":"2020-02-06","acceptedAnswer":[{"@type":"Answer","@id":"https://codegalaxy.io/courses/java-ru/questions/9aea134c68ff4a639ffef310a675fbc8/iz-kakoj-struktury-dannyh-sborshchik-musora-udalit-vse-elementy-u-kotoryh-ischez#js-expander-trigger","url":"https://codegalaxy.io/courses/java-ru/questions/9aea134c68ff4a639ffef310a675fbc8/iz-kakoj-struktury-dannyh-sborshchik-musora-udalit-vse-elementy-u-kotoryh-ischez#js-expander-trigger","text":"\u003cp\u003e\u003cstrong\u003eWeakHashMap\u003c/strong\u003e, фактически, хранит не пары \"ключ - значение\", а пары \"слабая ссылка на ключ - значение\". Особенность слабых ссылок (WeakReference) состоит в том, что они игнорируются сборщиком мусора, т.е. если на объект-ключ нет других ссылок, он уничтожается.\u003c/p\u003e\n\u003cp\u003eПеред любым обращением к WeakHashMap (get(), put(), size() и т.д.) анализируются невалидные ссылки и соответствующая пара удаляется.\u003c/p\u003e\n\nКод для демонстрации:\n\u003cpre\u003e\u003ccode class\u003d\"java\"\u003eMap\u0026lt;Object,String\u003e map \u003d new WeakHashMap\u0026lt;Object, String\u003d\"\"\u003e();\nObject obj \u003d new Object(); // создаём объект\nmap.put(obj, \"object\"); // кладём его в мапу\nSystem.out.println(map.size()); // в мапе один элемент\nobj \u003d null; // чистим ссылку\nSystem.gc(); // играемся со сборщиком мусора\nSystem.runFinalization();\nSystem.out.println(map.size()); // мапа должна стать пустой\n\u003c/object,\u003e\u003c/object,string\u003e\n\u003c/code\u003e\u003c/pre\u003e","about":{"@type":"Question","@id":"https://codegalaxy.io/courses/java-ru/questions/9aea134c68ff4a639ffef310a675fbc8/iz-kakoj-struktury-dannyh-sborshchik-musora-udalit-vse-elementy-u-kotoryh-ischez"},"upvoteCount":1,"dateCreated":"2020-02-06"},{"@type":"Answer","@id":"https://codegalaxy.io/courses/java-ru/questions/9aea134c68ff4a639ffef310a675fbc8/iz-kakoj-struktury-dannyh-sborshchik-musora-udalit-vse-elementy-u-kotoryh-ischez#20014","url":"https://codegalaxy.io/courses/java-ru/questions/9aea134c68ff4a639ffef310a675fbc8/iz-kakoj-struktury-dannyh-sborshchik-musora-udalit-vse-elementy-u-kotoryh-ischez#20014","text":"WeakHashMap","dateCreated":"2020-02-06","upvoteCount":1}],"suggestedAnswer":[{"@type":"Answer","@id":"https://codegalaxy.io/courses/java-ru/questions/9aea134c68ff4a639ffef310a675fbc8/iz-kakoj-struktury-dannyh-sborshchik-musora-udalit-vse-elementy-u-kotoryh-ischez#20012","url":"https://codegalaxy.io/courses/java-ru/questions/9aea134c68ff4a639ffef310a675fbc8/iz-kakoj-struktury-dannyh-sborshchik-musora-udalit-vse-elementy-u-kotoryh-ischez#20012","text":"HashMap","dateCreated":"2020-02-06","upvoteCount":0},{"@type":"Answer","@id":"https://codegalaxy.io/courses/java-ru/questions/9aea134c68ff4a639ffef310a675fbc8/iz-kakoj-struktury-dannyh-sborshchik-musora-udalit-vse-elementy-u-kotoryh-ischez#20013","url":"https://codegalaxy.io/courses/java-ru/questions/9aea134c68ff4a639ffef310a675fbc8/iz-kakoj-struktury-dannyh-sborshchik-musora-udalit-vse-elementy-u-kotoryh-ischez#20013","text":"LinkedHashMap","dateCreated":"2020-02-06","upvoteCount":0},{"@type":"Answer","@id":"https://codegalaxy.io/courses/java-ru/questions/9aea134c68ff4a639ffef310a675fbc8/iz-kakoj-struktury-dannyh-sborshchik-musora-udalit-vse-elementy-u-kotoryh-ischez#20015","url":"https://codegalaxy.io/courses/java-ru/questions/9aea134c68ff4a639ffef310a675fbc8/iz-kakoj-struktury-dannyh-sborshchik-musora-udalit-vse-elementy-u-kotoryh-ischez#20015","text":"IdentityHashMap","dateCreated":"2020-02-06","upvoteCount":0}]}