Podczas debugowania kodu Java za pomocą środowiska Eclipse dla zmiennych kolekcji zobaczyłem element modcount
. Co to znaczy?Co oznacza zmienna modcount podczas debugowania kolekcji
Odpowiedz
Wiele kolekcji Java tworzy iteratory "fail-fast", co oznacza, że jeśli kolekcja zostanie zmieniona po utworzeniu iteratora, iterator zostanie unieważniony i jak najszybciej wyrzuci numer ConcurrentModificationException
. (W porównaniu do niepowodzenia później lub zwracania nieprawidłowych danych.)
Aby wspomóc tę funkcję, kolekcja musi śledzić, czy została zmodyfikowana. Za każdym razem, gdy kolekcja jest zmieniana, wzrasta ona o modcount
. Gdy kolekcja tworzy iterator, iterator przechowuje wartość modcount
od momentu jej utworzenia. Następnie za każdym razem, gdy spróbujesz użyć iteratora, sprawdza, czy jego zapisany modcount
jest inny niż bieżący zbiór kolekcji rodzica modcount
; jeśli tak, iterator kończy się niepowodzeniem z ConcurrentModificationException
.
(Wyjątkiem od tej zasady jest to, że zmiany w kolekcji wykonane przez samego iteratora (jak remove
metody iteracyjnej) nie zmieniają faktu iterator).
- 1. Co oznacza (+ var) oznacza
- 2. co oznacza program sterownika?
- 3. Co oznacza <E> w kolekcji <E>?
- 4. Zmienna nie istnieje w bieżącym kontekście podczas debugowania
- 5. VS 2015 Update 2 - Zmienna nie istnieje podczas debugowania, dlaczego?
- 6. Co oznacza "nowa (i zmienna) wartość" w C++ czy?
- 7. Co oznacza składnia "zmienna // = wartość" w języku Python?
- 8. Co oznacza $ {VARIABLE + set}?
- 9. Co oznacza -1. # IND000 w oknie debugowania Visual Studio?
- 10. Co oznacza xmlns = "" dokładnie oznacza
- 11. Co oznacza słowo wirtualne podczas przesłaniania metody?
- 12. Podczas debugowania z IntelliJ IDEA, co oznaczają różne zmienne kolory?
- 13. Co ten kod oznacza
- 14. Co znaczy: co oznacza?
- 15. Co oznacza = *?
- 16. Co oznacza "::"?
- 17. co oznacza „$ &” oznacza w Ruby
- 18. Co oznacza "$$ q" w Perlu?
- 19. Co oznacza "bez głowy"?
- 20. Co oznacza skrót IDC?
- 21. Windbg lm: co oznacza "odroczony"?
- 22. Co to jest rc oznacza
- 23. Co to jest "zmienna wolna"?
- 24. Co oznacza to stwierdzenie Pythona?
- 25. Co oznacza podpisanie ClickOnce?
- 26. Co oznacza "Weatherman publicznych (Integer ... zamki błyskawiczne) {" oznacza w java
- 27. Co robiła zmienna $ * Perla?
- 28. co znaczy zmienna __file__?
- 29. Nie można wyświetlić wartości zmiennych podczas debugowania
- 30. Co oznacza 0x0F? A co oznacza ten kod?
dzięki za tym naprawdę dobre wytłumaczenie. Wiedziałem, że zrobił coś takiego, ale nie szczegółowe – moeTi
Bardzo dobre wyjaśnienie. Teraz ma sens. –
kod: http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/6-b14/java/util/ArrayList.java#ArrayList.ListItr – roottraveller