100+ Java Domande e risposte all'intervista (2025)
Java Domande e risposte sull'intervista di programmazione per le matricole
1) Qual è la differenza tra una Classe Interna e una Sottoclasse?
Una classe interna è una classe nidificata all'interno di un'altra classe. Una classe interna ha diritti di accesso per la classe che la annida e può accedere a tutte le variabili e metodi definiti nella classe esterna.
Una sottoclasse è una classe che eredita da un'altra classe chiamata superclasse. La sottoclasse può accedere a tutti i metodi e campi pubblici e protetti della sua super classe.
👉 Scarica gratuitamente il PDF: Java Intervista Intervista Domande e risposte >>
2) A cosa servono i vari specificatori di accesso Java classi?
In Java, gli specificatori di accesso sono le parole chiave utilizzate prima del nome di una classe che definisce l'ambito di accesso. I tipi di specificatori di accesso per le classi sono:
1) Pubblico: Classe, Metodo e Campo sono accessibili da qualsiasi luogo.
2) Protetto: È possibile accedere a Method,Field dalla stessa classe a cui appartengono o dalle sottoclassi e dalla classe dello stesso pacchetto, ma non dall'esterno.
3) Predefinito: È possibile accedere a Method, Field, class solo dallo stesso pacchetto e non dall'esterno del pacchetto nativo.
4) Privato: È possibile accedere a Method,Field dalla stessa classe a cui appartengono.
3) Qual è lo scopo dei metodi statici e delle variabili statiche?
Quando è necessario condividere un metodo o una variabile tra più oggetti di una classe invece di creare copie separate per ciascun oggetto, utilizziamo la parola chiave statica per rendere un metodo o una variabile condivisa per tutti gli oggetti.
4) Cos'è l'incapsulamento dei dati e qual è il suo significato?
L'incapsulamento è un concetto della programmazione orientata agli oggetti per combinare proprietà e metodi in una singola unità.
L'incapsulamento aiuta i programmatori a seguire un approccio modulare per lo sviluppo del software poiché ogni oggetto ha il proprio set di metodi e variabili e svolge le sue funzioni indipendentemente dagli altri oggetti. L'incapsulamento serve anche a nascondere i dati.
5) Cos'è una classe singleton? Fai un esempio pratico del suo utilizzo.
Una classe singleton in Java può avere una sola istanza e quindi tutti i suoi metodi e variabili appartengono a una sola istanza. Il concetto di classe singleton è utile nelle situazioni in cui è necessario limitare il numero di oggetti per una classe.
Il miglior esempio di scenario di utilizzo del singleton è quando esiste un limite per avere una sola connessione a un database a causa di alcune limitazioni del driver o di eventuali problemi di licenza.
6) Cosa sono i Loop in Java? Quali sono i tre tipi di loop?
Il looping viene utilizzato nella programmazione per eseguire ripetutamente un'istruzione o un blocco di istruzioni. Ce ne sono tre tipi di loop in Java:
1) Per i loop
I cicli For vengono utilizzati in Java per eseguire istruzioni ripetutamente per un determinato numero di volte. I cicli For vengono utilizzati quando il programmatore conosce il numero di volte in cui eseguire le istruzioni.
2) Mentre cicli
Il ciclo while viene utilizzato quando è necessario eseguire determinate istruzioni ripetutamente finché non viene soddisfatta una condizione. Nei cicli while, la condizione viene controllata prima dell'esecuzione delle istruzioni.
3) Esegui i cicli While
Il ciclo Do While è uguale al ciclo While con l'unica differenza che la condizione viene verificata dopo l'esecuzione del blocco di istruzioni. Pertanto, in caso di ciclo do while, le istruzioni vengono eseguite almeno una volta.
7) Cos'è un Loop infinito? Come viene dichiarato il ciclo infinito?
Un ciclo infinito viene eseguito senza alcuna condizione e funziona all'infinito. Un ciclo infinito può essere interrotto definendo qualsiasi logica di interruzione nel corpo dei blocchi di istruzioni.
Il ciclo infinito è dichiarato come segue:
for (;;) { // Statements to execute // Add any loop breaking logic }
8) Qual è la differenza tra l'istruzione continue e break?
break e continue sono due parole chiave importanti utilizzate nei Loops. Quando viene utilizzata una parola chiave break in un ciclo, il ciclo viene interrotto immediatamente mentre quando viene utilizzata la parola chiave continue, l'iterazione corrente viene interrotta e il ciclo continua con l'iterazione successiva.
Nell'esempio seguente, il ciclo viene interrotto quando il contatore raggiunge 4.
for (counter = 0; counter & lt; 10; counter++) system.out.println(counter); if (counter == 4) { break; } }
Nell'esempio seguente, quando il contatore raggiunge 4, il ciclo salta all'iterazione successiva e qualsiasi istruzione dopo la parola chiave continue viene saltata per l'iterazione corrente.
for (counter = 0; counter < 10; counter++) system.out.println(counter); if (counter == 4) { continue; } system.out.println("This will not get printed when counter is 4"); }
9) Qual è la differenza tra le variabili double e float in Java?
In Java, float occupa 4 byte in memoria mentre Double occupa 8 byte in memoria. Float è un numero decimale in virgola mobile a precisione singola mentre Double è un numero decimale a doppia precisione.
10) Qual è la parola chiave finale Java? Fai un esempio.
In Java, una costante viene dichiarata utilizzando la parola chiave Final. Il valore può essere assegnato solo una volta e dopo l'assegnazione, il valore di una costante non può essere modificato.
Nell'esempio seguente, una costante con il nome const_val viene dichiarata e gli viene assegnato un valore:
Finale privato int const_val=100
Quando un metodo viene dichiarato finale, NON può essere sovrascritto dalle sottoclassi. Questo metodo è più veloce di qualsiasi altro metodo, perché vengono risolti in tempo rispettato.
Quando una classe viene dichiarata come final, non può essere sottoclassata. Esempio String, Integer e altre classi wrapper.
11) Cos'è l'operatore ternario? Dare un esempio.
L'operatore ternario, detto anche operatore condizionale, viene utilizzato per decidere quale valore assegnare ad una variabile in base ad una valutazione del valore booleano. È indicato come ?
Nell'esempio seguente, se il rango è 1, allo stato viene assegnato il valore "Fatto" altrimenti "In attesa".
public class conditionTest { public static void main(String args[]) { String status; int rank = 3; status = (rank == 1) ? "Done" : "Pending"; System.out.println(status); } }
12) Come puoi generare numeri casuali in Java?
- Usando Math.random() puoi generare numeri casuali nell'intervallo maggiore o uguale a 0.1 e inferiore a 1.0
- Utilizzo della classe Random nel pacchetto java.util
13) Qual è il caso di commutazione predefinito? Fai un esempio.
In un istruzione switch, il caso predefinito viene eseguito quando nessun'altra condizione di commutazione corrisponde. Il caso predefinito è un caso facoltativo. Può essere dichiarato solo dopo che tutti gli altri casi di commutazione sono stati codificati.
Nell'esempio seguente, quando il punteggio non è 1 o 2, viene utilizzato il caso predefinito.
public class SwitchExample { public static void main(String args[]) { int score = 4; // Declare the score variable inside the main method switch (score) { case 1: System.out.println("Score is 1"); break; case 2: System.out.println("Score is 2"); break; default: System.out.println("Default Case"); } } }
14) In cosa consiste la classe base Java da cui derivano tutte le classi?
java.lang.object
15) È possibile inserire il metodo main() Java può restituire qualche dato?
In Java, il metodo main() non può restituire alcun dato e quindi viene sempre dichiarato con un tipo di ritorno void.
16) Cosa sono Java Pacchetti? Qual è il significato dei pacchetti?
In Java, il pacchetto è una raccolta di classi e interfacce raggruppate insieme in quanto correlate tra loro. L'uso dei pacchetti aiuta gli sviluppatori a modularizzare il codice e raggrupparlo per un corretto riutilizzo. Una volta che il codice è stato impacchettato in Packages, può essere importato in altre classi e utilizzato.
17) Possiamo dichiarare una classe come Abstract senza avere alcun metodo astratto?
Sì, possiamo creare una classe astratta usando la parola chiave abstract prima del nome della classe, anche se non ha alcun metodo astratto. Tuttavia, se una classe ha anche un solo metodo astratto, deve essere dichiarata come astratta, altrimenti darà un errore.
18) Qual è la differenza tra una classe astratta e un'interfaccia in Java?
La differenza principale tra una classe astratta e un'interfaccia è che un'interfaccia può possedere solo dichiarazioni di metodi statici pubblici senza implementazione concreta mentre una classe astratta può avere membri con qualsiasi specificatore di accesso (pubblico, privato ecc.) con o senza implementazione concreta.
Un'altra differenza fondamentale nell'uso di classi e interfacce astratte è che una classe che implementa un'interfaccia deve implementare tutti i metodi dell'interfaccia mentre una classe che eredita da una classe astratta non richiede l'implementazione di tutti i metodi della sua super classe.
Una classe può implementare più interfacce ma può estendere solo una classe astratta.
19) Quali sono le implicazioni prestazionali delle interfacce rispetto alle classi astratte?
Le interfacce hanno prestazioni più lente rispetto alle classi astratte poiché per le interfacce sono necessarie indicazioni indirette aggiuntive. Un altro fattore chiave da tenere in considerazione per gli sviluppatori è che qualsiasi classe può estendere solo una classe astratta mentre una classe può implementare molte interfacce.
L'uso delle interfacce rappresenta inoltre un onere aggiuntivo per gli sviluppatori poiché ogni volta che un'interfaccia viene implementata in una classe; lo sviluppatore è costretto a implementare ogni singolo metodo di interfaccia.
20) L'importazione di un pacchetto importa anche i suoi sottopacchetti Java?
In Java, quando un pacchetto viene importato, i suoi sottopacchetti non vengono importati e lo sviluppatore deve importarli separatamente, se necessario.
Ad esempio, se uno sviluppatore importa un pacchetto University.*, verranno caricate tutte le classi del pacchetto denominato University, ma non verrà caricata alcuna classe del sottopacchetto. Per caricare le classi dal suo sottopacchetto (ad esempio dipartimento), lo sviluppatore deve importarlo esplicitamente come segue:
Importa università.dipartimento.*
21) Possiamo dichiarare privato il metodo main della nostra classe?
In Java, il metodo main deve essere pubblico statico per eseguire correttamente qualsiasi applicazione. Se il metodo main è dichiarato privato, lo sviluppatore non riceverà alcun errore di compilazione, tuttavia non verrà eseguito e genererà un errore di runtime.
22) Come possiamo passare l'argomento a una funzione per riferimento invece che per valore?
In Java possiamo passare argomenti a una funzione solo per valore e non per riferimento.
23) Come viene serializzato un oggetto in Java?
In Java, per convertire un oggetto in flusso di byte mediante serializzazione, la classe implementa un'interfaccia con il nome Serializable. Tutti gli oggetti di una classe che implementa un'interfaccia serializzabile vengono serializzati e il loro stato viene salvato nel flusso di byte.
24) Quando dovremmo utilizzare la serializzazione?
La serializzazione viene utilizzata quando i dati devono essere trasmessi sulla rete. Utilizzando la serializzazione, lo stato dell'oggetto viene salvato e convertito in flusso di byte. Il flusso di byte viene trasferito sulla rete e l'oggetto viene ricreato a destinazione.
25) È obbligatorio che un Try Block sia seguito da un Catch Block in Java per la gestione delle eccezioni?
Il blocco Try deve essere seguito dal blocco Catch o dal blocco Finalmente o da entrambi. Qualsiasi eccezione lanciata dal blocco try deve essere catturata nel blocco catch oppure qualsiasi attività specifica da eseguire prima dell'interruzione del codice deve essere inserita nel blocco Finalmente.
Java Domande e risposte all'intervista per esperti
26) Esiste un modo per saltare il blocco finale dell'eccezione anche se si verifica qualche eccezione nel blocco eccezione?
Se viene sollevata un'eccezione nel blocco Try, il controllo passa al blocco catch se esiste, altrimenti al blocco finally. Il blocco Finally viene sempre eseguito quando si verifica un'eccezione e l'unico modo per evitare l'esecuzione di qualsiasi istruzione nel blocco Finally è interrompere forzatamente il codice scrivendo la seguente riga di codice alla fine del blocco try:
System.exit(0);
27) Quando viene invocato il costruttore di una classe?
Il costruttore di una classe viene richiamato ogni volta che viene creato un oggetto con la nuova parola chiave.
Ad esempio, nella seguente classe vengono creati due oggetti utilizzando la parola chiave new e quindi il costruttore viene richiamato due volte.
public class const_example { const_example() { system.out.println("Inside constructor"); } public static void main(String args[]) { const_example c1 = new const_example(); const_example c2 = new const_example(); } }
28) Una classe può avere più costruttori?
Sì, una classe può avere più costruttori con parametri diversi. Il costruttore utilizzato per la creazione degli oggetti dipende dagli argomenti passati durante la creazione degli oggetti.
29) Possiamo sovrascrivere i metodi statici di una classe?
Non possiamo sovrascrivere i metodi statici. I metodi statici appartengono a una classe e non a singoli oggetti e vengono risolti al momento della compilazione (non in fase di runtime). Anche se proviamo a sovrascrivere il metodo statico, non otterremo un errore di compilazione, né l'impatto dell'override durante l'esecuzione del metodo. codice.
30) Nell'esempio seguente, quale sarà l'output?
public class superclass { public void displayResult() { system.out.println("Printing from superclass"); } } public class subclass extends superclass { public void displayResult() { system.out.println("Displaying from subClass"); super.displayResult(); } public static void main(String args[]) { subclass obj = new subclass(); obj.displayResult(); } }
Ans: L'output sarà:
Visualizzazione dalla sottoclasse
Stampa dalla superclasse
31) String è un tipo di dati in Java?
String non è un tipo di dati primitivo in Java. Quando una stringa viene creata in Java, è in realtà un oggetto di JavaClasse .Lang.String che viene creata. Dopo la creazione di questo oggetto stringa, tutti i metodi integrati della classe String possono essere utilizzati sull'oggetto stringa.
32) Nell'esempio seguente, quanti oggetti stringa vengono creati?
String s1="I am Java Expert"; String s2="I am C Expert"; String s3="I am Java Expert";
Nell'esempio sopra, due oggetti di JavaViene creata la classe .Lang.String. s1 e s3 sono riferimenti allo stesso oggetto.
33) Perché ci sono le stringhe Java sono chiamati immutabili?
In Java, gli oggetti stringa sono chiamati immutabili poiché una volta assegnato un valore a una stringa, non può essere modificato e, se modificato, viene creato un nuovo oggetto.
Nell'esempio seguente, il riferimento str si riferisce a un oggetto stringa con valore "Valore uno".
String str="Value One";
Quando gli viene assegnato un nuovo valore, viene creato un nuovo oggetto String e il riferimento viene spostato nel nuovo oggetto.
str="New Value";
34) Qual è la differenza tra un array e Vector?
Un array raggruppa dati dello stesso tipo primitivo ed è di natura statica mentre i vettori sono di natura dinamica e possono contenere dati di diversi tipi di dati.
35) Cos'è il multithreading?
Il multi threading è un concetto di programmazione per eseguire più attività contemporaneamente all'interno di un singolo programma. I thread condividono lo stesso stack di processi e vengono eseguiti in parallelo. Aiuta a migliorare le prestazioni di qualsiasi programma.
36) Perché viene utilizzata l'interfaccia eseguibile Java?
L'interfaccia Runnable è utilizzata in Java per implementare applicazioni multithread. JavaL'interfaccia .Lang.Runnable è implementata da una classe per supportare il multi threading.
37) Quali sono i due modi di implementare il multi-threading in Java?
È possibile sviluppare applicazioni multi thread Java utilizzando una delle due metodologie seguenti:
1) Utilizzando Java.Interfaccia eseguibile lang. Le classi implementano questa interfaccia per abilitare il multi threading. C'è un metodo Run() in questa interfaccia che è implementato.
2) Scrivendo una classe che si estenda JavaClasse .Lang.Thread.
38) Quando sono necessarie molte modifiche ai dati, quale dovrebbe essere la preferenza da utilizzare? Stringa o StringaBuffer?
Da StringBuffers sono di natura dinamica e possiamo modificare i valori di StringBuffer oggetti a differenza di String che è immutabile, è sempre una buona scelta usare StringBuffer quando i dati vengono modificati troppo. Se utilizziamo String in questo caso, per ogni modifica dei dati verrà creato un nuovo oggetto String che costituirà un sovraccarico aggiuntivo.
39) Qual è lo scopo dell'utilizzo di Break in ogni caso di Switch Statement?
Break viene utilizzato dopo ogni caso (tranne l'ultimo) in uno switch in modo che il codice si interrompa dopo il caso valido e non scorra anche nei casi successivi.
Se break non viene utilizzato dopo ogni caso, verranno eseguiti anche tutti i casi successivi al caso valido, con risultati errati.
40) Come viene effettuata la raccolta dei rifiuti Java?
In Java, quando un oggetto non viene più referenziato, raccolta dei rifiuti avviene e l'oggetto viene distrutto automaticamente. Per la garbage collection automatica, Java chiama il metodo System.gc() o il metodo Runtime.gc().
41) Come possiamo eseguire qualsiasi codice anche prima del metodo main?
Se vogliamo eseguire qualsiasi istruzione prima ancora della creazione degli oggetti al momento del caricamento della classe, possiamo utilizzare un blocco di codice statico nella classe. Qualsiasi istruzione all'interno di questo blocco statico di codice verrà eseguita una volta al momento del caricamento della classe anche prima della creazione degli oggetti nel metodo principale.
42) Una classe può essere contemporaneamente una superclasse e una sottoclasse? Fai un esempio.
Se viene utilizzata una gerarchia di ereditarietà, una classe può essere contemporaneamente una superclasse per un'altra classe e una sottoclasse per un'altra.
Nell'esempio seguente, la classe continente è una sottoclasse della classe mondiale ed è la superclasse della classe nazionale.
public class world { .......... } public class continenet extends world { ............ } public class country extends continent { ...................... }
43) Come vengono creati gli oggetti di una classe se nella classe non è definito alcun costruttore?
Anche se in una classe Java non è definito alcun costruttore esplicito, gli oggetti vengono creati con successo poiché un costruttore predefinito viene utilizzato implicitamente per la creazione dell'oggetto. Questo costruttore non ha parametri.
44) Nel multithreading come possiamo garantire che una risorsa non venga utilizzata da più thread contemporaneamente?
Nel multi-threading, l'accesso alle risorse che sono condivise tra più thread può essere controllato utilizzando il concetto di sincronizzazione. Utilizzando parola chiave sincronizzata, possiamo garantire che solo un thread alla volta possa utilizzare la risorsa condivisa e gli altri possano ottenere il controllo della risorsa solo una volta che si è liberata dall'altro che la utilizza.
45) Possiamo chiamare più di una volta il costruttore di una classe per un oggetto?
Il costruttore viene chiamato automaticamente quando creiamo un oggetto utilizzando la nuova parola chiave. Viene chiamato solo una volta per un oggetto al momento della creazione dell'oggetto e quindi non possiamo invocare nuovamente il costruttore per un oggetto dopo la sua creazione.
46) Esistono due classi denominate classe A e classe B. Entrambe le classi sono nello stesso pacchetto. È possibile accedere a un membro privato di classe A da un oggetto di classe B?
I membri privati di una classe non sono accessibili al di fuori dell'ambito di quella classe e qualsiasi altra classe, anche nello stesso pacchetto, non può accedervi.
47) Possiamo avere due metodi in una classe con lo stesso nome?
Possiamo definire due metodi in una classe con lo stesso nome ma con numero/tipo di parametri diversi. Il metodo da richiamare dipenderà dai parametri passati.
Ad esempio nella classe seguente abbiamo due metodi di stampa con lo stesso nome ma parametri diversi. A seconda dei parametri, verrà chiamato quello appropriato:
public class methodExample { public void print() { system.out.println("Print method without parameters."); } public void print(String name) { system.out.println("Print method with parameter"); } public static void main(String args[]) { methodExample obj1 = new methodExample(); obj1.print(); obj1.print("xx"); } }
48) Come possiamo fare una copia di un oggetto Java?
Possiamo usare il concetto di clonazione per creare una copia di un oggetto. Usando clone, creiamo copie con lo stato attuale di un oggetto.
Clone() è un metodo dell'interfaccia Cloneable e quindi l'interfaccia Cloneable deve essere implementata per creare copie di oggetti.
49) Qual è il vantaggio di utilizzare l'ereditarietà?
Il vantaggio principale dell'utilizzo dell'ereditarietà è la riusabilità del codice poiché l'ereditarietà consente alle sottoclassi di riutilizzare il codice della sua superclasse. Il polimorfismo (estensibilità) è un altro grande vantaggio che consente di introdurre nuove funzionalità senza influenzare le classi derivate esistenti.
50) Qual è lo specificatore di accesso predefinito per variabili e metodi di una classe?
L'identificatore di accesso predefinito per variabili e metodo è protetto dal pacchetto, ovvero variabili e classe sono disponibili per qualsiasi altra classe ma nello stesso pacchetto, non all'esterno del pacchetto.
51) Fornisci un esempio di utilizzo dei Puntatori in Java classe.
Non ci sono indicazioni Java. Quindi non possiamo usare il concetto di puntatori in Java.
52) Come possiamo limitare l'ereditarietà di una classe in modo che nessuna classe possa essere ereditata da essa?
Se vogliamo che una classe non venga ulteriormente estesa da nessuna classe, possiamo usare la parola chiave fine con il nome della classe.
Nell'esempio seguente, la classe Stone è Final e non può essere estesa
public Final Class Stone { // Class methods and Variables }
53) Qual è l'ambito di accesso dello specificatore di accesso protetto?
Quando un metodo o una variabile viene dichiarato con lo specificatore di accesso protetto, diventa accessibile nella stessa classe, in qualsiasi altra classe dello stesso pacchetto e in una sottoclasse.
Modificare | Classe | CONFEZIONE | sottoclasse | Le migliori località |
---|---|---|---|---|
la percezione | Y | Y | Y | Y |
protetta | Y | Y | Y | N |
nessun modificatore | Y | Y | N | N |
un bagno | Y | N | N | N |
54) Qual è la differenza tra Stack e Queue?
Stack e Queue vengono entrambi utilizzati come segnaposto per una raccolta di dati. La differenza principale tra uno stack e una coda è che lo stack si basa sul principio Last in First out (LIFO) mentre una coda si basa sul principio FIFO (First In First Out).
55) In Java, come possiamo impedire la serializzazione delle variabili?
Se vogliamo che alcune variabili di una classe non siano serializzate, possiamo usare la parola chiave transitorio mentre li dichiarano. Ad esempio, la variabile trans_var riportata di seguito è una variabile transitoria e non può essere serializzata:
public class transientExample { private transient trans_var; // rest of the code }
56) Come possiamo utilizzare tipi di dati primitivi come oggetti?
I tipi di dati primitivi come int possono essere gestiti come oggetti utilizzando le rispettive classi wrapper. Ad esempio, Integer è una classe wrapper per il tipo di dati primitivo int. Possiamo applicare diversi metodi a una classe wrapper, proprio come qualsiasi altro oggetto.
57) Quali tipi di eccezioni vengono rilevate in fase di compilazione?
Le eccezioni controllate possono essere intercettate al momento della compilazione del programma. Le eccezioni controllate devono essere gestite utilizzando il blocco try catch nel codice per poter compilare correttamente il codice.
58) Descrivere i diversi stati di un thread.
Un filo dentro Java può trovarsi in uno dei seguenti stati:
- Pronto: quando viene creato un thread, è nello stato Pronto.
- In esecuzione: un thread attualmente in esecuzione è in stato di esecuzione.
- In attesa: un thread in attesa che un altro thread liberi determinate risorse è in stato di attesa.
- Morto: un thread che è morto dopo l'esecuzione è in stato morto.
59) Possiamo usare un costruttore predefinito di una classe anche se è definito un costruttore esplicito?
Java fornisce un costruttore predefinito senza argomenti se non è definito alcun costruttore esplicito in a Java classe. Ma se è stato definito un costruttore esplicito, il costruttore predefinito non può essere richiamato e lo sviluppatore può utilizzare solo i costruttori definiti nella classe.
60) Possiamo sovrascrivere un metodo utilizzando lo stesso nome e argomenti del metodo ma tipi di ritorno diversi?
La condizione di base per l'override del metodo è che il nome del metodo, gli argomenti e il tipo restituito debbano essere esattamente uguali a quelli del metodo da sovrascrivere. Pertanto l'utilizzo di un tipo restituito diverso non sovrascrive un metodo.
61) Quale sarà l'output del seguente pezzo di codice?
public class operatorExample { public static void main(String args[]) { int x = 4; system.out.println(x++); } }
In questo caso viene utilizzato l'operatore suffisso ++ che prima restituisce il valore e poi lo incrementa. Quindi il suo output sarà 4.
61) Una persona dice di aver compilato con successo una classe Java senza nemmeno avere un metodo main al suo interno? È possibile?
Il metodo main è un punto di ingresso di Java class ed è comunque necessario per l'esecuzione del programma; una classe viene compilata con successo anche se non ha un metodo main. Non può essere eseguito però.
62) Possiamo chiamare un metodo non statico dall'interno di un metodo statico?
I metodi non statici sono di proprietà di oggetti di una classe e hanno un ambito a livello di oggetto e per chiamare i metodi non statici da un blocco statico (come da un metodo principale statico), è necessario prima creare un oggetto della classe. Quindi, utilizzando il riferimento all'oggetto, è possibile richiamare questi metodi.
63) Quali sono le due variabili d'ambiente che devono essere impostate per poterne eseguire qualsiasi Java programmi?
Java i programmi possono essere eseguiti in una macchina solo dopo che sono state impostate correttamente le seguenti due variabili di ambiente:
- PATH variabile
- Variabile CLASSPATH
64) È possibile utilizzare variabili in Java senza inizializzazione?
In Java, se una variabile viene utilizzata in un codice senza previa inizializzazione con un valore valido, il programma non viene compilato e restituisce un errore poiché non viene assegnato alcun valore predefinito alle variabili in Java.
65) Può una lezione entrare Java essere ereditato da più di una classe?
In Java, una classe può essere derivata da una sola classe e non da più classi. Le eredità multiple non sono supportate da Java.
66) Un costruttore può avere un nome diverso dal nome di una classe in Java?
Costruttore dentro Java deve avere lo stesso nome del nome della classe e se il nome è diverso, non funge da costruttore e il compilatore lo considera un metodo normale.
67) Quale sarà l'output di Round(3.7) e Ceil(3.7)?
Round(3.7) restituisce 4 e Ceil(3.7) restituisce 4.
68) Possiamo usare goto in Java andare su una linea particolare?
In Java, non esiste la parola chiave goto e Java non supporta questa funzionalità di andare a una particolare riga etichettata.
69) Si può ricominciare un thread morto?
In Java, un thread che è in stato morto non può essere riavviato. Non c'è modo di riavviare un thread morto.
70) La seguente dichiarazione di classe è corretta?
public abstract final class testClass { // Class methods and variables }
Risposta: La dichiarazione di classe sopra non è corretta poiché una classe astratta non può essere dichiarata come Final.
71) È necessario JDK su ciascuna macchina per eseguire a Java programma?
JDK è il kit di sviluppo di Java ed è richiesto solo per lo sviluppo e per eseguire a Java programma su una macchina, JDK non è richiesto. È richiesto solo JRE.
72) Qual è la differenza tra il confronto fatto con il metodo uguale e l'operatore ==?
In JavaIl metodo equals() viene utilizzato per confrontare il contenuto di due oggetti stringa e restituisce true se i due hanno lo stesso valore, mentre l'operatore == confronta i riferimenti di due oggetti stringa.
Nell'esempio seguente, equals() restituisce true poiché i due oggetti stringa hanno gli stessi valori. Tuttavia l'operatore == restituisce false poiché entrambi gli oggetti stringa fanno riferimento a oggetti diversi:
public class equalsTest { public static void main(String args[]) { String str1 = new String("Hello World"); String str2 = new String("Hello World"); if (str1.equals(str2)) { // this condition is true System.out.println("str1 and str2 are equal in terms of values"); } if (str1 == str2) { //This condition is true System.out.println("Both strings are referencing same object"); } else { // This condition is NOT true System.out.println("Both strings are referencing different objects"); } } }
73) E' possibile definire un metodo in Java class ma fornisci la sua implementazione nel codice di un altro linguaggio come C?
Sì, possiamo farlo utilizzando metodi nativi. In caso di sviluppo basato su metodi nativi, definiamo metodi statici pubblici nel nostro Java class senza la sua implementazione e quindi l'implementazione viene eseguita separatamente in un altro linguaggio come C.
74) Come sono definiti i distruttori in Java?
In Java, non ci sono distruttori definiti nella classe poiché non è necessario farlo. Java ha il proprio meccanismo di raccolta dei rifiuti che svolge il lavoro automaticamente distruggendo gli oggetti quando non vengono più referenziati.
Java Domande e risposte all'intervista per oltre 5 anni di esperienza
75) Una variabile può essere locale e statica allo stesso tempo?
No, una variabile non può essere statica e locale allo stesso tempo. La definizione di una variabile locale come statica genera un errore di compilazione.
76) Possiamo avere metodi statici in un'interfaccia?
I metodi statici non possono essere sovrascritti in nessuna classe mentre tutti i metodi in un'interfaccia sono astratti per impostazione predefinita e dovrebbero essere implementati nelle classi che implementano l'interfaccia. Quindi non ha senso avere metodi statici in un'interfaccia in Java.
77) In una classe che implementa un'interfaccia, possiamo cambiare il valore di qualsiasi variabile definita nell'interfaccia?
No, non possiamo modificare il valore di nessuna variabile di un'interfaccia nella classe di implementazione, poiché tutte le variabili definite nell'interfaccia sono per impostazione predefinita pubbliche, statiche e finali. Le variabili finali sono come costanti che non possono essere modificate in seguito.
78) È corretto affermare che a causa della funzionalità di garbage collection presente in Java, un programma Java non esce mai dalla memoria?
Anche se la raccolta automatica dei rifiuti è fornita da Java, non garantisce che a Java il programma non esaurirà la memoria poiché esiste la possibilità che la creazione di Java Gli oggetti vengono eseguiti a un ritmo più veloce rispetto alla garbage collection, con conseguente riempimento di tutte le risorse di memoria disponibili.
Pertanto, la garbage collection aiuta a ridurre le possibilità che un programma esaurisca la memoria, ma non lo garantisce.
79) Possiamo avere un tipo di reso diverso da void per il metodo principale?
No, Java Il metodo main della classe può avere solo il tipo di ritorno void affinché il programma venga eseguito con successo.
Tuttavia, se devi assolutamente restituire un valore al completamento del metodo main, puoi utilizzare System.exit(int status)
80) Voglio raggiungere nuovamente e utilizzare un oggetto una volta che è stato raccolto dai rifiuti. Com'è possibile?
Una volta che un oggetto è stato distrutto dal Garbage Collector, non esiste più nell'heap e non è più possibile accedervi. Non è possibile fare nuovamente riferimento ad esso.
81) Dentro Java programmazione dei thread, quale metodo è un'implementazione obbligatoria per tutti i thread?
Run() è un metodo dell'interfaccia Runnable che deve essere implementato da tutti i thread.
82) Voglio controllare le connessioni al database nel mio programma e voglio che solo un thread alla volta sia in grado di effettuare la connessione al database. Come posso implementare questa logica?
Risposta: Questo può essere implementato tramite l'uso del concetto di sincronizzazione. Il codice correlato al database può essere inserito in un metodo che hs sincronizzato parola chiave in modo che solo un thread alla volta possa accedervi.
83) Come può un'eccezione essere lanciata manualmente da un programmatore?
Per lanciare manualmente un'eccezione in un blocco di codice, gettare viene utilizzata la parola chiave. Quindi questa eccezione viene catturata e gestita nel blocco catch.
public void topMethod() { try { excMethod(); } catch (ManualException e) {} } public void excMethod { String name = null; if (name == null) { throw (new ManualException("Exception thrown manually "); } }
84) Voglio che la mia classe sia sviluppata in modo tale che nessun'altra classe (nemmeno una classe derivata) possa creare i suoi oggetti. Come posso farlo?
Se dichiariamo privato il costruttore di una classe, non sarà accessibile a nessun'altra classe e quindi nessun'altra classe sarà in grado di istanziarlo e la formazione del suo oggetto sarà limitata solo a se stessa.
85) Come vengono conservati gli oggetti Java?
In Java, ogni oggetto quando viene creato ottiene uno spazio di memoria da un heap. Quando un oggetto viene distrutto da un garbage collector, lo spazio ad esso allocato dall'heap viene riassegnato all'heap e diventa disponibile per eventuali nuovi oggetti.
86) Come possiamo trovare la dimensione effettiva di un oggetto nell'heap?
In Java non c'è modo di scoprire la dimensione esatta di un oggetto nell'heap.
87) Quale delle seguenti classi avrà più memoria allocata?
Classe A: tre metodi, quattro variabili, nessun oggetto
Classe B: cinque metodi, tre variabili, nessun oggetto
La memoria non viene allocata prima della creazione degli oggetti. Poiché per entrambe le classi non vengono creati oggetti, non viene allocata memoria sull'heap per nessuna classe.
88) Cosa succede se un'eccezione non viene gestita in un programma?
Se un'eccezione non viene gestita in un programma utilizzando i blocchi try-catch, il programma viene interrotto e non viene eseguita alcuna istruzione dopo quella che ha causato l'eccezione.
89) Ho più costruttori definiti in una classe. È possibile chiamare un costruttore dal corpo di un altro costruttore?
Se una classe ha più costruttori, è possibile richiamare un costruttore dal corpo di un altro utilizzando Questo().
90) Cosa si intende per classe anonima?
Una classe anonima è una classe definita senza alcun nome in una singola riga di codice utilizzando la nuova parola chiave.
Ad esempio, nel codice seguente abbiamo definito una classe anonima in una riga di codice:
public java.util.Enumeration testMethod() { return new java.util.Enumeration() { @Override public boolean hasMoreElements() { // TODO Auto-generated method stub return false; } @Override public Object nextElement() { // TODO Auto-generated method stub return null; } }
91) Esiste un modo per aumentare la dimensione di un array dopo la sua dichiarazione?
Gli array sono statici e una volta specificata la loro dimensione, non possiamo modificarla. Se vogliamo utilizzare raccolte in cui potremmo richiedere un cambiamento di dimensione (n. di elementi), dovremmo preferire il vettore all'array.
92) Se un'applicazione contiene più classi, è corretto avere un metodo main in più di una classe?
Se è presente un metodo main in più di una classe in un'applicazione Java, ciò non causerà alcun problema poiché il punto di ingresso per qualsiasi applicazione sarà una classe specifica e il codice inizierà solo dal metodo main di quella particolare classe.
93) Voglio rendere persistenti i dati degli oggetti per un uso successivo. Qual è l'approccio migliore per farlo?
Il modo migliore per rendere persistenti i dati per un uso futuro è utilizzare il concetto di serializzazione.
94) In cosa consiste una lezione locale Java?
In Java, se definiamo una nuova classe all'interno di un particolare blocco, si chiama classe locale. Tale classe ha ambito locale e non è utilizzabile al di fuori del blocco in cui è definita.
95) Corda e CordaBuffer entrambi rappresentano oggetti String. Possiamo confrontare String e StringBuffer in Java?
Sebbene String e StringBuffer entrambi rappresentano oggetti String, non possiamo confrontarli tra loro e se proviamo a confrontarli, otteniamo un errore.
96) Da quale API viene fornita Java per operazioni su insiemi di oggetti?
Java fornisce un'API di raccolta che fornisce molti metodi utili che possono essere applicati a un insieme di oggetti. Alcune delle classi importanti fornite dall'API Collection includono ArrayList, HashMap, TreeSet e TreeMap.
97) Possiamo eseguire il cast di qualsiasi altro tipo su Boolean Type con il type casting?
No, non possiamo né eseguire il cast di nessun altro tipo primitivo sul tipo di dati booleano né possiamo eseguire il cast del tipo di dati booleano su qualsiasi altro tipo di dati primitivo.
98) Possiamo utilizzare diversi tipi di ritorno per i metodi quando vengono sovrascritti?
Il requisito fondamentale del metodo che prevale in Java è che il metodo sottoposto a override dovrebbe avere lo stesso nome e parametri. Ma un metodo può essere sovrascritto con un tipo restituito diverso purché il nuovo tipo restituito estenda l'originale.
Ad esempio, il metodo restituisce un tipo di riferimento.
Class B extends A { A method(int x) { //original method } B method(int x) { //overridden method } }
99) Qual è la classe base di tutte le classi di eccezioni?
In Java, Java.lang.Throwable
è la superclasse di tutte le classi di eccezioni e tutte le classi di eccezioni derivano da questa classe base.
100) Qual è l'ordine di chiamata dei costruttori in ereditarietà?
In caso di ereditarietà, quando viene creato un nuovo oggetto di una classe derivata, viene invocato prima il costruttore della superclasse e poi quello della classe derivata.
Preparati per il tuo colloquio di lavoro!!! Vai oltre Java Esercitazione per essere meglio preparati.
Questo dettagliato Java Mock Test Quiz ti aiuterà a chiarire i dubbi in merito Java domande dell'intervista e ti aiuterà anche a risolvere l'intervista.
Alcuni degli Java e a Java 8 domande per l'intervista ti aiuterà anche nella tua viva(orale)