Size: a a a

Java/Kotlin and more

2021 January 13

V

Vlad in Java/Kotlin and more
Edem Injection
типо оно не шарит как нал представить
Оно шарит как раз таки,  просто у тебя будет запись вида "key" :
источник

V

Vlad in Java/Kotlin and more
Следовательно его просто не пишет
источник

AE

Alexandr Emelyanov in Java/Kotlin and more
Edem Injection
ты скажи к чему ты ведешь, зачем говорить загадками
Ты читал вообще что то про базу эту? Про nosql? Про документориентированные базы?

Там четко и ясно написано что хранится json документ, соответственно в зависимости от сериализации null поле будет включено в итоговый json или нет
источник

AE

Alexandr Emelyanov in Java/Kotlin and more
Видимо у тебя настроено не сериализовать null поля
источник

V

Vlad in Java/Kotlin and more
Вопрос знатокам,  при new String(""),  создается ли литерал сразу в пуле?  Или нужен intern? Есть ли зарница до и после java 8,  и что будет,  если в пуле уже есть такой литерал?
источник

AE

Alexandr Emelyanov in Java/Kotlin and more
Vlad
Вопрос знатокам,  при new String(""),  создается ли литерал сразу в пуле?  Или нужен intern? Есть ли зарница до и после java 8,  и что будет,  если в пуле уже есть такой литерал?
У тебя будет литерал "" в пуле и он же передастся в конструктор, при этом создастся новый объект пустой строки, соответственно в переменной и пуле будут разные объекты
источник

V

Vlad in Java/Kotlin and more
Alexandr Emelyanov
У тебя будет литерал "" в пуле и он же передастся в конструктор, при этом создастся новый объект пустой строки, соответственно в переменной и пуле будут разные объекты
Литерал не обязатель "",  может быть рандомный,  просто нету точной инфы
источник

AE

Alexandr Emelyanov in Java/Kotlin and more
Vlad
Литерал не обязатель "",  может быть рандомный,  просто нету точной инфы
Какой точной?
источник

V

Vlad in Java/Kotlin and more
Скажем "gfd"
источник

AE

Alexandr Emelyanov in Java/Kotlin and more
Литерал да, любой
источник

V

Vlad in Java/Kotlin and more
В некоторых источниках пишется,  что мы получим литерал в пуле с ходу и на этот литерал из хипа ссылается наш объект.  В некоторых,  что надо делать интерн.  Но нигде не сказано,  что произойдет,  если через new string создать уже имеющийся в пуле литерал
источник

SB

Sergey Batsura in Java/Kotlin and more
Vlad
В некоторых источниках пишется,  что мы получим литерал в пуле с ходу и на этот литерал из хипа ссылается наш объект.  В некоторых,  что надо делать интерн.  Но нигде не сказано,  что произойдет,  если через new string создать уже имеющийся в пуле литерал
В книге effective Java есть пример. Правильный ответ дал @lex_it  выше
источник

V

Vlad in Java/Kotlin and more
Sergey Batsura
В книге effective Java есть пример. Правильный ответ дал @lex_it  выше
Благодарю за книгу
источник

RS

Ruslan Stelmachenko in Java/Kotlin and more
А зачем вообще такое запоминать? В каждой JVM поведение теоретически может отличаться. Даже само существование пула - это же просто оптимизация. Вот "люблю" такие вопросы на собеседованиях. Как будто хоть раз за всю карьеру кто-то, кроме разработчиков JVM, это знание хоть как-то использовал. :)
источник

RS

Ruslan Stelmachenko in Java/Kotlin and more
Если такое знание правда в какой-то момент понадобится для конкретной JVM, то я на этой конкретной JVM сделаю:

        System.out.println("" == "");
       System.out.println("" == new String(""));
       System.out.println(new String("") == new String(""));


На 11-й у меня сейчас так:

true
false
false
источник

V

Vlad in Java/Kotlin and more
Ruslan Stelmachenko
А зачем вообще такое запоминать? В каждой JVM поведение теоретически может отличаться. Даже само существование пула - это же просто оптимизация. Вот "люблю" такие вопросы на собеседованиях. Как будто хоть раз за всю карьеру кто-то, кроме разработчиков JVM, это знание хоть как-то использовал. :)
Ответ в  вопросе)  в любом собесе не на джуниор позицию ответ "ну так мы создадим новую строку"  не годится.  Просто если ты знаешь всю цепочку и как это точно реализованно,  у интервьэра думаю отпадут вопросы по стрингам.
источник

VS

Vitaly Sirotkin in Java/Kotlin and more
Да это туфтовый вопрос
источник

VS

Vitaly Sirotkin in Java/Kotlin and more
Потому что оптимизация конкретной виртуальной машины. На хотспоте у тебя есть стринговый пул, на каком нибудь другом может не быть
источник

VS

Vitaly Sirotkin in Java/Kotlin and more
У айбиэм была машина без гарбаж коллектора например
источник

RS

Ruslan Stelmachenko in Java/Kotlin and more
Vlad
Ответ в  вопросе)  в любом собесе не на джуниор позицию ответ "ну так мы создадим новую строку"  не годится.  Просто если ты знаешь всю цепочку и как это точно реализованно,  у интервьэра думаю отпадут вопросы по стрингам.
уже много лет, как не джуниор, но если мне зададут такой вопрос, я на него не отвечу. потому что даже проверив прямо сейчас это поведение, завтра я уже забуду результат) запоминается то, что используется на практике. ненужные знания вытесняются оооочень быстро. даже то, что использовал на практике много лет, а потом пару лет не используешь - быстро забывается.
источник