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 ClassLoaderi 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 ArrayListog HashSeti Java? (svar)

tip: alle forskelle mellem Listog Seter 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 Hashtableog HashMapi Java? (svar)

tip: flere, men vigtigst er Hashtable, hvilket er synkroniseret, mens HashMapdet ikke er. Det er også arv og langsom sammenlignet med HashMap.

13) Forskel mellem Listog Set i Java? (svar)

tip: Listbestilles og tillader duplikering. Seter ikke ordnet og tillader ikke duplikatelementer.

14) Forskel mellem ArrayListog Vectori Java (svar)

tip: Mange, men vigtigst er, at ArrayListdet ikke er synkroniseret og hurtigt, mens det Vectorer synkroniseret og langsomt. Det er også arv klasse som Hashtable.

15) Forskel mellem Hashtableog ConcurrentHashMapi Java? (svar)

tip: mere skalerbar. Se Java Fundamentals: Collections af Richard Warburton for at lære mere.

16) Hvordan ConcurrentHashMapopnå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 Objectat blive brugt som Keyi 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 notifyog notifyAlli Java? (svar)

tip: notifygiver besked om, at en tilfældig tråd venter på denne lås, mens den notifyAllinformerer 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 notifyAller 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. HashMapeller ArrayList.

21) Hvad er middelets belastningsfaktor HashMap? (svar)

tip: Tærsklen, der udløser omstørrelsen af, HashMaper generelt 0,75, hvilket betyder at HashMapændre størrelsen på sig selv, hvis den er 75 procent fuld.

22) Forskel mellem ArrayListog LinkedListi 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 CountDownLatchog CyclicBarrieri Java? (svar)

tip: Du kan genbruge, CyclicBarrierefter at barrieren er brudt, men du kan ikke genbruge, CountDownLatchnår optællingen når til nul.

24) Hvornår bruger du Runnablevs Threadi 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 DayOfWeekdag, kan du ikke tildele den værdi fra DayOfMonthenum.

26) Hvordan fungerer autoboxing af heltal i Java? (svar)

tip: Ved at bruge valueOf()metoden i Java.

27) Forskel mellem PATHog Classpathi Java? (svar)

tip: PATHbruges af operativsystemet, mens Classpathdet 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, Classpathog 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 StringBuilderog StringBufferi Java? (svar)

tip: StringBuilderer ikke synkroniseret, mens den StringBufferer 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 ConcurrentModificationExceptionmens fail-fastgø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 IdentityHashMapi Java? (svar)

tip: A Map, der bruger ==lighedsoperatoren til at kontrollere lighed i stedet for equals()metoden.

41) Hvad er Stringpuljen i Java? (svar)

tip: En pulje af Stringbogstaver. Husk, at den er flyttet til en bunke fra perm genrum i JDK 7.

42) Kan en Serializableklasse 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 Comparatorog Comparablei Java? (svar)

tip: Comparatordefinerer brugerdefineret rækkefølge, mens Comparabledefinerer 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.Dateog java.sql.Datei 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 Objectklassen 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 Typeunderstø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
PS - Hvis du har brug for nogle GRATIS ressourcer til at lære Java, kan du tjekke denne liste over gratis Java-kurser for at starte din forberedelse.

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?