4 / 4 / 2
Регистрация: 27.03.2012
Сообщений: 142

Есть ли разница при возврате значений?

15.08.2013, 14:51. Показов 2208. Ответов 35
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
доброго времени суток
немного запутался я, вопрос: полностью ли идентичны следующие 2 функции?
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
public class Test{
  
  Test() {
  }
  
  long meth1(long l)
  {
    return 200;
  }
  
   long meth2(long l)
    {
        return l = 200;
    }
  
  public static void main(String []args){
    System.out.println("Hello World");
    
      Test val = new Test();
     ...
 
  }
}
точнее во второй присвоение на что-то влияет или если его убрать как в первой, то не скажется на функционале?
я думал что при взове например так:
Java
1
2
long b=300;
long a=val.meth2(b);
переменная b перезапишется, но вроде ничего не происходит
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
15.08.2013, 14:51
Ответы с готовыми решениями:

получение значений переменных из файла при возврате Activity на экран. правильно ли я поступаю ?
Имеется основное Activity приложения, которое ранее было перекрыто другим Activity (настройками), когда оно возвращается на экран - нужно...

Есть ли разница в способах присвоения значений аргументам функции?
В разных источниках наблюдал такую запись заданий аргументов. Например: Private Sub Form_Load() MsgBox Sum(2, 3) Unload Me ...

Есть ли принципиальная разница при обучении?
Здравствуйте, У меня стоит Ubuntu Desktop 14.04 -- хочу установить на него LAMP веб-сервер. Я нашел неплохое обучающее видео, но оно было...

35
любитель покушать
 Аватар для Севак
687 / 641 / 248
Регистрация: 25.09.2011
Сообщений: 1,313
15.08.2013, 14:54
EDIsaev, вы никаким образом не сможете поменять значение переданной в метод переменной
0
Эксперт Java
 Аватар для turbanoff
4094 / 3828 / 745
Регистрация: 18.05.2010
Сообщений: 9,331
Записей в блоге: 12
15.08.2013, 14:55
Цитата Сообщение от EDIsaev Посмотреть сообщение
полностью ли идентичны следующие 2 функции?
Да
Цитата Сообщение от EDIsaev Посмотреть сообщение
если его убрать как в первой, то не скажется на функционале?
Нет не скажется.

В Java параметры всегда передаются по значению.
0
4 / 4 / 2
Регистрация: 27.03.2012
Сообщений: 142
15.08.2013, 15:18  [ТС]
вот спасибо
0
77 / 33 / 9
Регистрация: 04.06.2013
Сообщений: 295
17.08.2013, 23:08
Цитата Сообщение от turbanoff Посмотреть сообщение
В Java параметры всегда передаются по значению.
По значению только примитивы.
0
 Аватар для verylazy
462 / 462 / 71
Регистрация: 26.02.2013
Сообщений: 1,263
17.08.2013, 23:34
Цитата Сообщение от Care Посмотреть сообщение
По значению только примитивы.
http://docs.oracle.com/javase/... ments.html
Passing Reference Data Type Arguments

Reference data type parameters, such as objects, are also passed into methods by value. This means that when the method returns, the passed-in reference still references the same object as before. However, the values of the object's fields can be changed in the method, if they have the proper access level.
0
77 / 33 / 9
Регистрация: 04.06.2013
Сообщений: 295
17.08.2013, 23:41
Цитата Сообщение от verylazy Посмотреть сообщение
Аргументы передаются в параметры по ссылке...
0
 Аватар для verylazy
462 / 462 / 71
Регистрация: 26.02.2013
Сообщений: 1,263
17.08.2013, 23:52
помочь перевести что там написано?
0
77 / 33 / 9
Регистрация: 04.06.2013
Сообщений: 295
18.08.2013, 00:13
Цитата Сообщение от verylazy Посмотреть сообщение
помочь перевести что там написано?
Динамически выделенная память не может передоваться по значению! По значению это ЗНАЧИТ копировать объект в параметр метода.

Во 1: Если в объекте есть какие-то другие динамически выделенные объекты , то это значит копируемая память будет одинаковой и в параметре и в аргументе что может привести к фатальным ошибкам.
Во 2: Передача по значению не эффективна, так как придётся копировать весь объект (а если это какой нибудь массив?)

Добавлено через 6 минут
Цитата Сообщение от verylazy Посмотреть сообщение
помочь перевести что там написано?
Pass By Reference means the passing the address itself rather than passing the value. Pass By Value means passing a copy of the value to be passed.

Добавлено через 4 минуты
http://docs.oracle.com/javase/... ments.html
Здесь почитал и понял что тут предается по значению ССЫЛКА , а не сам объект. То есть копируется адрес ссылки и
передается в параметр.
0
 Аватар для verylazy
462 / 462 / 71
Регистрация: 26.02.2013
Сообщений: 1,263
18.08.2013, 00:16
как думаешь, что напечатается в консоли?
Java
1
2
3
4
5
6
7
8
9
10
11
12
public class Test {
    public static void main(String[] args)  {   
        String s = "huh?";
        chuckNorris(s);
        System.out.println(s);
    }
    
    static void chuckNorris (String str)
    {
        str = "fuck yeah!";
    }
}
и не нужно мне цитировать сайтик с тестами и весьма сомнительными комментариями к вопросам из тестов
1
77 / 33 / 9
Регистрация: 04.06.2013
Сообщений: 295
18.08.2013, 00:34
Цитата Сообщение от verylazy Посмотреть сообщение
как думаешь, что напечатается в консоли?
Java
1
2
3
4
5
6
7
8
9
10
11
12
public class Test {
    public static void main(String[] args)  {   
        String s = "huh?";
        chuckNorris(s);
        System.out.println(s);
    }
    
    static void chuckNorris (String str)
    {
        str = "fuck yeah!";
    }
}
и не нужно мне цитировать сайтик с тестами и весьма сомнительными комментариями к вопросам из тестов
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
public class Two extends One{
 
    
        public static void main(String[] args)  {   
             
            TestOne one = new TestOne();
            one.d = 22;
            chuckNorris(one);
            System.out.println(one.d);
        }
        
        static void chuckNorris (TestOne one)
        {
           one.d = 111;
        }
        
        
        public static class TestOne
        {
            public int d;
        }
    
}
Добавлено через 36 секунд
Почитай побольше о String...

Добавлено через 8 минут
Цитата Сообщение от verylazy Посмотреть сообщение
и не нужно мне цитировать сайтик с тестами и весьма сомнительными комментариями к вопросам из тестов
Тут не каких тестов не надо что бы это понять...
0
 Аватар для mutagen
2587 / 2260 / 257
Регистрация: 14.09.2011
Сообщений: 5,185
Записей в блоге: 18
18.08.2013, 12:54
Горячие парни я ваш спор разрешу )))

значение примитива что? это его значение (какая приятная тавтология) )))
а значение обьекта что? это его адрес - вот адрес и передаётся в метод и теперь внимание магия ! - если объект мутабельный то можно изменить его состояние внутри метода и выглядеть будет это поведение какбудто он был передан по ссылке, но если объект иммутабельный, то изменить его состояние вам не удастся как и у примитива
0
77 / 33 / 9
Регистрация: 04.06.2013
Сообщений: 295
18.08.2013, 14:30
Цитата Сообщение от mutagen Посмотреть сообщение
Горячие парни я ваш спор разрешу )))

значение примитива что? это его значение (какая приятная тавтология) )))
а значение обьекта что? это его адрес - вот адрес и передаётся в метод и теперь внимание магия ! - если объект мутабельный то можно изменить его состояние внутри метода и выглядеть будет это поведение какбудто он был передан по ссылке, но если объект иммутабельный, то изменить его состояние вам не удастся как и у примитива
Мы тут говорили об передаче объекта в параметр , а не о том "можно его изменять или нет".
Как я понял из ссылки verylazy , передается не ссылка на объект , а ССЫЛКА НА УКАЗАТЕЛЬ объекта. А в этом указателе уже содержится ссылка на объект.

Добавлено через 2 минуты
То есть копируется указатель а не ссылка.
0
 Аватар для verylazy
462 / 462 / 71
Регистрация: 26.02.2013
Сообщений: 1,263
18.08.2013, 14:30
в той ссылке на сайт оракла английским по белому написано, что передается by value (по значению, точка!)
а дальше уже идет объяснение как это так получается

я знаю что by value это значит что передается адрес объекта, но человек просто прицепился к словам оппонента в этом топике выше и я решил слегка потроллить
0
77 / 33 / 9
Регистрация: 04.06.2013
Сообщений: 295
18.08.2013, 14:34
Цитата Сообщение от verylazy Посмотреть сообщение
by value
"по значению", by reference == "по ссылке"
0
 Аватар для verylazy
462 / 462 / 71
Регистрация: 26.02.2013
Сообщений: 1,263
18.08.2013, 14:36
Цитата Сообщение от Care Посмотреть сообщение
"по значению", by reference == "по ссылке"
тебе уже вообще нечего сказать, да, к чему это было? ты перечишь Хорстаму и офф докам на сайте Оракла, но тем не менее продолжаешь талдычить одно и тоже
0
77 / 33 / 9
Регистрация: 04.06.2013
Сообщений: 295
18.08.2013, 18:10
Цитата Сообщение от verylazy Посмотреть сообщение
тебе уже вообще нечего сказать, да, к чему это было? ты перечишь Хорстаму и офф докам на сайте Оракла, но тем не менее продолжаешь талдычить одно и тоже
Ок ! Передавай объекты по значению ведь там так написанно. Объекты по значению могут передаваться только так:

Object obj = new Obejct();
Object o = obj.copy();

Передавай так и будет тебе счастье передачи "by value".

Добавлено через 1 минуту
Цитата Сообщение от verylazy Посмотреть сообщение
тебе уже вообще нечего сказать, да, к чему это было? ты перечишь Хорстаму и офф докам на сайте Оракла, но тем не менее продолжаешь талдычить одно и тоже
Я тебе предоставил пример который доказывает обратно, а именно что объекты передаются по ссылке.
Предоставь мне пример что это не так.

Добавлено через 3 часа 26 минут
Вот кому интересно нашел в нете вот такое обсуждение:
http://www.quizful.net/intervi... ence-value
0
 Аватар для mutagen
2587 / 2260 / 257
Регистрация: 14.09.2011
Сообщений: 5,185
Записей в блоге: 18
18.08.2013, 18:59
Цитата Сообщение от Care Посмотреть сообщение
Вот кому интересно нашел в нете вот такое обсуждение:
http://www.quizful.net/intervi... ence-value
если вы глянете в каменты, то там автору популярно объяснили что он неправ )
0
77 / 33 / 9
Регистрация: 04.06.2013
Сообщений: 295
18.08.2013, 19:10
Цитата Сообщение от mutagen Посмотреть сообщение
если вы глянете в каменты, то там автору популярно объяснили что он неправ )
Наверно я слепой... можете сюда скопипастить ? ото не нахожу...
0
 Аватар для mutagen
2587 / 2260 / 257
Регистрация: 14.09.2011
Сообщений: 5,185
Записей в блоге: 18
18.08.2013, 19:51
http://www.quizful.net/intervi... 3803711684
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
18.08.2013, 19:51
Помогаю со студенческими работами здесь

Есть ли разница в IP при платных ссылках
Есть несколько сайтов которые висят на одной айпишке. На всех них стоит ссылка на мой сайт. Так вот эти ссылки имели бы больший вес для...

Есть разница при DLLImport портируем мы процедуру или функцию
Пытаюсь сделать импорт из DLL Delphi. Все работает, но выводит значение nan. и тут случайно заметила что портирую процедуру, а они же не...

Есть ли существенная разница при использовании PCI-E 16X или 8X?
Вопрос состоит в следующем. Нигде, ни в каких тестах не могу найти, есть ли существенная разница при использовании PCI-E 16X или 8X. Почему...

Есть ли разница при расчете регрессии в положении переменной AB или BA
Привет считаю линейную регрессию между двумя временными рядами подскажите - есть ли разница какой ряд идет первым. Вопрос из за того...

Есть ли разница в трафике при просмотре видео с компьютера и при просмотре через удаленный экран?
Например, есть видео на ютуб, мы его посмотрели и у нас израсходовалось определенное количество трафика. Будет ли разница в трафике,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

Новые блоги и статьи
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 30.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru