Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Java: value, by value, reference, parameter, methods

В чем разница передачи параметров по ссылке и значению?

Этот вопрос проверяет понимание механизма передачи параметров в методы Java и способность объяснить разницу между примитивными типами и объектами в контексте методов.

Короткий ответ

В Java параметры всегда передаются по значению, но для объектов это значение — ссылка. Если метод изменяет объект, это изменение видно и за пределами метода. Однако переназначение ссылки внутри метода не влияет на исходную ссылку.

Длинный ответ

Java использует механизм передачи параметров по значению. Это означает:

  • Примитивные типы: передается копия значения. Изменения внутри метода не затрагивают оригинальную переменную.

  • Ссылочные типы (объекты): передается копия ссылки на объект. Изменение состояния объекта внутри метода влияет на оригинальный объект, но если вы переназначаете ссылку, это не изменит исходный объект.

Пример для примитивного типа:

public static void main(String[] args) {
    	int x = 5;
    	changeValue(x);
    	System.out.println(x); // Все еще 5
}

static void changeValue(int num) {
    	num = 10; // Изменение копии, не оригинала
}

Пример для объекта:

public static void main(String[] args) {
    	StringBuilder sb = new StringBuilder("Hello");
    	changeValue(sb);
    	System.out.println(sb); // "Hello, World!"
}

static void changeValue(StringBuilder str) {
    	str.append(", World!");
}

В каких случаях использовать:

  • Примитивы: когда требуется небольшая память и высокое быстродействие, например, при выполнении простых арифметических операций.

  • Ссылочные типы: когда нужно работать с большим количеством данных, управлять сложным состоянием или передавать объект, чтобы изменить его состояние.

  • Аватар

    Android Guru

    Anton Gulyaev

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.

Уровень

  • Рейтинг:

    2

  • Сложность:

    3

Навыки

  • Java

    Java

Ключевые слова

#value

#by value

#reference

#parameter

#methods

Подпишись на Java Developer в телеграм

  • Аватар

    Android Guru

    Anton Gulyaev

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.