java new对象 User user; 和 User user = null; 有什么区别
PHP中文网
PHP中文网 2017-04-18 10:32:27
0
5
706

User user;

User user = null;
这两种写法有什么区别呢?

PHP中文网
PHP中文网

认证高级PHP讲师

répondre à tous(5)
洪涛

Cela dépend de l'endroit où User user; apparaît, commençons par la conclusion :

  1. S'il s'agit d'un attribut (champ) d'un objet, il n'y a pas de différence entre les deux méthodes d'écriture.

  2. S'il s'agit d'une variable locale dans une méthode, s'il n'y a pas d'autre endroit dans la méthode pour attribuer une valeur à l'utilisateur, une erreur de compilation se produira.

S'il s'agit d'un attribut d'un objet, le compilateur Java attribuera automatiquement une valeur initiale au champ lors de la compilation (le type d'origine est la valeur par défaut ; le type de référence est nul). Par exemple, le code suivant :

public class TestInitialization {
    private User userA;
}

Après la compilation, utilisez javap pour afficher le bytecode. La partie rouge est le processus par lequel le compilateur attribue automatiquement les valeurs initiales :

S'il s'agit d'une variable locale dans une méthode, le compilateur n'attribuera pas automatiquement de valeur initiale. User user;La variable user est uniquement définie, mais aucun espace n'est alloué à l'utilisateur dans la mémoire. Elle n'est pas initialisée et ne peut pas être compilée User user = null;Non seulement la variable user est définie, mais l'espace mémoire est également alloué à l'utilisateur, l'utilisateur pointe maintenant vers null.

那么问题来了`null`又是个什么鬼?
http://stackoverflow.com/questions/2707322/what-is-null-in-java
阿神

Si user est une variable locale : l'utilisation de user avant la première affectation (y compris l'initialisation à null) est une erreur de compilation

Il n'y a aucune différence après l'affectation

PHPzhong

Il semble que ce soit pareil

Ty80

Aucune différence, la valeur d'initialisation par défaut est nulle

PHPzhong

Non= Aucun espace n'est créé pour lui dans la pile. L'ajout de =null spécifie un espace réservé vide

dans la pile.
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!