JavaRush /Java Blog /Random-IT /Pausa caffè #101. 19 domande essenziali per l'intervista ...

Pausa caffè #101. 19 domande essenziali per l'intervista su Java e brevi esempi di risposte

Pubblicato nel gruppo Random-IT
Fonte: Hackernoon Ecco alcune domande e risposte che spesso emergono nelle interviste Java.

1. Cos'è il Java Development Kit (JDK)?

JDK è un kit di sviluppo software che include gli strumenti e le librerie necessarie per sviluppare applicazioni Java.

2. Cosa fa Java Runtime Environment (JRE)?

JRE si riferisce all'ambiente runtime in cui viene eseguito il bytecode Java. JRE conserva file e librerie per il runtime.

3. Cosa fa la Java Virtual Machine (JVM)?

La JVM è una macchina astratta che fornisce un ambiente runtime in cui può essere eseguito il bytecode Java.

4. Java è indipendente dalla piattaforma. Perché?

In qualsiasi altro linguaggio di programmazione, il codice sorgente viene compilato in codice eseguibile e il codice potrebbe non essere eseguito su tutte le piattaforme. Utilizzando JVM possiamo rendere il bytecode comprensibile per qualsiasi piattaforma e questo bytecode è indipendente dalla piattaforma. Sebbene la JVM sia diversa per ciascuna piattaforma, Java è indipendente dalla piattaforma poiché non ha dipendenza da alcun tipo di piattaforma.

5. Java non è orientato agli oggetti al 100%. Perché?

Perché Java utilizza otto tipi di dati primitivi come boolean, byte, char, int, float, double, long, short che non sono oggetti.

6. Cosa sono i costruttori in Java?

Un costruttore è un blocco di codice utilizzato per inizializzare gli oggetti. Sintassi:
class DemoClass
{
   // constructor name is same as class name
   DemoClass()
   {
      ....
   }
}
// calls DemoClass() constructor
DemoClass obj = new DemoClass();
Esempio:
public class ConstructorDemo
{
   int a; // class attribute
   // create constructor for class ConstructorDemo
   ConstructorDemo()
   {
      a = 26; // initial value for class attribute 'a'
   }
   public static void main(String[] args)
   {
      // creating object for ConstructorDemo class
      // here we're calling constructor ConstructorDemo()
      ConstructorDemo obj = new ConstructorDemo();
      System.out.println(obj.a);
   }
}
Risultato:
26

7. Cosa fa una classe singleton?

Le classi singleton possono avere un solo oggetto (istanza di classe) alla volta. Dopo che l'oggetto è stato creato e proviamo a istanziare la classe singleton , anche la nuova variabile punta al primo oggetto creato.

8. Cosa sono le classi wrapper in Java?

Le classi wrapper consentono di convertire i tipi di dati primitivi in ​​un oggetto e viceversa. Esempio:
int a = 7; // using primitive datatype
Integer a = new Integer(7); // using wrapper class

9. Qual è la differenza tra l'operatore == e il metodo di uguaglianza in Java?

In generale, == è un operatore ed equals() è un metodo. Usiamo l' operatore == per fare riferimento agli oggetti di confronto nell'heap. Non esiste il concetto di sovraccarico degli operatori in Java. Nonostante ciò, l' operatore == viene utilizzato per verificare se l'indirizzo di due oggetti è lo stesso oppure no. Cioè, l' operatore == controlla se entrambi gli oggetti puntano o meno alla stessa posizione di memoria. L'operatore == viene utilizzato anche per confrontare tipi di oggetto e tipi primitivi come booleano. Mentre il metodo equals() della classe String confronta il contenuto di due oggetti.

10. Quali sono i concetti di OOP in Java?

  • L'astrazione è definita come nascondere l'implementazione interna e visualizzare solo le informazioni necessarie.
  • L'ereditarietà è la procedura di conversione di tutte le proprietà e il comportamento di una classe genitore (superclasse) in una classe figlia (sottoclasse).
  • L'incapsulamento è la procedura che lega insieme dati o variabili e metodi.
  • Polimorfismo significa letteralmente molte forme. Il polimorfismo è la capacità di un metodo di eseguire compiti diversi. Ciò può essere ottenuto utilizzando metodi.

11. Perché il metodo main() è sempre statico in Java?

Perché non è necessario chiamare un metodo statico su un oggetto. Se main() dovesse essere un metodo non statico, la Java Virtual Machine deve prima creare il suo oggetto e poi chiamare il metodo main() , che causerà l'allocazione di memoria aggiuntiva.

12. Perché le stringhe sono immutabili in Java?

Le stringhe in Java sono immutabili perché gli oggetti String vengono memorizzati nella cache nel pool costante di stringhe .

13. Cosa sono gli array e gli ArrayList in Java?

Un array è un oggetto che contiene un numero fisso di elementi di tipo simile.
  1. ArrayList fa parte della struttura della raccolta.

  2. ArrayList implementa l'interfaccia dell'elenco.

  3. Un ArrayList è un array scalabile che cresce dinamicamente man mano che gli elementi vengono aggiunti e si restringe quando gli elementi vengono rimossi.

  4. Per operazioni di recupero frequenti, Java ArrayList è la scelta migliore . Perché gli elementi di un ArrayList sono archiviati in posizioni di memoria consecutive.

  5. ArrayList non può contenere tipi di dati primitivi come int, double, char e long.

  6. ArrayList può contenere oggetti String e classi wrapper ( Double , Integer ).

  7. ArrayList ti consente di duplicare gli elementi.

  8. ArrayList conserva l'ordine di inserimento.

  9. ArrayList è ampiamente utilizzato grazie alla sua funzionalità e flessibilità. È progettato per archiviare raccolte eterogenee di oggetti.

  10. Un ArrayList può avere un numero qualsiasi di valori null.

14. Qual è la differenza tra HashSet e HashMap in Java?

Nell'HashSet : _
  1. Possiamo memorizzare oggetti in un HashSet . Ad esempio, HashSet: {"Hello", "World"} .

  2. L'ordine di inserimento non viene mantenuto. È basato sul codice hash.

  3. Ha un metodo add() .

  4. Implementa l' interfaccia Set .

  5. Non consente elementi duplicati.

  6. Consente un singolo valore nullo.

Nella HashMap :
  1. In HashMap possiamo memorizzare coppie chiave e valore. Ad esempio, {1 -> “Ciao”, 2 -> “Mondo”} .

  2. Non supporta l'ordine di inserzione. Si basa sulla funzione di hashing.

  3. Ha un metodo put() .

  4. Implementa l'interfaccia della mappa.

  5. Consente valori duplicati. Non consente chiavi duplicate.

  6. Consente una singola chiave nulla e un numero qualsiasi di valori nulli.

16. Qual è la differenza tra questo e super in Java?

La parola chiave this in Java:
  1. questa è una parola chiave che è una variabile di riferimento che fa riferimento all'oggetto corrente.

  2. Può essere utilizzato per chiamare implicitamente il metodo della classe corrente.

  3. La parola chiave this() , utilizzata per chiamare il costruttore della classe corrente.

  4. Questo può essere usato come argomento quando si chiama un metodo.

Super parola chiave in Java:
  1. La parola chiave super è una variabile di riferimento utilizzata per fare riferimento all'oggetto immediato della classe genitore.

  2. super può essere utilizzato per chiamare direttamente un metodo di una classe genitore, un costruttore di una classe genitore e per accedere ai metodi di una classe base.

17. Cos'è l'istruzione break e continue in Java?

Se in un ciclo si verifica un'istruzione break , il ciclo terminerà e il controllo passerà all'istruzione successiva nello stesso ciclo. Esempio:
public class Example
{
   public static void main(String[] args)
   {
      for(int a = 1; a <= 10; a++)
      {
         if(a == 3)
         {
            // breaking loop
            break;
         }
         System.out.println(a);
      }
   }
}
Risultato:
12
L' istruzione continue passa all'iterazione successiva del ciclo in base a una determinata condizione. Esempio:
public class Example
{
   public static void main(String[] args)
   {
      for(int a = 1; a <= 10; a++)
      {
         if(a % 2 != 0)
         {
            continue;
         }
         System.out.println(a + " ");
      }
   }
}
Risultato:
2 4 6 8 10

18. Cosa sono i modificatori di accesso in Java?

I modificatori di accesso definiscono il limite o l'ambito di una variabile, costruttore, classe o metodo. Esistono quattro tipi di modificatori di accesso in Java:
  1. Modificatore di accesso privato.
  2. Modificatore di accesso protetto.
  3. Modificatore di condivisione.
  4. Modificatore di accesso predefinito.

19. Qual è la differenza tra ciclo for e ciclo for ogni in Java?

per ciclo :
  1. Non ha una sequenza eseguibile. Nel ciclo for possiamo modificare il contatore come desideriamo.
  2. Apparso all'inizio, in JDK 1.
  3. Non è necessario implementare l'interfaccia.
  4. Può avere accesso a index. Pertanto, è possibile sostituire un elemento in un array.
  5. Il contatore può aumentare e diminuire.
Per ogni ciclo :
  1. Eseguito in sequenza. Il contatore aumenta di uno.
  2. Apparso per la prima volta in JDK 5.
  3. Per eseguire l'iterazione sui contenitori utilizzando un ciclo for-each, il contenitore deve implementare l'interfaccia Iterable.
  4. Non è possibile sostituire l'elemento in questo indice perché non è possibile accedere all'indice dell'array.
  5. Può solo scorrere in ordine crescente, non può diminuire.
Esempio della differenza tra cicli for Each e for :
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class DifferenceBetween
{
   public static void main(String[] args)
   {
      List<String> players = new ArrayList<>(Arrays.asList("Virat", "Rohit", "Dhoni"));
      // iterate over List using for loop
      System.out.println("using for loop: ");
      for(int a = 0; a < players.size(); a++)
      {
         System.out.println(players.get(a));
      }
      // iterate over List using enhanced for loop
      System.out.println("using for each loop: ");
      for(String str : players)
      {
         System.out.println(str);
      }
   }
}
Risultato per e per ogni ciclo:
Virat Rohit Dhoni.
Commenti
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION