La méthode de transmission de paramètres en Java est-elle transmise par valeur ou par référence ?
En Java, les paramètres sont passés par valeur ou par référence, selon le type du paramètre.
L'exemple de code est le suivant :
public class PassByValueExample { public static void main(String[] args) { int number = 10; modifyValue(number); System.out.println("Number after method call: " + number); } public static void modifyValue(int value) { value = 20; System.out.println("Value inside method: " + value); } }
Le résultat de sortie est le suivant :
Value inside method: 20 Number after method call: 10
Dans le code ci-dessus, la méthode modifyValue
accepte un paramètre de type entier value
. Dans la méthode, modifiez la valeur de value
sur 20, puis imprimez-la. Cependant, lors de l'impression de la valeur de number
dans la méthode main
, on constate que number
est toujours 10, indiquant que la modification de la valeur du Le paramètre formel n'affectera pas la valeur réelle du paramètre. modifyValue
方法接受一个整数类型的参数value
。在方法内部,将value
的值改为20,然后打印出来。但是,在main
方法中打印number
的值时,发现number
仍然是10,说明改变形式参数的值并不会影响实际参数的值。
示例代码如下:
public class PassByReferenceExample { public static void main(String[] args) { StringBuilder name = new StringBuilder("Alice"); modifyName(name); System.out.println("Name after method call: " + name); } public static void modifyName(StringBuilder builder) { builder.append(" Smith"); System.out.println("Name inside method: " + builder); } }
输出结果如下:
Name inside method: Alice Smith Name after method call: Alice Smith
在上述代码中,modifyName
方法接受一个StringBuilder
类型的参数builder
。在方法内部,将builder
所指向的对象追加了" Smith",然后打印出来。在main
方法中打印name
时,发现name
变成了"Alice Smith",说明改变形式参数的值会影响实际参数所引用的对象的状态。
需要注意的是,虽然Java中存在引用传递的情况,但是Java并没有提供直接通过引用改变实际参数值的方式。比如,不能通过在方法中给形式参数分配新的内存地址来改变实际参数的引用。
总结起来,Java中的参数传递方式是根据参数的类型来决定的。对于基本数据类型(如int
、char
modifyName
accepte un paramètre de type StringBuilder
constructeur code>. Dans la méthode, "Smith" est ajouté à l'objet pointé par <code>builder
puis imprimé. Lors de l'impression de name
dans la méthode main
, il a été constaté que name
était remplacé par "Alice Smith", indiquant que la modification de la valeur des paramètres formels affectera les paramètres réels. L'état de l'objet référencé. 🎜🎜Il convient de noter que bien qu'il existe un passage de référence en Java, Java ne fournit pas de moyen de modifier la valeur réelle du paramètre directement via la référence. Par exemple, vous ne pouvez pas modifier la référence d'un paramètre réel en attribuant une nouvelle adresse mémoire au paramètre formel dans la méthode. 🎜🎜Pour résumer, la méthode de passage des paramètres en Java est déterminée en fonction du type du paramètre. Pour les types de données de base (tels que int
, char
, etc.), passez par valeur pour les types d'objet, passez par référence. Le passage par valeur opère simplement sur une copie du paramètre réel, tandis que le passage par référence opère sur l'objet référencé par le paramètre réel. 🎜
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!