[Опрос] Небольшой опрос по знанию джавы

Что будет в случае исполнения кода?

  • MyObjStorage и MyObj в мапе изменятся после того как сделать replace

    Голосов: 0 0.0%

  • Всего проголосовало
    10

jopi

Попрошайка
1,421
30
260
Сейчас сидел писал чат, и столкнулся с интересным феноменом который мне объяснили, интересно но за 4 года я впервые это вижу и только сейчас мне объяснили
Давайте так, вы сделаете выбор в опросе что будет по вашему ощущению после условия, а потом откроете ответ, в конце концов это не соревнование кто тупее кто умнее, поэтому хотелось бы увидеть кто еще из людей о таком приколе не знал

Условие:
public Map<Integer, MyObjStorage> map = new HashMap<>();

{
    this.map.put(0, new MyObjStorage(new MyObj(5)));
    MyObjStorage mos = this.map.get(0);
    mos.myObj.myInt = 2;
}

public class MyObjStorage {
    public MyObj myObj;
    public MyObj(MyObj myObj) { this.myObj = myObj; }
}

public class MyObj {
    public int myInt;
    public MyObj(int myInt) { this.myInt = myInt; }
}

Верным будет ответ 1, как мне объяснили Java(Да и не только Java, те-же Python, C#) это ссылочный язык программирования)
1624919222208.png
Что самое интересное, я думал что верным будет вариант 2 все 4 года которые я пишу код, и до этого постоянно делал replace/set
 

tox1cozZ

aka Agravaine
8,456
598
2,892
Лол, странно что ты не знал, это основы основ языка.
Из-за этого, кстати, встаёт дилемма по поводу иммутабельных коллекций: сделать-то то саму коллекцию неизменяемой легко, но чтобы она была по-настоящему неизменяемой, её элементы так же должны быть неизменяемыми. А что если в коллекции будут хранится другие коллекции? Вот так вот.
 

jopi

Попрошайка
1,421
30
260
@tox1cozZ Видимо плохо читал учебник, который всем же кто за помощью "с чего же начать" и рассылал, вот так прикол ха-ха, но походу мне придется освежить свои знания о языке, вроде умею много а про сам язык такого не знаю
 
7,099
324
1,510
А можно просто не юзать мутабельные штуки и не ебать мозг
 
Сверху