Gennemgå disse 50 spørgsmål for at knække dit Java-programmeringsinterview
En liste over ofte stillede Java-spørgsmål fra programmering af jobinterviews.

Hej allesammen! I løbet af de sidste par år har jeg delt en masse Java Interview-spørgsmål og diskussioner individuelt. Mange af mine læsere har bedt mig om at bringe dem sammen, så de kan have dem på samme sted. Dette indlæg er resultatet af det.
Denne artikel indeholder mere end 50 Java Interview-spørgsmål, der dækker alle vigtige emner som Core Java fundamentals, Java Collection Framework, Java Multithreading and Concurrency, Java IO, JDBC, JVM Internals, Coding Problems, Object-Oriented programmering osv.
Spørgsmålene hentes også fra forskellige interviews, og de er på ingen måde meget vanskelige. Du har måske set dem allerede i din telefon eller ansigt til ansigt runde af interviews.
Spørgsmålene er også meget nyttige til at gennemgå vigtige emner som multithreading og samlinger. Jeg har også delt nogle nyttige ressourcer til yderligere læring og forbedring som The Complete Java MasterClass for at pusse op og udfylde huller i dine Java-færdigheder.
Så hvad venter vi på? Her er listen over nogle af de hyppigst stillede Java-spørgsmål i interviews for både begyndere og erfarne Java-udviklere.
50+ Java-interviewspørgsmål i 2 til 3 år erfarne programmører
Så uden at spilde mere af din tid, her er min liste over nogle af de ofte stillede Core Java Interview-spørgsmål til nybegynderprogrammerere. Denne liste fokuserer på begyndere og mindre erfarne devs, som en person med 2 til 3 års erfaring i Java.
1) Hvordan opnår Java uafhængighed af platformen? (svar)
tip: bytecode og Java Virtual Machine
2) Hvad er der ClassLoader
i Java? (svar)
tip: del af JVM, der indlæser bytekoder til klasser. Du kan skrive din egen.
3) Skriv et Java-program for at kontrollere, om et nummer er lige eller ulige? (svar)
tip: du kan bruge bitvis operator, ligesom bitvis OG, husk, selv tallet har nul i slutningen i binært format, og et ulige tal har 1 i slutningen.
4) Forskel mellem ArrayList
og HashSet
i Java? (svar)
tip: alle forskelle mellem List
og Set
er anvendelige her, f.eks. rækkefølge, duplikater, tilfældig søgning osv. Se Java Fundamentals: Collections af Richard Warburton for at lære mere om ArrayList, HashSet og andre vigtige samlinger i Java.

5) Hvad er dobbeltkontrolleret låsning i Singleton? (svar)
tip: Kontroller to gange, om forekomster er initialiseret eller ej, først uden låsning og andet med låsning.
6) Hvordan opretter du trådsikker Singleton i Java? (svar)
tip: mange måder, som at bruge Enum eller ved at bruge dobbeltkontrolleret låsemønster eller bruge en indlejret statisk klasse.
7) Hvornår skal jeg bruge den flygtige variabel i Java? (svar)
tip: når du har brug for at instruere JVM om, at en variabel kan ændres af flere tråde og give et tip til JVM, der ikke cache dens værdi.
8) Hvornår skal jeg bruge en forbigående variabel i Java? (svar)
tip: når du vil lave en variabel, der ikke kan serienummeres i en klasse, som implementerer Serializable-grænsefladen. Med andre ord kan du bruge den til en variabel, hvis værdi du ikke vil gemme. Se Den komplette Java MasterClass for at lære om forbigående variabler i Java.
9) Forskel mellem den forbigående og flygtige variabel i Java? (svar)
tip: helt anderledes, den ene bruges i sammenhæng med serialisering, mens den anden bruges i samtidighed.
10) Forskel mellem Serializable og Externalizable i Java? (svar)
tip: Eksternaliserbar giver dig mere kontrol over serialiseringsprocessen.
11) Kan vi tilsidesætte den private metode i Java? (svar)
tip: Nej, fordi det ikke er synligt i underklassen, et primært krav for at tilsidesætte en metode i Java.
12) Forskel mellem Hashtable
og HashMap
i Java? (svar)
tip: flere, men vigtigst er Hashtable
, hvilket er synkroniseret, mens HashMap
det ikke er. Det er også arv og langsom sammenlignet med HashMap
.
13) Forskel mellem List
og Set
i Java? (svar)
tip: List
bestilles og tillader duplikering. Set
er ikke ordnet og tillader ikke duplikatelementer.
14) Forskel mellem ArrayList
og Vector
i Java (svar)
tip: Mange, men vigtigst er, at ArrayList
det ikke er synkroniseret og hurtigt, mens det Vector
er synkroniseret og langsomt. Det er også arv klasse som Hashtable
.
15) Forskel mellem Hashtable
og ConcurrentHashMap
i Java? (svar)
tip: mere skalerbar. Se Java Fundamentals: Collections af Richard Warburton for at lære mere.
16) Hvordan ConcurrentHashMap
opnås skalerbarhed? (svar)
tip: ved at opdele kortet i segmenter og kun låse under skriveoperationen.
17) Hvilke to metoder vil du tilsidesætte for Object
at blive brugt som Key
i HashMap
? (svar)
tip: er lig med og hashkode
18) Forskel mellem ventetid og søvn i Java? (svar)
tip: wait()
Metoden frigiver låsen eller skærmen, mens søvn ikke gør det.
19) Forskel mellem notify
og notifyAll
i Java? (svar)
tip: notify
giver besked om, at en tilfældig tråd venter på denne lås, mens den notifyAll
informerer til alle tråde, der venter på en skærm. Hvis du er sikker på, at kun en tråd venter, skal du bruge notify
, ellers notifyAll
er det bedre. Se Threading Essentials Mini-Courseaf Java Champion Heinz Kabutz for at lære mere om trådning af det grundlæggende.
20) Hvorfor tilsidesætter du hashcode sammen med equals()
i Java? (svar)
tip: at være i overensstemmelse med ligestillings- og hashcode-kontrakt, hvilket er nødvendigt, hvis du planlægger at gemme dit objekt i samlingsklasser, f.eks. HashMap
eller ArrayList
.
21) Hvad er middelets belastningsfaktor HashMap
? (svar)
tip: Tærsklen, der udløser omstørrelsen af, HashMap
er generelt 0,75, hvilket betyder at HashMap
ændre størrelsen på sig selv, hvis den er 75 procent fuld.
22) Forskel mellem ArrayList
og LinkedList
i Java? (svar)
tip: det samme som et array og en sammenkædet liste, man tillader tilfældig søgning, mens andre ikke gør det. Indsættelse og sletning er let på den sammenkædede liste, men en søgning er let i en matrix. Se Java Fundamentals: Collections , Richard Warburtons kursus om Pluralsight, for at lære mere om vigtig datastruktur for samling i Java.
23) Forskel mellem CountDownLatch
og CyclicBarrier
i Java? (svar)
tip: Du kan genbruge, CyclicBarrier
efter at barrieren er brudt, men du kan ikke genbruge, CountDownLatch
når optællingen når til nul.
24) Hvornår bruger du Runnable
vs Thread
i Java? (svar)
tip: altid
25) Hvad er meningen med Enum at være typesikker i Java? (svar)
tip: Det betyder, at du ikke kan tildele en forekomst af anden Enum-type til en Enum-variabel. f.eks. hvis du har en variabel som DayOfWeek
dag, kan du ikke tildele den værdi fra DayOfMonth
enum.
26) Hvordan fungerer autoboxing af heltal i Java? (svar)
tip: Ved at bruge valueOf()
metoden i Java.
27) Forskel mellem PATH
og Classpath
i Java? (svar)
tip: PATH
bruges af operativsystemet, mens Classpath
det bruges af JVM til at lokalisere Java-binære, f.eks. JAR-filer eller Klassefiler. Se Java Fundamentals: Core platformen for at lære mere om PATH
, Classpath
og andre Java-miljøvariablen.

28) Forskel mellem overbelastning af metoder og tilsidesættelse i Java? (svar)
tip: Overstyring sker i underklasse, mens overbelastning sker i samme klasse. Overstyring er også en runtime-aktivitet, mens overbelastning løses på kompileringstidspunktet.
29) Hvordan forhindrer du en klasse i at blive underklasseret i Java? (svar)
tip: bare gør sin konstruktør privat
30) Hvordan begrænser du din klasse fra at blive brugt af din klient? (svar)
tip: Gør konstruktøren privat eller kast en undtagelse fra konstruktøren
31) Forskel mellem StringBuilder
og StringBuffer
i Java? (svar)
tip: StringBuilder
er ikke synkroniseret, mens den StringBuffer
er synkroniseret.
32) Forskel mellem polymorfisme og arv i Java? (svar)
tip: Arv tillader genbrug af kode og bygger forholdet mellem klasse, hvilket kræves af polymorfisme, som giver dynamisk adfærd. Se Java Fundamentals: Object-Oriented Designfor at lære mere om OOP-funktioner.
33) Kan vi tilsidesætte statisk metode i Java? (svar)
tip: Nej, fordi tilsidesættelse løser ved kørsel, mens statisk metodeopkald løses på kompileringstidspunktet.
34) Kan vi få adgang til den private metode i Java? (svar)
tip: ja, i samme klasse men ikke uden for klassen
35) Forskel mellem interface og abstrakt klasse i Java? (svar)
tip: fra Java 8 er forskellen sløret. En Java-klasse kan dog stadig implementere flere grænseflader, men kan kun udvide en klasse.
36) Forskel mellem DOM og SAX parser i Java? (svar)
tip: DOM indlæser hele XML-filer i hukommelsen, mens SAX ikke gør det. Det er en hændelsesbaseret parser og kan bruges til at analysere en stor fil, men DOM er hurtig og bør foretrækkes for små filer.
37) Forskel mellem kaste og kaste nøgleord i Java? (svar)
tip: kast erklærer, hvilken undtagelse en metode kan kaste i tilfælde af fejl, men kast nøgleord kaster faktisk en undtagelse. Se Java Fundamentals: Undtagelseshåndtering for at lære mere om undtagelseshåndtering i Java.

38) Forskel mellem fail-safe og fail-fast iteratorer i Java? (svar)
tip: fail-safe kaster ikke ConcurrentModificationException
mens fail-fast
gør, når de registrerer en ekstern ændring på den underliggende samling, mens de gentager sig over den.
39) Forskel mellem Iterator og Enumeration i Java? (svar)
tip: Iterator giver dig også mulighed for at fjerne et element, mens det gentages, mens Enumeration ikke tillader det.
40) Hvad er der IdentityHashMap
i Java? (svar)
tip: A Map
, der bruger ==
lighedsoperatoren til at kontrollere lighed i stedet for equals()
metoden.
41) Hvad er String
puljen i Java? (svar)
tip: En pulje af String
bogstaver. Husk, at den er flyttet til en bunke fra perm genrum i JDK 7.
42) Kan en Serializable
klasse indeholde et felt, der ikke kan serialiseres i Java? (svar)
tip: Ja, men du skal gøre det enten statisk eller kortvarigt.
43) Forskel mellem dette og super i Java? (svar)
tip: dette refererer til den aktuelle forekomst, mens super henviser til en forekomst af superklassen.
44) Forskel mellem Comparator
og Comparable
i Java? (svar)
tip: Comparator
definerer brugerdefineret rækkefølge, mens Comparable
definerer den naturlige rækkefølge af objekter, f.eks. den alfabetiske rækkefølge for String
. Se Den komplette Java MasterClass for at lære mere om sortering i Java.

45) Forskel mellem java.util.Date
og java.sql.Date
i Java? (svar)
tip: tidligere indeholder både dato og klokkeslæt, mens senere kun indeholder datodel.
46) Hvorfor vente og underrette metode erklæres i Object
klassen i Java? (svar)
tip: fordi de kræver lås, som kun er tilgængelig for et objekt.
47) Hvorfor understøtter Java ikke flere arvinger? (svar)
tip: Det understøtter ikke på grund af en dårlig oplevelse med C ++, men med Java 8 gør det det på en eller anden måde - kun flere arvinger Type
understøttes ikke i Java nu.
48) Forskel mellem afkrydset og ukontrolleret undtagelse i Java? (svar)
tip: I tilfælde af markeret skal du håndtere undtagelse ved hjælp af fangstblok, mens det i tilfælde af ukontrolleret er op til dig; kompilering generer dig ikke.
49) Forskel mellem fejl og undtagelse i Java? (svar)
tip: Jeg er træt af at skrive. Kontroller svaret
50) Forskel mellem Race-tilstand og Deadlock i Java? (svar)
tip: begge er fejl, der opstår i en samtidig applikation, den ene opstår på grund af trådplanlægning, mens andre opstår på grund af dårlig kodning. Se Multithreading og Parallel Computing i Java for at lære mere om deadlock, race betingelser og andre multithreading-problemer.
Afsluttende noter
Tak, du kom til slutningen af artiklen ... Held og lykke med dit programmeringsinterview! Det vil bestemt ikke være let, men ved at følge denne køreplan og vejledning er du et skridt tættere på at blive DevOps-ingeniør.
Hvis du kan lide denne artikel, så del den med dine venner og kolleger, og glem ikke at følge javinpaul på Twitter!
Yderligere ressourcer
- Java Interview Guide: 200+ Interviewspørgsmål og -svar
- Spring Framework Interview Guide - 200+ spørgsmål og svar
- Forberedelse til et jobinterview af John Sonmez
- Java-programmeringsinterview eksponeret af Markham
- Cracking the Coding Interview - 189 spørgsmål og svar
- Datastruktur og algoritmeanalyse til jobinterviews
- 130+ Java-interviewspørgsmål fra de sidste 5 år
PSS - Jeg har ikke givet svaret på interviewspørgsmålene, der deles i billedet "Hvor mange strengobjekter oprettes i koden?" kan du gætte og forklare?