Форум программистов, компьютерный форум, киберфорум
Java
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
4 / 4 / 2
Регистрация: 27.03.2012
Сообщений: 142

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

15.08.2013, 14:51. Показов 2371. Ответов 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
77 / 33 / 9
Регистрация: 04.06.2013
Сообщений: 295
18.08.2013, 20:08
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от mutagen Посмотреть сообщение
http://www.quizful.net/interview/jav...30213803711684
мм ?)
Если вы про это:

Цитата Сообщение от allocator Посмотреть сообщение
Абсолютно верно, грубо говоря программист получает два вида передачи сущности: примитивы передаются по значению (копируется его значение), и ссылки на объект тоже передаются по значению (копируется значение самой ссылки на тот же самый объект). Те ссылки две объект один. В методе изменить объект через переданную ссылку возможно, а вот изменение значения ссылки никакого результата не принесет!
То я тоже самое и имел ввиду. Копируется ссылка , а не объект. Если копировался объект то это уже 100% "by value" , а тут получается какой-то "reference by value". Просто они так называют (разрабы Java) передачу по ссылке. В с++ это называется взятием адреса... что равно передаче по ссылке.

Добавлено через 1 минуту
Ссылка == Адрес объекта в памяти. Я ведь правильно понимаю?
0
 Аватар для mutagen
2587 / 2260 / 257
Регистрация: 14.09.2011
Сообщений: 5,185
Записей в блоге: 18
18.08.2013, 20:22
Цитата Сообщение от Care Посмотреть сообщение
Ссылка == Адрес объекта в памяти. Я ведь правильно понимаю?
ответьте сначала на вопрос, что является значением инстанса?
0
77 / 33 / 9
Регистрация: 04.06.2013
Сообщений: 295
18.08.2013, 20:30
Цитата Сообщение от mutagen Посмотреть сообщение
ответьте сначала на вопрос, что является значением инстанса?
Что вы подразумеваете под "инстансом" ? Экземпляр класса, экземпляр файла ? Не понятно инстансом чего?
0
 Аватар для mutagen
2587 / 2260 / 257
Регистрация: 14.09.2011
Сообщений: 5,185
Записей в блоге: 18
18.08.2013, 20:35
Вы читали спецификацию на английском?
Есть Class и его instance (по народному объект в памяти)
0
77 / 33 / 9
Регистрация: 04.06.2013
Сообщений: 295
18.08.2013, 20:48
Цитата Сообщение от mutagen Посмотреть сообщение
Вы читали спецификацию на английском?
Есть Class и его instance (по народному объект в памяти)
Ну я это понимаю, просто у instance прямой перевод экземпляр.

Добавлено через 4 минуты
Цитата Сообщение от mutagen Посмотреть сообщение
ответьте сначала на вопрос, что является значением инстанса?
Тут я не понял вопроса. Как понять значение инстанса (объекта,эземпляра)?

Добавлено через 4 минуты

Не по теме:

вернусь через 15 минут ))

0
4 / 4 / 2
Регистрация: 27.03.2012
Сообщений: 142
18.08.2013, 20:53  [ТС]
Очень интересный у вас развился спор, послежу ещё )
но к моему случаю это же не отностится как я понял, да? или при "корректном" вызове может аукнуться?
0
 Аватар для mutagen
2587 / 2260 / 257
Регистрация: 14.09.2011
Сообщений: 5,185
Записей в блоге: 18
18.08.2013, 21:03
Цитата Сообщение от Care Посмотреть сообщение
Тут я не понял вопроса. Как понять значение инстанса (объекта,эземпляра)?
что является значением инстанса при передаче в метод как параметр?
0
77 / 33 / 9
Регистрация: 04.06.2013
Сообщений: 295
18.08.2013, 21:40
Цитата Сообщение от mutagen Посмотреть сообщение
что является значением инстанса при передаче в метод как параметр?
Инстанс вы не как не предадите в параметр, только его адрес (ссылку).

Добавлено через 6 минут
Цитата Сообщение от EDIsaev Посмотреть сообщение
Очень интересный у вас развился спор, послежу ещё )
но к моему случаю это же не отностится как я понял, да? или при "корректном" вызове может аукнуться?
Это не обязательно понимать , но полезно. Вы можете пользоваться указателем this как доступ к перекрытым переменным или для явного указания что используется метод текущего объекта и тд. Как работают методы вне Java знать не обязательно.
0
 Аватар для mutagen
2587 / 2260 / 257
Регистрация: 14.09.2011
Сообщений: 5,185
Записей в блоге: 18
18.08.2013, 22:31
Цитата Сообщение от Care Посмотреть сообщение
Инстанс вы не как не предадите в параметр, только его адрес (ссылку).
адрес верно - по значению, копированием этого значения, но не ссылку.
по этому адресу в хипе валяется объект и метод лазит туда с различными целями в зависимости от использования.

отличие в том что ссылка в терминологии С++ позволяет манипулировать памятью, адресная арифметика и тд.
в яве вы по сути получаете копию ссылки и уже в зависимости от типа класса мутабельный или имутабельный вы получаете возможность изменять состояние или не получаете
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
/**
 * @author mutagen
 */
public class MutableImmutable {
 
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        MyImmutable immutable = new MyImmutable();
        MyMutable mutable = new MyMutable();
        tryMutate(immutable);
        tryMutate(mutable);
        System.out.println("mutable = " + mutable.i);
        System.out.println("immutable = " + immutable.i);
    }
 
    static  void tryMutate(MyImmutable mi) {
//        mi.i = 100;   не получится
    }
 
    static void tryMutate(MyMutable mm) {
        mm.i = 100;
    }
 
    static final class MyImmutable {
        public final int i = 10;
    }
 
    static class MyMutable {
 
        public int i = 10;
    }
}
0
77 / 33 / 9
Регистрация: 04.06.2013
Сообщений: 295
18.08.2013, 22:54
Цитата Сообщение от mutagen Посмотреть сообщение
отличие в том что ссылка в терминологии С++ позволяет манипулировать памятью, адресная арифметика и тд.
к ссылке в с++ арифметика указателей не может применяться , только к указателям. На то она "арифметика указателей".
То что вы называете Mutable .. в с++ это называется "Константным объектом" реализуется проще чем в Java...
Но суть не в этом, а в том все таки передается Объекты в параметры по "значению" или по ссылке. Можно ли изменять состояние у объекта это уже не важно.

Добавлено через 4 минуты
Просто то что называется в с++ "копированием ссылки", в Java называется это "копированием ссылки по значению".
0
 Аватар для mutagen
2587 / 2260 / 257
Регистрация: 14.09.2011
Сообщений: 5,185
Записей в блоге: 18
18.08.2013, 23:20
и почему с++ - ники такие упёртые в свою терминологию и подходы.
Вот я например не пытаюсь натянуть своё понимание java на c++ не смотря на похожий синтаксис,
а подавляющее большинство плюсистов пытаются и при этом ругают её на чём свет стоит - что она тупая, тормозная, не мультинаслед и тд.
Что самое интересное С-шники этим совершенно не страдают.
Наверное от того что несмотря на возраст с++, для него так и не написали ничего что могло бы использоваться 10 лет без потери совместимости в новых версиях либок со старым кодом. Мне думается это от излишней свободы в языке и этим пользуются программисты стремясь как можно больше выпендриться с сложными конструкциями и тем самым делая свой код бабочкой однодневкой. Вон и Столлман уже обсирал с++.
0
77 / 33 / 9
Регистрация: 04.06.2013
Сообщений: 295
18.08.2013, 23:33
Цитата Сообщение от mutagen Посмотреть сообщение
и почему с++ - ники такие упёртые в свою терминологию и подходы.
Вот я например не пытаюсь натянуть своё понимание java на c++ не смотря на похожий синтаксис,
а подавляющее большинство плюсистов пытаются и при этом ругают её на чём свет стоит - что она тупая, тормозная, не мультинаслед и тд.
Что самое интересное С-шники этим совершенно не страдают.
Наверное от того что несмотря на возраст с++, для него так и не написали ничего что могло бы использоваться 10 лет без потери совместимости в новых версиях либок со старым кодом. Мне думается это от излишней свободы в языке и этим пользуются программисты стремясь как можно больше выпендриться с сложными конструкциями и тем самым делая свой код бабочкой однодневкой. Вон и Столлман уже обсирал с++.
Окей скажите тогда мне что вы представляете под :
Передача по значению и Передача по ссылке.

Не по теме:

Если бы не было с++, то не было бы и java. и сам я не сиплюсплюсник пока) просто то что в Java было для меня черным ящиком, в с++ стало понятно

0
 Аватар для mutagen
2587 / 2260 / 257
Регистрация: 14.09.2011
Сообщений: 5,185
Записей в блоге: 18
18.08.2013, 23:40
Цитата Сообщение от Care Посмотреть сообщение
просто то что в Java было для меня черным ящиком, в с++ стало понятно
внутри ява отличается от с++ так же как жираф от носорога )
почитайте про Reflection и про библиотеку asm которая позволяет на лету менять методы классов
попробуйте в с++ сделать такой трюк, подменить на лету метод в классе так чтобы все его консьюмеры стали пользоваться новым,
или залезть в обьект и подменить ему приватный проперти на другой обьект в рантайме

Не по теме:

про ссылки я уже подустал, дальше эта тема без меня )

0
77 / 33 / 9
Регистрация: 04.06.2013
Сообщений: 295
18.08.2013, 23:49
Ладно короче толку нету спорить ) Лучше закрой тогда тему что бы я не заходил каждые 15 минут на форум ))

Добавлено через 7 минут
Ну "управляймые" языков свои преимущества и тд.
Что то можно сделать на java того чего нельзя сделать в с++ (хотя я читал что в с++ рефлексия достигается не которыми билиотеками) . И я не говорю что Java "плохой" или "хуже" c++ и тд. Мне очень нравится язык Java, но есть такие задачи которые средствами Java решать не выгодно. Там уже нужно пользоваться языками более "низкого" уровня, а не пихать куда не попадя управляймые языки. Если бы все можно было бы решить только Java'ой я бы ваше про с++ и не думал)
0
 Аватар для mutagen
2587 / 2260 / 257
Регистрация: 14.09.2011
Сообщений: 5,185
Записей в блоге: 18
18.08.2013, 23:52
Цитата Сообщение от Care Посмотреть сообщение
Ладно короче толку нету спорить ) Лучше закрой тогда тему что бы я не заходил каждые 15 минут на форум ))
Надеюсь вы не думаете что я пишу тут лично для вас )))
Форум читает множество людей.
Почитав наш диалог, некоторые возможно избавятся от граблей в будущем.
Вам я вижу моя помощь ни к чему )))
Спасибо за весёлый диалог - тут временами скучно, вы освежили форум.

Не по теме:

по поводу закрытия темы, я решу когда пора - без вашей помощи

1
77 / 33 / 9
Регистрация: 04.06.2013
Сообщений: 295
18.08.2013, 23:59
Цитата Сообщение от mutagen Посмотреть сообщение
Надеюсь вы не думаете что я пишу тут лично для вас )))
Форум читает множество людей.
Почитав наш диалог, некоторые возможно избавятся от граблей в будущем.
Вам я вижу моя помощь ни к чему )))
Спасибо за весёлый диалог - тут временами скучно, вы освежили форум.

Не по теме:

по поводу закрытия темы, я решу когда пора - без вашей помощи

ок)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
18.08.2013, 23:59

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
36
Ответ Создать тему
Новые блоги и статьи
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru