2016-10-08 2 views
0

Quel est le travail de null opérateur dans la chaîne, sur la concaténation la sortie est null + chaîne pourquoi? le prg est.Que se passe-t-il lorsque la chaîne est concaténée avec null?

public static void main2() 
{ 
    String s1=null; 
    String s2=""; 
    System.out.println(s1); 
    System.out.println(s2); 
    s1=s1+"jay"; 
    s2=s2+"jay"; 
    System.out.println(s1); 
    System.out.println(s2); 
} 

Que se passe-t-il ici?

+2

'null' n'est pas un opérateur. C'est une valeur. –

+1

Je ne pourrais pas l'expliquer mieux que ceci: http://stackoverflow.com/a/802371/2392193 – Law

+0

@Law cette question est Javascript, pas Java. Ne confondons pas les choses. –

Répondre

1

null n'est pas un opérateur. null est un littéral qui représente une référence null, une référence qui ne fait référence à aucun objet. null est la valeur par défaut des variables de type référence. Cela signifie que la variable de chaîne ou votre autre variable de type d'objet ne pointe nulle part dans la mémoire. Et lorsque vous le concaténez avec une autre chaîne.

Il sera ajouté à cette chaîne. Pourquoi? car si la référence est null, elle est convertie en chaîne "null".

String s1=null; 
String s2=""; 
System.out.println(s1); 
System.out.println(s2); 
s1=s1+"jay"; 
s2=s2+"jay"; 

// compiler convert these lines like this, 
// s1 = (new StringBuilder()).append((String)null).append("jay").toString(); 
// s2 = (new StringBuilder()).append((String)"").append("jay").toString(); 

System.out.println(s1); 
System.out.println(s2); 

Il imprimera nulljay

+0

L'OP sait déjà ce qu'est 'nul 'et ce qui se passera quand vous le concaténerez avec une chaîne. Il demande pourquoi. Cela ne répond pas à la question. – Tibrogargan

+0

en deuxième ligne, j'ai répondu. dint tu as lu la réponse? – Pirate

+0

Ce n'est toujours pas une réponse à la question. – Tibrogargan

0

Comme d'autres l'ont mentionné, null est une valeur. Semblable à dire 1 est une valeur d'un type entier ou "XYZ" est un exemple d'un type de chaîne. Lorsque vous effectuez une concaténation d'une chaîne et d'un autre type, l'autre valeur est simplement convertie en sa représentation "String" et ajoutée à la première chaîne.

Par exemple:

"XYZ" + 1 

Devient

"XYZ1" 

De même,

"Jay" + null 

Devient

"Jaynull" 

La ligne de fond est que null est juste une valeur. Et pas un opérateur. C'est une valeur implicite pour indiquer l'absence d'un objet.

Espérons que cela aide!