Maison > interface Web > js tutoriel > Introduction détaillée à l'appel par valeur et à l'appel par référence de Java

Introduction détaillée à l'appel par valeur et à l'appel par référence de Java

不言
Libérer: 2019-03-16 10:41:47
avant
3801 Les gens l'ont consulté

Cet article vous apporte une introduction détaillée à l'appel par valeur et à l'appel par référence de Java. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer. .

Le sujet est le suivant :

Introduction détaillée à lappel par valeur et à lappel par référence de Java

Deux façons de passer des paramètres en Java

  1. appel par valeur (transfert de valeur) : passé Est la valeur (pour les types de données de base), par exemple en passant une valeur entière. En fait, dans une méthode d'appel de méthode passée par valeur, les paramètres ne sont qu'une copie des paramètres réels.
  2. Appel par référence : ce qui est passé est une référence à l'objet (pour l'objet), c'est-à-dire que ce qui est passé est l'adresse de l'objet. En fait, lorsqu'une référence est passée, une nouvelle copie de la référence sera générée, et l'ancienne et la nouvelle référence pointeront vers la même adresse.

Exemple de code

public class TestJavaCallBy {

    // 测试值传递
    public static void testCallByValue(int value) {
        value *= 10;
    }

    // 测试引用传递
    public static void testCallByReference(StringBuilder sb) {
        sb.append(" - " + ZonedDateTime.now());
    }

    public static void main(String[] args) {

        // 测试值变量
        int param = 1;
        // 测试引用对象
        StringBuilder sb = new StringBuilder("666");

        // 测试
        System.out.println(param);
        testCallByValue(param);
        System.out.println(param);

        System.out.println(sb.toString());
        testCallByReference(sb);
        System.out.println(sb.toString());
    }
}

控制台输出结果
1
// 结果仍为1,因为参数传递的是实参的一份拷贝,对实参不造成影响
1 

666
// 传递的是引用的拷贝,新旧两个引用指向同一个对象(地址),因此append操作是作用在该对象上
666 - 2019-03-16T01:25:57.933038500+08:00[Asia/Shanghai]
Copier après la connexion

Ensuite, nous pouvons tirer la conclusion :

  1. l'appel par valeur ne changera pas la valeur du paramètre réel
  2. L'appel par référence ne peut pas changer l'adresse de référence du paramètre réel
  3. L'appel par référence peut modifier le contenu du paramètre réel

Alors la réponse à cette question est la suivante .

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:segmentfault.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal