Странное значение ключа и значения при отладке в исходном коде хэш-карты - PullRequest
0 голосов
/ 11 июля 2020

Когда мы помещаем отладчик в исходный код хэш-карты Java 8 в строке ниже, я вижу какое-то странное значение для ключа и значения, например «file: /// C: / Program% 20Files / Java / jdk1.8.0_201 / jre / lib / ext / jaccess.jar ". Насколько я понимаю, какое бы значение я ни ставил, я должен получить его во время отладки.

Более того, когда я попробовал на одном из компьютеров моих коллег, значение ключа в режиме отладки было другим.

final V putVal(int hash, K key, V value, boolean onlyIfAbsent,
                   boolean evict) {

1 Ответ

1 голос
/ 11 июля 2020

Когда вы устанавливаете точку останова внутри библиотечной функции, вы будете получать прерывание отладчика при каждом ударе. Это включает в себя код из библиотеки Java, который использует HashMap для своей работы, и logi c. Это не неожиданно. Если вы посмотрите на стек вызовов, вы увидите, что он связан с каким-то кодом библиотеки, вызывающим методы HashMap. code и с помощью «шага внутрь» введите код HashMap из вызовов HashMap (вам может потребоваться dis способные пошаговые фильтры, если они есть в вашем отладчике)

...