La stratégie de valorisation de Java est basée sur la valeur. Non passé par référence. Certaines personnes l'utilisent à tort comme «passe par référence» pour désigner le passage d'une valeur de référence. Il y a plusieurs personnes qui soulignent qu'il est mal utilisé, des gens qui le comprennent et l'utilisent, des gens qui ne le comprennent pas vraiment, et il semble qu'ils couvent, alors j'ai résumé l'information.
L'informatique a le concept de stratégie d'évaluation. Le passage par valeur (appel par valeur ou passage par valeur) et le passage par référence (appel par référence ou passage par référence) sont un type de stratégie de valorisation.
Pour plus d'informations:
La stratégie de valorisation de Java est basée sur la valeur. Lorsque vous transmettez des valeurs de référence et des références en Java, elles sont également évaluées en passant par valeur.
Cela est également indiqué dans la spécification du langage Java.
When the method or constructor is invoked, the values of the actual argument expressions initialize newly created parameter variables, each of the declared type, before execution of the body of the method or constructor.
Depuis http://docs.oracle.com/javase/specs/jls/se9/html/jls-8.html#jls-8.4.1 Ma traduction:
Lorsqu'une méthode ou un constructeur est appelé, initialise une nouvelle valeur d'argument formel de chaque type déclaré avec la ** valeur ** de la représentation réelle de la partie d'argument avant d'exécuter le corps de la méthode ou du constructeur.
Pour plus d'informations, lisez Java is Pass-by-Value, Dammit! écrit par Scott Stanchfield.
Généralement, lors de l'examen d'une stratégie d'évaluation, il est préférable de réfléchir à la façon dont l'appel est évalué lorsqu'un programme qui appelle une fonction, une méthode, un sous-programme, etc. est entré dans le système de traitement du langage de programmation. La bonne façon de penser la stratégie.
Ne pensez pas au comportement lorsque vous exécutez réellement un programme ou un binaire. Le comportement du programme change complètement en fonction de l'environnement d'exécution du langage de programmation. Par exemple, le comportement réel est complètement différent selon que l'environnement d'exécution du programme est un compilateur, combien d'optimisation est effectuée, s'il s'agit d'un interprète ou si un humain "exécute" avec un tableau noir et une craie. Lorsque vous envisagez une stratégie d'évaluation d'un langage de programmation, ne pensez pas à ce que fait réellement le processeur, à la mémoire, à l'adresse, etc.
Passer une référence en Java est appelé "passage par référence" et doit être ** immédiatement arrêté **. Comme vous pouvez le voir en recherchant par référence Java, certains articles sont clairement mal compris. Il doit y avoir des dizaines ou des centaines de fois ce nombre, certains qui sont incompris et non observés, et d'autres qui sont entraînés par une mauvaise utilisation et entravent leur compréhension. Si vous n'arrêtez pas de faire cela, vous perdrez l'industrie.
Recommended Posts