Bonjour à tout, j'aurai une petite question pour vous

Cette question concerne la classe String de java.lang.

En java, on peut créer des Strings de 2 manières :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
String str = new String("ma chaine");
ou bien

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
String str = "ma chaine";
C'est ici le deuxième cas qui m'interesse : comment s'appelle cette technique de création d'objet de type String sans passer par un "new" ?

De plus, est il possible de reproduire cette technique pour une classe personnalisée? comme par exemple une classe Phone utilisée comme ci-dessous
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
Phone monPhone = "06 06 06 06 06";
Si vous avez des connaissances à partager là dessus, "you're welcome"

Je sais que la classe String est spéciale en Java pour de nombreuses raisons notamment car dite "native", et "finale" ce qui m'empêche d'en hériter.

Je souhaite "reproduire" ce schéma pour pouvoir directement créer des objets comme dans l'exemple précédent, pour simplifier et vérouiller mon type d'objets en gros. Que pour un champ d'objet donné, on ne puisse instancier que un type donné, pour ne pas faire un
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
String monPhone = "06 06 06 06 06";
mais un

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
Phone monPhone = "06 06 06 06 06";