CodeGym/Java-blogg/Tilfeldig/Vanskelige Java-spørsmål som ofte stilles under intervjue...
John Squirrels
Nivå
San Francisco

Vanskelige Java-spørsmål som ofte stilles under intervjuer

Publisert i gruppen
Hvis du noen gang har forberedt deg på et intervju for en Java-programmererstilling eller bestått en sertifiseringseksamen (ikke nødvendigvis om programmering), så har du sannsynligvis allerede lagt merke til at spørsmålene som stilles der er veldig spesifikke. Mange av dem tvinger deg til å tenke på språkets design. Noen er designet for å undersøke dybden av kunnskapen din. Det er spørsmål som ser mer ut som gåter enn noe annet, mens andre forholder seg til nyanser av språket som er svært vanskelig å oppfatte uten øvelse. I denne artikkelen presenterer utvikler Sarans Sing noen få slike spørsmål om Java. Med svar, selvfølgelig. Vanskelige Java-spørsmål som ofte stilles under intervjuer - 11. Hva skjer hvis jeg legger en retursetning eller System.exit() i en try/catch-blokk? Dette er et veldig populært og subtilt Java-spørsmål. Trikset er at mange programmerere tror at blokken finallyalltid blir utført. Ved å plassere et returnutsagn i en try/catchblokk eller ringe System.exit()fra innsiden av en try/catchblokk, sår spørsmålet tvil om denne troen. Svaret på dette vanskelige spørsmålet er: blokken finallyvil bli utført når en returnsetning er plassert i en try/catchblokk, men vil ikke bli utført når System.exit()den kalles opp fra en try/catchblokk. 2. Støtter Java multippel arv? Dette er et veldig vanskelig spørsmål. Intervjuere spør ofte: "Hvis C ++ støtter direkte multippel arv, hvorfor kan ikke Java?" Svaret _er litt mer komplisert enn det kan virke, siden Java støtter arv av flere typer. Tross alt kan et Java-grensesnitt utvide andre grensesnitt. Når det er sagt, støtter ikke Java flere implementeringer. 3. Hvis en metode i en overordnet klasse kaster NullPointerExceptions, kan den overstyres av en metode som kaster RuntimeExceptions? Dette er et annet vanskelig spørsmål knyttet til overbelastning og overstyring. Svar: En overstyrt metode kan trygt kaste NullPointerExceptionsin overordnede klasse - RuntimeException, men du kan ikke gjøre det samme med en avmerket unntakstype som Exception. 4. Hvordan garanterer du at Ntråder kan få tilgang til Nressurser uten stopp? Hvis det ikke er din sterkeste å skrive flertrådskode, kan du virkelig snuble over dette spørsmålet. Det kan være vanskelig selv for en erfaren programmerer som ikke har støtt på vranglås og løpsforhold. Hele trikset her er i rekkefølgen: du kan forhindre deadlocks ved å frigjøre ressurser i motsatt rekkefølge som de ble anskaffet. 5. Hva er forskjellen mellom klassene StringBufferog StringBuilderi Java? Dette er et klassisk Java-språkspørsmål som noen utviklere synes er vanskelig og andre - veldig enkelt. Klassen StringBuilderdukket opp i JDK 1.5. Den eneste forskjellen mellom disse klassene er at StringBuffermetodene, som length(), capacity(), og append(), er synkronisert, mens de tilsvarende metodene iStringBuilderer ikke. Denne grunnleggende forskjellen betyr at strengsammenkobling er raskere med StringBuilderenn med StringBuffer. Egentlig StringBufferanbefales ikke bruk, siden strengsammenkobling utføres på samme tråd 99 % av tiden. 6. Hva er resultatet av å evaluere uttrykket 1.0/0.0? Vil det produsere et unntak eller en kompileringsfeil? Dette er nok et vanskelig spørsmål om klassen. Java-utviklere er klar over eksistensen av en primitiv dobbel datatype og en klasse, men når de utfører flyttalloperasjoner, tar de ikke nok hensyn til , , , og reglene som styrer tilhørende aritmetiske beregninger. Svaret på dette spørsmålet er enkelt: anVanskelige Java-spørsmål som ofte stilles under intervjuer - 2DoubleDoubleDouble.POSITIVE_INFINITYDouble.NEGATIVE_INFINITYNaN-0.0ArithmeticExceptionvil ikke bli kastet; uttrykket evalueres til Double.POSITIVE_INFINITY. 7. Hva skjer hvis du prøver å sette inn en nøkkel i en HashMapsom allerede inneholder den? Dette vanskelige spørsmålet er en del av et annet ofte stilt spørsmål: hvordan fungerer det HashMapi Java? HashMaper en populær kilde til forvirrende og vanskelige spørsmål om Java. Her er svaret: hvis du prøver å sette inn en nøkkel på nytt i en HashMap, vil den gamle nøkkelen bli erstattet, siden HashMapklassen ikke tillater dupliserte nøkler. Og den samme nøkkelen vil få samme hash-kode, noe som betyr at den havner på samme sted i hash-bøtta. Basert på Quora -materialer
Kommentarer
  • Populær
  • Ny
  • Gammel
Du må være pålogget for å legge igjen en kommentar
Denne siden har ingen kommentarer ennå