Запитання з тегом «weak-references»

Слабке посилання - це посилання, яке не претендує на право власності. Слабке посилання зберігає посилання на об'єкт, про який йде мова, поки він знаходиться в пам'яті, але не заважає системі управління пам'яттю відновити пов'язану пам'ять, коли об'єкт, на який посилається, більше не потрібен. Багато мов мають або підтримують різні рівні слабких посилань, таких як Swift, Objective-C, Java, C #, Python, Perl та Lisp.


6
Завжди передавати слабке посилання на себе в блок в ARC?
Я трохи заплутаний у використанні блоку в Objective-C. В даний час я використовую ARC, і в моєму додатку є досить багато блоків, які завжди посилаються на selfзамість його слабкої посилання. Можливо, це є причиною збереження цих блоків selfі запобігання їх розгортанню? Питання в тому, чи слід завжди використовувати weakпосилання selfв …

7
Яка різниця між слабкою посиланням і невідомою посиланням?
Свіфт має: Сильні посилання Слабка література Невідомі посилання Чим невідома посилання відрізняється від слабкої посилання? Коли безпечно використовувати невідому посилання? Чи невідомі посилання є ризиком безпеки, як звисаючі покажчики на C / C ++?




10
Коли ви використовуєте WeakHashMap або WeakReference?
Використання слабких посилань - це те, що я ніколи не бачив втілення, тому я намагаюся розібратися, що таке приклад використання для них та як буде працювати реалізація. Коли вам потрібно було використовувати WeakHashMapабо WeakReferenceяк і як його застосовували?

9
Чи можливо створити "слабку посилання" в JavaScript?
Чи є в JavaScript можливість створити "слабку посилання" на інший об'єкт? Ось сторінка вікі з описом того, що таке слабке посилання. Ось ще одна стаття, яка описує їх на Java. Чи може хтось придумати спосіб реалізувати цю поведінку в JavaScript?

4
Розуміння довідкових класів Java: SoftReference, WeakReference та PhantomReference
Хтось може пояснити різницю між трьома довідковими класами (або опублікувати посилання на приємне пояснення)? SoftReference> WeakReference> PhantomReference, Але коли б я використовувати кожен з них? Чому є, WeakHashMapале ні SoftHashMapчи ні PhantomHashMap? І якщо я використовую наступний код ... WeakReference<String> ref = new WeakReference<String>("Hello!"); if (ref != null) { // …

4
У чому різниця між __слабким та __блоковим посиланням?
Я читаю документацію Xcode, і ось щось мене бентежить: __block typeof(self) tmpSelf = self; [self methodThatTakesABlock:^ { [tmpSelf doSomething]; }]; З документації копіюється: Блок формує сильне посилання на змінні, які він фіксує. Якщо ви використовуєте selfвсередині блоку, блок формує сильне посилання на self, тому, якщо воно selfтакож має сильне посилання …

3
Чому існує WeakHashMap, але немає WeakSet?
Від Дж. Блоха ... джерелом витоків пам'яті є слухачі ... Найкращий спосіб забезпечити, щоб зворотні виклики були негайно зібраним сміттям, - це зберігати лише слабкі посилання на них, наприклад, зберігаючи їх лише як ключі в WeakHashMap . Отже, чому у фреймворку Java Collections немає жодного WeakSet ?

11
Чому ключове слово „слабкий” може застосовуватися лише до типів протоколів класів та класів
Коли я оголошую змінні як weakу Swift, я іноді отримую повідомлення про помилку від Xcode: "слабкий" може застосовуватися лише до типів протоколів класу та класів Мені просто цікаво, чому ключове слово weakможе застосовуватися лише до класів і типів протоколів, пов’язаних із класами? У чому причина цього?

2
OutOfMemoryException, незважаючи на використання WeakHashMap
Якщо не зателефонувати System.gc(), система викине OutOfMemoryException. Я не знаю, чому мені потрібно System.gc()явно дзвонити ; JVM повинен зателефонувати gc()собі, правда? Порадьте, будь ласка. Наступний мій тестовий код: public static void main(String[] args) throws InterruptedException { WeakHashMap<String, int[]> hm = new WeakHashMap<>(); int i = 0; while(true) { Thread.sleep(1000); i++; …
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.