powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Передача параметров по ссылке и по значению
5 сообщений из 5, страница 1 из 1
Передача параметров по ссылке и по значению
    #38592416
Mr.Genius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет!)

Список тупых вопросов неискореним, но, всё же, попрошу внимания.

В Java объекты всегда передаются по ссылке, а примитивы - по значению Ok!

Пример:

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
     public static void main(String... args) {
        StringBuilder s1 = new StringBuilder("aaa");
        StringBuilder s2 = new StringBuilder("bbb");

        System.out.println("s1: " + s1);
        System.out.println("s2: " + s2);
        System.out.println();

        method(s1, s2);

        System.out.println("s1: " + s1);
        System.out.println("s2: " + s2);
    }

    public static void method(StringBuilder arg1, StringBuilder arg2) {
        StringBuilder temp = arg1;
        arg1 = arg2;
        arg2 = temp;
    }



Выводит:

s1: aaa
s2: bbb

s1: aaa
s2: bbb


Вопрос: почему не выводит вот это?

s1: aaa
s2: bbb

s1: bbb
s2: aaa
...
Рейтинг: 0 / 0
Передача параметров по ссылке и по значению
    #38592421
Сергей Арсеньев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mr.Genius,

То что Вы поменяли локальные переменные со ссылками в стеке метода method, ну никак не может повлиять на локальные переменные со ссылками метода main. А значения по этим ссылкам вы не меняли.
...
Рейтинг: 0 / 0
Передача параметров по ссылке и по значению
    #38592423
Фотография Паша01
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Согласен, то что ты на объект, содержащий aaa указал новые ссылки, никак не влияет на первоначальные ссылки. Просто теперь на это aaa будут указывать 2 ссылки с разными областями видимости. С bbb тоже самое.
...
Рейтинг: 0 / 0
Передача параметров по ссылке и по значению
    #38592425
Mr.Genius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей Арсеньев, хорошо.

А например если мы немного изменим method():

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
public static void main(String... args) {
        StringBuilder s1 = new StringBuilder("aaa");
        StringBuilder s2 = new StringBuilder("bbb");

        System.out.println("s1: " + s1);
        System.out.println("s2: " + s2);
        System.out.println();

        method(s1, s2);

        System.out.println("s1: " + s1);
        System.out.println("s2: " + s2);
    }

    public static void method(StringBuilder arg1, StringBuilder arg2) {
        arg1.append("xxx");
    }



выводится

s1: aaa
s2: bbb

s1: aaaxxx
s2: bbb


тут мы уже изменили значение..

получается нам передаётся типа вот такой конструкции?

ссылка s1 -------> объект "aaa"

ссылка s1 (копия, передаваемая в method()) -------> тот же самый объект "aaa"

Я правильно понял?
...
Рейтинг: 0 / 0
Передача параметров по ссылке и по значению
    #38592427
Фотография Паша01
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, правильно!
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Передача параметров по ссылке и по значению
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]