TGViewer
Channel Public Channel
Java Developer

Java Developer

@java_developer

MAKE JAVA GREAT AGAIN

Мемы: @java_memes
Subscribers
6.35K
Photos
235
Videos
8
Links
279

Showing posts older than #891 · Back to latest

Older Posts 19 shown
Post #887 26.5K
Post #883 15.5K
Наконец-то! Теперь в новой версии IntelliJ IDEA после открытия проекта не нужно ждать две недели пока он проиндексируется.

Ещё JetBrains улучшили новый интерфейс. Например, есть комппактный режим, который будет полезен для тех, кто прогает за маленькими экранами. Плюс добавили ускоренный импорт Maven-проектов, фоновые проверки коммитов и прочие приятности
Post #882 22.5K
Ответ: "test"
Способ вычисления хэша map, set, list - это часть контракта соответствующих интерфейсов. Каждая реализация должна использовать формулу, указанную в контракте. Поэтому поведение будет общим для всех JDK.
Посмотрим теперь, какой же контракт и конкретные формулы для подсчета хеша у мапы.

"The hash code of a map is defined to be the sum of the hash codes of each entry in the map's entrySet() view."

Посмотрим, как вычисляется хешкод у Map.Entry:
"The hash code of a map entry e is defined to be:
(e.getKey()==null ? 0 : e.getKey().hashCode()) ^
(e.getValue()==null ? 0 : e.getValue().hashCode())"

Зная это, мы можем посчитать хешкод нашей мапы: он будет равен 0. Почему? Так как у единственной Map.Entry совпадают значения ключа и значения, то их хешкоды будут совпадать, а значит хешкод Map.Entry будет равен 0 (XOR двух одинаковых чисел дает всегда 0).
После добавления второго Map.Entry хешкод останется равным 0, так как там тоже совпадают значения ключа и значения. Повезло, повезло.
В итоге при вызове метод get будет искать Map.Entry в нужном бакете и, встретив нужную ноду, вызовет equals, который вернет true, так как при вставке значение ключа не копируется, и он будет отображать все изменения, которые с ним происходили.

Естественно, изменять ключ после вставки в HashMap крайне не рекомендуется, иначе потом можно его не найти. Но в данном конкретном случае нам повезло, что хешкод не изменился.
Post #877 15.1K
https://www.youtube.com/watch?v=Au3z_kQd9QY
Предложения Брайана Гётца, которые упростят вход для начинающих джавистов.
1. Безымянные классы (весь файл кроме импортов по сути описание некого класса)
2. Упрощение сигнатуры метода main. модификаторы (public static), входные аргументы (String[] args) - опциональны
3. Автоматический импорт некоторых статических методов из jdk (println, readln).

Все это приведет к тому, что ребята, которые только учатся программировать, не офигеют от написания самой простой программы на Java, а постепенно смогут изучать концепты.
Post #876 13K
Java Developer рубрика "нерегулярные заметки" Как удалить все локальные ветки #Git git branch --merged | grep -v \* | xargs git branch -D
  • ❤ 2
Post #874 12.7K

Forwarded from microJUG (Zheka Kozlov)

🤯 Данный код является валидным кодом на Java 19+ и компилируется.

Почему так:
1. Первый When – это имя класса.
2. Второй when – имя переменной (имеет тип When).
3. Третий when – это новое ключевое слово в Java 19, которое является контекстно-зависимым.
4. Четвёртый when – это имя переменной, которая была объявлена (см. пункт 2).
5. Пятый when() – метод класса When, возвращающий boolean.
6. Шестой when() – метод текущего класса.

#java19
Post #872 13.4K
рубрика "нерегулярные заметки"

Как удалить все локальные ветки #Git

git branch --merged | grep -v \* | xargs git branch -D
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →