JavaRush /Java Blog /Random-IT /Domande complicate su Java che vengono spesso poste nelle...

Domande complicate su Java che vengono spesso poste nelle interviste

Pubblicato nel gruppo Random-IT
Se ti sei mai preparato per un colloquio per la posizione di programmatore Java o hai sostenuto qualche esame (non necessariamente di programmazione) per ottenere un certificato, molto probabilmente hai già notato che le domande che fanno sono molto specifiche. Molti di loro ti fanno pensare all'architettura della lingua, altri sono progettati per una conoscenza approfondita. Ci sono anche quelli che sono più simili a enigmi o riguardano sfumature che sono molto difficili da percepire senza pratica. In questo articolo, lo sviluppatore Saraans Singh fornisce diverse domande simili su Java. Con risposte, ovviamente. Domande complicate su Java che vengono spesso poste nelle interviste - 11. Cosa succede se inserisci un'istruzione return o System.exit() in un blocco try/catch? Questa è una domanda di recupero molto popolare in Java. Il problema è che molti programmatori credono che il blocco finallyverrà eseguito comunque. Questa domanda sfida questo concetto inserendo un'istruzione returnin un blocco try/catcho chiamando da un blocco try/catchdi istruzioni System.exit (). La risposta a questa domanda complicata: il blocco finallyverrà eseguito quando un'istruzione viene inserita returnin un blocco try/catche non verrà eseguito quando viene chiamato da un blocco try/catchdi istruzioni System.exit (). 2. Java supporta l'ereditarietà multipla? Questa è una domanda molto complicata. Gli intervistatori spesso dicono: se il C++ può supportare l'ereditarietà multipla diretta, perché Java non può farlo? La risposta è un po' più complicata di quanto possa sembrare, poiché Java supporta l'ereditarietà di tipi multipli, poiché un'interfaccia al suo interno può estendere altre interfacce. Ma il linguaggio Java non supporta l'ereditarietà multipla delle implementazioni. 3. Nel caso in cui un metodo lanci un'eccezione NullPointerExceptionnella classe genitore, può essere sovrascritto dal metodo che lancia RuntimeException? Un'altra domanda complicata riguarda i concetti di sovraccarico e override. Risposta: puoi tranquillamente lanciare un'eccezione della classe genitore in un metodo sovrascritto NullPointerException – RuntimeException, ma non puoi fare lo stesso con un'eccezione controllata di tipo Exception. 4. Come garantire che i thread possano accedere alle risorse senza bloccarsi? NN Se non sei molto bravo a scrivere codice multi-thread, questa domanda sarà davvero complicata per te. Può essere impegnativo anche per un programmatore esperto che non ha avuto a che fare con situazioni di stallo e condizioni di gara. Il trucco qui sta nell’ordine: lo stallo può essere evitato liberando le risorse nell’ordine inverso in cui sono state acquisite. 5. Qual è la differenza tra le classi StringBuffere StringBuildernel linguaggio Java? Una classica domanda sul linguaggio Java, considerata complicata da alcuni sviluppatori e molto semplice da altri. La classe StringBuilderè stata introdotta in JDK 1.5 e l'unica differenza tra loro è che i metodi della classe StringBuffer, ad esempio, length()o capacity(), append()sono sincronizzati, mentre i metodi corrispondenti della classe StringBuildernon lo sono. A causa di questa differenza fondamentale, la concatenazione delle stringhe StringBuilderè più veloce con StringBuffer. In effetti, StringBufferse ne sconsiglia l'utilizzo, poiché nel 99% dei casi d'uso la concatenazione delle stringhe avviene sullo stesso thread. 6. Cosa restituisce l'espressione 1.0/0.0? Genererà un'eccezione o causerà un errore di compilazione? Un'altra domanda complicata sulla classe Double. Sebbene gli sviluppatori Java siano consapevoli del semplice tipo di dati double e della classe , quando eseguono operazioni in virgola mobile , Doublenon prestano sufficiente attenzione a Double.INFINITY, e alle regole che governano i calcoli aritmetici ad essi associati. La risposta a questa domanda è semplice: non verrà generata alcuna eccezione , verrà restituito il valore . 7. Cosa succede se provi a inserire un oggetto chiave in un oggetto chiave che già esiste al suo interno? Questa domanda complicata fa parte di un'altra domanda frequente: come funzionano in Java? è un argomento popolare per domande confuse e complicate sul linguaggio Java. La risposta è che se provi a reinserire una chiave in , sostituirà quella vecchia perché la classe non consente chiavi duplicate. E la stessa chiave significa lo stesso codice hash, quindi finirà nello stesso posto nel segmento hash. Basato su materiali di QuoraNaN-0.0ArithmeticExceptionDouble.INFINITYHashMapHashMapHashMapHashMapHashMap
Commenti
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION