QuestionEtReponse en Java
QuestionEtReponse en Java
```java
public class Main {
public static void main(String[] args) {
int x = 10;
int y = 20;
System.out.println(x + y + " " + x * y);
}
}
```
**Réponse :** La sortie sera `30 200` car l'addition est effectuée avant la multiplication
dans la chaîne de caractères.
**Réponse :** `ArrayList` est basé sur un tableau dynamique et offre un accès rapide
aux éléments par index, tandis que `LinkedList` utilise une liste doublement chaînée et
est plus performant pour les opérations d'insertion et de suppression.
**Réponse :**
```java
public class CustomException extends Exception {
public CustomException(String message) {
super(message);
}
}
**Réponse :** Une classe anonyme est une classe sans nom qui est définie au moment
de l'instanciation d'un objet. Elle est souvent utilisée pour implémenter des interfaces ou
des classes abstraites sur le champ.
**Réponse :** Le mot-clé `static` indique qu'un membre appartient à la classe plutôt
qu'à une instance spécifique de la classe. Les membres `static` peuvent être accédés
sans créer une instance de la classe.
**Réponse :**
```java
interface Drawable {
void draw();
}
**Réponse :** Une méthode `abstract` est une méthode qui n'a pas d'implémentation
dans la classe où elle est déclarée. Les sous-classes doivent fournir une
implémentation concrète de cette méthode.
**Réponse :** `StringBuilder` est plus rapide que `StringBuffer` car il n'est pas
synchronisé. `StringBuffer` est synchronisé et donc thread-safe, ce qui le rend plus sûr
pour une utilisation dans des environnements multithreadés.
**Réponse :**
```java
import java.util.*;
**Réponse :**
```java
import java.util.Arrays;
import java.util.List;
### Question 16 : Comment implémenter une méthode statique dans une interface ?
**Réponse :**
```java
interface MyInterface {
static void staticMethod() {
System.out.println("Méthode statique de l'interface");
}
}
**Réponse :**
```java
import java.util.Optional;
public class OptionalExample {
public static void main(String[] args) {
Optional<String> optional = Optional.of("Hello");
optional.ifPresent(System.out::println);
}
}
```
### Question 18 : Quelle est la différence entre une interface fonctionnelle et une
interface normale ?
**Réponse :** Une interface fonctionnelle est une interface qui ne contient qu'une seule
méthode abstraite, ce qui permet de l'utiliser avec des expressions lambda. Les
interfaces normales peuvent avoir plusieurs méthodes abstraites.
Ces questions couvrent des aspects variés de Java, allant des concepts fondamentaux
aux fonctionnalités plus avancées. Elles devraient offrir un bon éventail de révision.
**Q :** Écrivez un programme Java pour inverser une chaîne de caractères donnée.
**R :**
```java
public class ReverseString {
public static void main(String[] args) {
String original = "Java";
String reversed = new StringBuilder(original).reverse().toString();
System.out.println("Chaîne inversée : " + reversed);
}
}
```
**Q :** Écrivez un programme Java pour trouver la valeur maximale dans un tableau
d'entiers.
**R :**
```java
public class MaxValueArray {
public static void main(String[] args) {
int[] numbers = {3, 5, 7, 2, 8, 10, 4};
int max = numbers[0];
for (int number : numbers) {
if (number > max) {
max = number;
}
}
**Q :** Écrivez un programme Java pour vérifier si une chaîne est un palindrome.
**R :**
```java
public class PalindromeCheck {
public static void main(String[] args) {
String str = "radar";
String reversed = new StringBuilder(str).reverse().toString();
if (str.equals(reversed)) {
System.out.println(str + " est un palindrome.");
} else {
System.out.println(str + " n'est pas un palindrome.");
}
}
}
```
### Question 22 : Compter le nombre d'occurrences d'un caractère dans une chaîne
**Q :** Écrivez un programme Java pour compter le nombre d'occurrences d'un
caractère dans une chaîne donnée.
**R :**
```java
public class CountCharacter {
public static void main(String[] args) {
String str = "programming";
char charToCount = 'g';
int count = 0;
System.out.println("Le caractère '" + charToCount + "' apparaît " + count + " fois.");
}
}
```
**Q :** Écrivez un programme Java pour calculer la somme des éléments d'un tableau
d'entiers.
**R :**
```java
public class SumArray {
public static void main(String[] args) {
int[] numbers = {1, 2, 3, 4, 5};
int sum = 0;
**Q :** Écrivez un programme Java pour vérifier si un nombre est premier.
**R :**
```java
public class PrimeNumberCheck {
public static void main(String[] args) {
int number = 29;
boolean isPrime = true;
if (number <= 1) {
isPrime = false;
} else {
for (int i = 2; i <= Math.sqrt(number); i++) {
if (number % i == 0) {
isPrime = false;
break;
}
}
}
**Q :** Écrivez un programme Java pour générer les premiers `n` nombres de la suite
de Fibonacci.
**R :**
```java
public class FibonacciSeries {
public static void main(String[] args) {
int n = 10;
int a = 0, b = 1;
**Q :** Écrivez un programme Java pour convertir une chaîne en majuscules.
**R :**
```java
public class ToUpperCase {
public static void main(String[] args) {
String str = "hello world";
String upperStr = str.toUpperCase();
System.out.println("Chaîne en majuscules : " + upperStr);
}
}
```
**Q :** Écrivez un programme Java pour calculer le produit des éléments d'un tableau
d'entiers.
**R :**
```java
public class ProductArray {
public static void main(String[] args) {
int[] numbers = {1, 2, 3, 4};
int product = 1;
### Question 28 : Afficher les nombres de 1 à 100 qui sont divisibles par 3 et 5
**Q :** Écrivez un programme Java pour afficher les nombres de 1 à 100 qui sont
divisibles par 3 et 5.
**R :**
```java
public class DivisibleByThreeAndFive {
public static void main(String[] args) {
for (int i = 1; i <= 100; i++) {
if (i % 3 == 0 && i % 5 == 0) {
System.out.println(i);
}
}
}
}
```
### Question 29 : Calculer la somme des nombres de 1 à 10
**Énoncé :** Écrivez un programme Java qui calcule et affiche la somme des nombres
de 1 à 10.
**Solution :**
```java
public class SumNumbers {
public static void main(String[] args) {
int sum = 0;
for (int i = 1; i <= 10; i++) {
sum += i;
}
System.out.println("La somme des nombres de 1 à 10 est : " + sum);
}
}
```
**Énoncé :** Écrivez un programme Java qui vérifie si un nombre donné est pair ou
impair.
**Solution :**
```java
import java.util.Scanner;
if (number % 2 == 0) {
System.out.println(number + " est pair.");
} else {
System.out.println(number + " est impair.");
}
}
}
```
**Énoncé :** Écrivez un programme Java qui trouve et affiche le plus grand nombre
parmi trois nombres donnés.
**Solution :**
```java
import java.util.Scanner;
**Énoncé :** Écrivez un programme Java qui calcule la factorielle d'un nombre entier
positif donné.
**Solution :**
```java
import java.util.Scanner;
int factorial = 1;
for (int i = 1; i <= number; i++) {
factorial *= i;
}
**Énoncé :** Écrivez un programme Java qui affiche la table de multiplication d'un
nombre donné.
**Solution :**
```java
import java.util.Scanner;
8. **Comment déclarer une classe qui hérite d'une autre classe ?**
- `class SousClasse extends SuperClasse { }`
- Exemple : `class Employe extends Personne { }`
11. **Quelle est la différence entre une classe abstraite et une interface ?**
- Une classe abstraite peut avoir des méthodes avec ou sans implémentation, tandis
qu'une interface ne peut avoir que des méthodes sans implémentation (depuis Java 8,
les interfaces peuvent avoir des méthodes par défaut).
39. **Comment faire une copie profonde d'un objet en Java ?**
- Utilisez la sérialisation pour créer une copie profonde ou implémentez la méthode
`clone()` correctement avec l'interface `Cloneable`.
5. **Quelle est la différence entre les types primitifs et les objets en Java ?**
- Les types primitifs (comme `int`, `char`, `boolean`) sont des valeurs de base, tandis
que les objets sont des instances de classes et ont des attributs et des méthodes.
27. **Comment déclarer une méthode qui lance une exception ?**
- `public void maMethode() throws ExceptionType { // code }`
- Exemple : `public void lireFichier() throws IOException { }`