0% ont trouvé ce document utile (0 vote)
5 vues7 pages

String Notes Java Questions

Les objets String en Java sont immuables pour des raisons de sécurité, de performance et de sécurité des threads. Les méthodes comme .equals() comparent le contenu des chaînes, tandis que == compare les références. Les classes StringBuilder et StringBuffer permettent de manipuler des chaînes de manière mutable, avec StringBuffer étant thread-safe.

Transféré par

H ala
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
5 vues7 pages

String Notes Java Questions

Les objets String en Java sont immuables pour des raisons de sécurité, de performance et de sécurité des threads. Les méthodes comme .equals() comparent le contenu des chaînes, tandis que == compare les références. Les classes StringBuilder et StringBuffer permettent de manipuler des chaînes de manière mutable, avec StringBuffer étant thread-safe.

Transféré par

H ala
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd
Vous êtes sur la page 1/ 7

1. Pourquoi les objets String sont-ils immuables en Java ?

✅ Les objets String sont immuables pour plusieurs raisons :

 Sécurité : Empêche la modification accidentelle des valeurs (utile pour les clés de
hachage, URLs, etc.).
 Performance : Optimisation via le String Pool.
 Thread-safety : Évite les problèmes de concurrence.

2. Quelle est la différence entre == et .equals() pour comparer des String ?

✅ == compare les références en mémoire, alors que .equals() compare le contenu des chaînes.

String s1 = new String("hello");


String s2 = new String("hello");
System.out.println(s1 == s2); // false (références différentes)
System.out.println(s1.equals(s2)); // true (contenu identique)

3. Quelle est la différence entre String, StringBuilder et StringBuffer ?

 String : Immuable, toute modification crée un nouvel objet.


 StringBuilder : Modifiable (mutable), performant mais non thread-safe.
 StringBuffer : Comme StringBuilder, mais thread-safe (synchrone, donc plus lent).

StringBuilder sb = new StringBuilder("Hello");


sb.append(" World"); // Modifie directement sb sans créer un nouvel objet

4. Comment inverser une String en Java ?

✅ Utiliser StringBuilder ou une boucle :

String str = "Java";


String reversed = new StringBuilder(str).reverse().toString();
System.out.println(reversed); // "avaJ"

5. Que fait trim() sur une String ?

✅ Supprime les espaces de début et de fin.


String s = " Java ";
System.out.println(s.trim()); // "Java"

6. Que retourne "hello".equalsIgnoreCase("HELLO") ?

✅ true, car la comparaison ignore la casse.

7. Comment extraire une sous-chaîne en Java ?

✅ Utiliser substring(start, end).

String str = "JavaSpring";


System.out.println(str.substring(4, 10)); // "Spring"

8. Que fait String.join("-", "Java", "Spring", "Angular") ?

✅ Retourne "Java-Spring-Angular" (concaténation avec un séparateur).

9. Comment diviser une String ?

✅ Utiliser .split(regex).

String data = "Java,Spring,Angular";


String[] parts = data.split(",");
System.out.println(Arrays.toString(parts)); // ["Java", "Spring", "Angular"]

10. Comment convertir un int en String et vice-versa ?

 int → String : String.valueOf(int) ou Integer.toString(int).


 String → int : Integer.parseInt(String).

int number = 42;


String str = String.valueOf(number); // "42"
int num = Integer.parseInt(str); // 42

11. Quelle est la différence entre matches(), contains() et startsWith() ?


 .matches(regex): Vérifie si la chaîne correspond à une regex.


 .contains(substring): Vérifie si la chaîne contient une sous-chaîne.
 .startsWith(prefix): Vérifie si la chaîne commence par un préfixe.

String str = "Hello Java";


System.out.println(str.matches(".*Java.*")); // true
System.out.println(str.contains("Java")); // true
System.out.println(str.startsWith("Hello")); // true

12. Que retourne "abc".substring(0, 2) ?

✅ "ab" (les caractères aux index 0 et 1, excluant 2).

13. Comment vérifier si une String contient uniquement des chiffres ?

✅ Utiliser une expression régulière :

String str = "12345";


boolean isNumeric = str.matches("\\d+");
System.out.println(isNumeric); // true

14. Comment formater une String en Java ?

✅ Utiliser String.format().

String name = "Java";


int version = 17;
String formatted = String.format("Langage: %s, Version: %d", name, version);
System.out.println(formatted); // "Langage: Java, Version: 17"

QA

Dans Java 11, quelle méthode a été ajoutée à la classe String pour simplifier
la gestion des lignes dans les fichiers ?

A) lines()

Question 3 (Java 17)

Quel est le but principal de l'enregistrement (record) en Java 17 ?


A) Créer des objets immutables et concis avec un code plus réduit

public record Person(String name, int age) {}

Question 4 (Java 21)

Avec Java 21, quelle nouvelle fonctionnalité a été introduite dans le langage ?

A) Virtual Threads pour améliorer la gestion de la concurrence.


1️⃣ Why are Strings immutable in Java?

Answer: Strings are immutable to enhance security, ensure thread safety, and allow
memory optimization by reusing objects in the string pool.

2️⃣ What’s the difference between == and equals() for Strings?

Answer:

== compares references (memory locations).

equals() compares the content of the strings.


Example:

String s1 = new String("Java");


String s2 = new String("Java");
System.out.println(s1 == s2); // false
System.out.println(s1.equals(s2)); // true

3️⃣ How does the String pool improve memory efficiency?

Answer: The string pool stores string literals. When a new literal is created, Java checks
the pool and reuses it if it already exists, saving memory.

Example:

String s1 = "Java";
String s2 = "Java";
System.out.println(s1 == s2); // true (same object in the pool)

4️⃣ Can Strings be used as keys in a HashMap? Why?

Answer: Yes, Strings are immutable. Their hashCode doesn’t change after creation,
ensuring consistent key behavior in hash-based collections.

5️⃣ How do you reverse a String in Java?

Answer: Use StringBuilder like this:

String str = "Java";


String reversed = new StringBuilder(str).reverse().toString();
System.out.println(reversed); // "avaJ"

Quiz :

String s1 = "Java";
String s2 = new String("Java");
System.out.println(s1 == s2);

Bonne réponse : false

Explication :

 s1 est stocké dans le String Pool.


 s2 est un nouvel objet String, stocké en dehors du String Pool (car créé avec new
String()).
 == compare les références mémoire, qui sont différentes.

👉 Si on voulait comparer le contenu, il faudrait utiliser .equals().

Quel est le résultat de ce code ?

String str = "Java123";


System.out.println(str.matches("[A-Za-z]+"));

Bonne réponse : B) false

Explication :
La méthode matches() vérifie si la chaîne correspond complètement à l'expression régulière
donnée.

Dans le code :

String str = "Java123";


System.out.println(str.matches("[A-Za-z]+"));

L'expression régulière [A-Za-z]+ signifie une ou plusieurs lettres (minuscules ou


majuscules).
Cependant, "Java123" contient des chiffres (123), donc elle ne correspond pas à l'expression
régulière et retourne false.
La méthode String.valueOf() est polyvalente. Elle peut être utilisée pour convertir différents
types d'objets en chaînes de caractères. Par exemple :

 Si vous passez un entier (comme int), elle le convertira en chaîne.


 Si vous passez un objet, elle appellera sa méthode toString() pour obtenir sa
représentation sous forme de chaîne.

Exemples :

int num = 123;


String str = String.valueOf(num); // "123"

Object obj = new Object();


String objStr = String.valueOf(obj); // Appelle obj.toString()

Que fait la méthode charAt(int index) dans la classe String ?

Retourne le caractère à l'index spécifié dans la chaîne.

Explication :
La méthode charAt(int index) retourne le caractère à l'index spécifié dans la chaîne de
caractères.

String str = "Java";


char ch = str.charAt(2); // 'v' (l'index 2 correspond à la lettre "v")
System.out.println(ch); // Affiche "v"

Vous aimerez peut-être aussi