Lataa PDF
Olemme koonneet yleisimmin kysytyt Java-haastattelukysymykset ja -vastaukset, jotka auttavat sinua valmistautumaan Java-haastattelun peruskysymyksiin, joita haastattelija saattaa kysyä haastattelusi aikana. Tässä Java-perushaastattelukysymysten luettelossa olemme käsitelleet kaikki yleisesti kysytyt perus- ja edistyneet Core Java -haastattelukysymykset yksityiskohtaisilla vastauksilla, jotka auttavat sinua selvittämään työhaastattelun.
Seuraava luettelo sisältää 100 tärkeää Java-haastattelukysymystä aloittelijoille sekä Java-haastattelukysymyksiä ja vastauksia kokeneille ohjelmoijille, jotta he voivat valmistautua haastatteluun. Tämä Java-ohjelmoinnin haastattelukysymysten yksityiskohtainen opas auttaa sinua purkamaan työhaastattelusi helposti.
Java-haastattelun ydinkysymykset ja vastaukset aloittelijoille ja kokeneille
Q1. Mitä eroa on sisä- ja alaluokassa?
Ans: Sisempi luokka on luokka, joka on sisäkkäin toisessa luokassa. Sisäisellä luokalla on käyttöoikeudet sitä pesivälle luokalle, ja se voi käyttää kaikkia ulommassa luokassa määriteltyjä muuttujia ja menetelmiä.
Alaluokka on luokka, joka perii toisesta luokasta nimeltä superluokka. Alaluokka voi käyttää kaikkia superluokan julkisia ja suojattuja menetelmiä ja kenttiä.
Q2. Mitkä ovat Java-luokkien käyttöoikeuksien eritelmät?
Ans: Java-ohjelmassa käyttöoikeuksien määrittelijät ovat avainsanoja, joita käytetään ennen luokan nimeä, joka määrittää pääsyn laajuuden. Luokkien käyttöoikeuksien määrittelijöiden tyypit ovat:
1. Julkinen: luokka, menetelmä, kenttä ovat käytettävissä mistä tahansa.
2. Suojattu: Menetelmä, kenttä voidaan käyttää samasta luokasta, johon he kuuluvat, tai alaluokista ja saman paketin luokasta, mutta ei ulkopuolelta.
3. Oletus: Menetelmään, kenttään, luokkaan pääsee vain samasta paketista, ei sen alkuperäisen paketin ulkopuolelta.
4. Yksityinen: menetelmä, kenttä voidaan käyttää samasta luokasta, johon he kuuluvat.
Q3. Mikä on staattisten menetelmien ja staattisten muuttujien tarkoitus?
V: Kun vaaditaan menetelmän tai muuttujan jakamista luokan useiden objektien välillä sen sijaan, että luodaan erilliset kopiot kullekin objektille, käytämme staattista avainsanaa metodin tai muuttujan jakamiseksi kaikille kohteille.
Q4. Mikä on tietojen kapselointi ja mikä on sen merkitys?
Ans: Kapselointi on olio-ohjelmoinnin käsite, joka yhdistää ominaisuudet ja menetelmät yhteen yksikköön.
Kapselointi auttaa ohjelmoijia noudattamaan modulaarista lähestymistapaa ohjelmistokehitykseen, koska jokaisella objektilla on omat menetelmät ja muuttujat ja se palvelee toimintojaan muista esineistä riippumatta. Kapselointi palvelee myös tietojen piilottamista.
Q5. Mikä on singleton-luokka? Anna käytännön esimerkki sen käytöstä.
Jaavan singleton-luokassa voi olla vain yksi esiintymä, joten kaikki sen menetelmät ja muuttujat kuuluvat vain yhteen esiintymään. Singleton-luokan käsite on hyödyllinen tilanteissa, joissa on tarpeen rajoittaa luokan objektien määrää.
Paras esimerkki yksittäisistä käyttöskenaarioista on, kun vain yksi yhteys tietokantaan on rajoitettu ajurirajoitusten tai lisensointiongelmien vuoksi.
Q6. Mitä ovat Java-silmukat? Mitkä ovat kolmen tyyppisiä silmukoita?
V: Silmukkaa käytetään ohjelmoinnissa lauseen tai lauselohkon suorittamiseen toistuvasti. Javaissa on kolmen tyyppisiä silmukoita:
1) Silmukoille
Silmukoita käytetään jaavassa lauseiden suorittamiseen toistuvasti tietyn määrän kertoja. Silmukoita käytetään, kun ohjelmoija tietää kuinka monta kertaa lauseiden suorittamiseen.
2) Silmukoiden aikana
Vaikka silmukkaa käytetään, kun tietyt lauseet on suoritettava toistuvasti, kunnes ehto täyttyy. Silmukoiden ollessa silmukassa kunto tarkistetaan ensin ennen käskyjen suorittamista.
3) Tee silmukoiden aikana
Do While Loop on sama kuin While-silmukka, jolla on vain ero, että ehto tarkistetaan lause lauseen suorittamisen jälkeen. Siksi do while -silmukan tapauksessa lauseet suoritetaan ainakin kerran.
K7: Mikä on ääretön silmukka? Kuinka ääretön silmukka ilmoitetaan?
Ans: Ääretön silmukka kulkee ilman ehtoja ja kulkee loputtomasti. Ääretön silmukka voidaan rikkoa määrittelemällä mikä tahansa katkaisulogiikka lauselohkojen rungossa.
Ääretön silmukka ilmoitetaan seuraavasti:
for (;;){// Statements to execute// Add any loop breaking logic}
Q8. Mitä eroa on jatko- ja taukolausekkeella?
Ans: tauko ja jatka ovat kaksi tärkeää avainsanaa, joita käytetään silmukoissa. Kun tauon avainsanaa käytetään silmukassa, silmukka katkeaa heti, kun jatko-avainsanaa käytetään, nykyinen iteraatio katkeaa ja silmukka jatkuu seuraavalla iteraatiolla.
Alla olevassa esimerkissä silmukka rikkoutuu, kun laskuri saavuttaa 4.
for (counter = 0; counter & lt; 10; counter++)system.out.println(counter);if (counter == 4) {break;}}
Alla olevassa esimerkissä, kun laskuri saavuttaa 4, silmukka siirtyy seuraavaan iteraatioon ja kaikki jatko-avainsanan jälkeiset lauseet ohitetaan nykyiselle iteraatiolle.
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");}
Q9. Mitä eroa on kaksois- ja kelluvien muuttujien välillä Java-ohjelmassa?
Ans: Java-tilassa float vie 4 tavua muistiin, kun taas Double vie 8 tavua muistiin. Float on yhden tarkkuuden liukuluvun desimaaliluku, kun taas Double on kaksinkertainen tarkkuusluku.
Q10. Mikä on Java: n viimeinen avainsana? Anna esimerkki.
Ans: Jaavassa vakio ilmoitetaan käyttämällä avainsanaa Lopullinen. Arvo voidaan määrittää vain kerran, ja vakion arvoa ei voida muuttaa osoituksen jälkeen.
Alla olevassa esimerkissä vakio, jonka nimi on const_val, julistetaan ja sille annetaan viiva:
Yksityinen loppu int const_val = 100
Kun menetelmä julistetaan lopulliseksi, alaluokat EI voi ohittaa tätä menetelmää. Tämä menetelmä on nopeampi kuin mikään muu menetelmä, koska ne ratkaistaan noudatetussa ajassa.
Kun luokka julistetaan lopulliseksi, sitä ei voida luokitella alaluokkaan. Esimerkki merkkijono-, kokonaisluku- ja muista kääre-luokista
Q11. Mikä on kolminkertainen operaattori? Anna esimerkki.
Ans: Ternary-operaattoria, jota kutsutaan myös ehdolliseksi operaattoriksi, käytetään päättämään, mikä arvo määritetään muuttujalle Boolen arvon arvioinnin perusteella. Se on merkitty nimellä?
Alla olevassa esimerkissä, jos sijoitus on 1, tilalle annetaan arvo "Valmis" tai "Odottaa".
public class conditionTest {public static void main(String args[]) {String status;int rank = 3;status = (rank == 1) ? "Done" : "Pending";System.out.println(status);}}
Kysymys 12: Kuinka voit luoda satunnaislukuja Javassa?
Ans:
- Math.random () -sovelluksen avulla voit luoda satunnaislukuja välillä 0,1 tai vähemmän ja alle 1,0
- Random-luokan käyttäminen paketissa java.util
Q13. Mikä on kytkimen oletusarvo? Anna esimerkki.
V: Kytkinlausekkeessa oletustapaus suoritetaan, kun mikään muu kytkin ehto ei täsmää. Oletustapaus on valinnainen tapaus, joka voidaan ilmoittaa vasta, kun kaikki muut kytkentätapaukset on koodattu.
Alla olevassa esimerkissä, kun pistemäärä ei ole 1 tai 2, käytetään oletusarvoista kirjainta.
public class switchExample {int score = 4;public static void main(String args[]) {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");}}}
Q14. Mikä on Java-perusluokka, josta kaikki luokat on johdettu?
Ans: java.lang.objekti
Q15. Voiko Java () -metodi palauttaa tietoja?
V: Jaava, main () -menetelmä ei voi palauttaa tietoja, joten se ilmoitetaan aina tyhjällä palautustyypillä.
Q16. Mitä Java-paketit ovat? Mikä on pakettien merkitys?
Ans: Java-ohjelmassa paketti on kokoelma luokkia ja rajapintoja, jotka niputetaan yhteen, koska ne liittyvät toisiinsa. Pakettien käyttö auttaa kehittäjiä moduloimaan koodin ja ryhmittelemään koodin asianmukaista uudelleenkäyttöä varten. Kun koodi on pakattu paketteihin, se voidaan tuoda muihin luokkiin ja käyttää.
Q17. Voimmeko julistaa luokan abstraktiksi ilman mitään abstraktia menetelmää?
V: Kyllä, voimme luoda abstraktin luokan käyttämällä abstraktia avainsanaa ennen luokan nimeä, vaikka sillä ei olisi mitään abstraktia menetelmää. Jos luokassa on kuitenkin yksi abstrakti menetelmä, se on julistettava abstraktiksi, muuten se antaa virheen.
Q18. Mitä eroa on abstraktin luokan ja Java-käyttöliittymän välillä?
V: Ensisijainen ero abstraktin luokan ja käyttöliittymän välillä on se, että rajapinnalla voi olla vain julkisten staattisten menetelmien ilmoitus ilman konkreettista toteutusta, kun taas abstraktissa luokassa voi olla jäseniä, joilla on kaikki pääsyn määrittelijät (julkiset, yksityiset jne.), Konkreettisella toteutuksella tai ilman.
Toinen keskeinen ero abstraktien luokkien ja rajapintojen käytössä on, että luokan, joka toteuttaa rajapinnan, on toteutettava kaikki käyttöliittymän menetelmät, kun taas abstraktista luokasta perivä luokka ei vaadi kaikkien superluokan menetelmien toteuttamista.
Luokka voi toteuttaa useita rajapintoja, mutta se voi laajentaa vain yhtä abstraktia luokkaa.
Q19. Mitkä ovat rajapintojen suorituskyvyn vaikutukset abstrakteihin luokkiin?
V: Liitännät ovat hitaampia suorituskyvyssä verrattuna abstrakteihin luokkiin, koska rajapinnoille vaaditaan ylimääräisiä suuntaviivoja. Toinen avaintekijä kehittäjien on otettava huomioon, että mikä tahansa luokka voi laajentaa vain yhtä abstraktia luokkaa, kun taas luokka voi toteuttaa monia rajapintoja.
Rajapintojen käyttö tuo myös ylimääräisen taakan kehittäjille, koska käyttöliittymä otetaan käyttöön luokassa. kehittäjä on pakko toteuttaa jokainen käyttöliittymämenetelmä.
Q20. Tuo paketin tuonti myös sen alipaketit Java-muodossa?
V: Jaavassa pakettia tuotaessa sen alipaketteja ei tuoda, ja kehittäjän on tuotava ne erikseen tarvittaessa.
Esimerkiksi, jos kehittäjä tuo pakettiyliopiston. *, Kaikki yliopiston nimisen paketin luokat ladataan, mutta mitään alipaketin luokkia ei ladata. Luokkien lataamiseksi alipaketistaan (esim. Osastolta) kehittäjän on tuotava se nimenomaisesti seuraavasti:
Tuo yliopisto. Osasto. *
Q21. Voimmeko julistaa luokkamme päämenetelmän yksityiseksi?
V: Jaavassa päämenetelmän on oltava julkinen staattinen, jotta sovelluksia voidaan käyttää oikein. Jos päämenetelmä julistetaan yksityiseksi, kehittäjä ei saa kokoamisvirhettä, mutta sitä ei suoriteta ja se antaa ajonaikaisen virheen.
Q22. Kuinka voimme välittää argumentin funktiolle viitteenä arvon välittämisen sijaan?
Ans: Jaavassa voimme välittää argumentin funktiolle vain arvon perusteella eikä viitteellä.
Q23. Kuinka objekti sarjoitetaan jaavassa?
Ans: Jos haluat muuntaa objektin tavuvirraksi sarjakuvalla, luokka toteuttaa Serializable-nimisen käyttöliittymän. Kaikki sarjoitettavissa olevan käyttöliittymän toteuttavat luokan objektit sarjoitetaan ja niiden tila tallennetaan tavuvirtaan.
Q24. Milloin meidän pitäisi käyttää sarjallisuutta?
V: Sarjausta käytetään, kun tietoja on lähetettävä verkon kautta. Sarjauksen avulla objektin tila tallennetaan ja muunnetaan tavuvirraksi. Tavu-virta siirretään verkon kautta ja objekti luodaan uudelleen määränpäähän.
Q25. Onko pakollista, että Try-lohkon jälkeen seuraa Java-salauslohko poikkeusten käsittelyä varten?
V: Kokeilulohkoa on seurattava joko Catch-lohko tai Lopuksi-lohko tai molemmat. Kaikki kokeilulohkosta heitetyt poikkeukset on joko siepattava salauslohkoon tai muuten suoritettavat tehtävät ennen koodin keskeyttämistä Lopullinen-lohkoon.
Q26. Onko mitään tapaa ohittaa viimeinen poikkeuslohko, vaikka poikkeuslohkossa esiintyisi jotain poikkeusta?
V: Jos Try-lohkossa nostetaan poikkeus, ohjaus siirtää kiinni lohkoon, jos lopulta esto on olemassa. Lopuksi lohko suoritetaan aina poikkeuksen sattuessa, ja ainoa tapa välttää minkä tahansa lauseen suorittaminen Lopullinen lohkossa on keskeyttämällä koodi väkisin kirjoittamalla seuraava koodirivi kokeilulohkon loppuun:
System.exit(0);
Q27. Kun luokan rakentaja vedotaan?
V: Luokan rakentaja kutsutaan joka kerta, kun objekti luodaan uudella avainsanalla.
Esimerkiksi seuraavassa luokassa kaksi objektia luodaan käyttämällä uutta avainsanaa, ja siksi konstruktori kutsutaan kaksi kertaa.
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();}}
Q28. Voiko luokassa olla useita rakentajia?
V: Kyllä, luokassa voi olla useita rakentajia, joilla on erilaiset parametrit. Kumpi konstruktori käytetään objektien luomiseen, riippuu objektien luomisen aikana syötetyistä argumenteista.
Q29. Voimmeko ohittaa luokan staattiset menetelmät?
Ans: Emme voi ohittaa staattisia menetelmiä. Staattiset menetelmät kuuluvat luokkaan eivätkä yksittäisiin objekteihin, ja ne ratkaistaan laatimishetkellä (ei ajonaikana). Vaikka yritämme ohittaa staattisen menetelmän, emme saa täydennysvirhettä eikä ohituksen vaikutusta suoritettaessa koodi.
Q30. Mikä on tulos alla olevassa esimerkissä?
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 : Tulos on:
Näytetään alaluokasta
Näytetään yläluokalta
Q31. Onko merkkijono tietotyyppi jaavassa?
Ans: Merkkijono ei ole primitiivinen tietotyyppi jaavassa. Kun merkkijono luodaan java, se on itse asiassa Java.Lang.String-luokan objekti, joka luodaan. Tämän merkkijono-objektin luomisen jälkeen kaikkia merkkijonoluokan sisäänrakennettuja menetelmiä voidaan käyttää merkkijono-objektissa.
Q32. Kuinka monta merkkijono-objektia luodaan alla olevassa esimerkissä?
String s1="I am Java Expert";String s2="I am C Expert";String s3="I am Java Expert";
Ans: Yllä olevassa esimerkissä luodaan kaksi Java.Lang.String-luokan objektia. s1 ja s3 ovat viittauksia samaan objektiin.
Q33. Miksi Java-kieliä kutsutaan muuttumattomiksi?
V: Jaavassa merkkijono-objekteja kutsutaan muuttumattomiksi, koska kun merkkijonolle on annettu arvo, sitä ei voi muuttaa, ja jos sitä muutetaan, luodaan uusi objekti.
Alla olevassa esimerkissä viite str viittaa merkkijono-objektiin, jonka arvo on "Arvo yksi".
String str="Value One";
Kun sille määritetään uusi arvo, luodaan uusi merkkijono-objekti ja viite siirretään uuteen objektiin.
str="New Value";
Q34. Mitä eroa on taulukossa ja vektorissa?
Ans: Taulukko ryhmittelee samaa primitiivistä tyyppiä olevat tiedot ja on luonteeltaan staattisia, kun taas vektorit ovat luonteeltaan dynaamisia ja voivat sisältää erityyppisiä tietoja.
Q35. Mikä on monisäikeinen?
V: Monisäikeinen on ohjelmointikonsepti, joka suorittaa useita tehtäviä samanaikaisesti yhdessä ohjelmassa. Langoilla on sama prosessipino ja ne kulkevat rinnakkain. Se auttaa parantamaan minkä tahansa ohjelman suorituskykyä.
Q36. Miksi juoksevaa käyttöliittymää käytetään Java-ohjelmassa?
V: Suoritettavaa käyttöliittymää käytetään java-sovelluksessa monisäikeisten sovellusten toteuttamiseen. Luokka toteuttaa Java.Lang.Runnable-käyttöliittymän tukemaan monisäikeisyyttä.
Q37. Mitkä ovat kaksi tapaa toteuttaa monisäikeinen Java?
V: Monisäikeisiä sovelluksia voidaan kehittää Java-ohjelmassa jollakin seuraavista kahdesta menetelmästä:
1. Käyttämällä Java.Lang.Runnable Interface. Luokat toteuttavat tämän käyttöliittymän mahdollistamaan monisäikeisyyden. Tässä käyttöliittymässä on Run () -menetelmä, joka on toteutettu.
2. Kirjoittamalla luokka, joka laajentaa Java.Lang.Thread-luokkaa.
Q38. Kun tietoja vaaditaan paljon muutoksia, mitä niistä tulisi käyttää? String vai StringBuffer?
V: Koska StringBuffers ovat luonteeltaan dynaamisia ja voimme muuttaa StringBuffer-objektien arvoja toisin kuin String, joka on muuttumaton, on aina hyvä valita StringBuffer, kun tietoja muutetaan liikaa. Jos käytämme merkkijonoa tällaisessa tapauksessa, jokaiselle datamuutokselle luodaan uusi merkkijono-objekti, joka on ylimääräinen yleiskustannus.
Q39. Mikä on Break-käytön tarkoitus kussakin Switch Statement -tapauksessa?
Ans: Taukoa käytetään kytkimen jokaisen tapauksen jälkeen (paitsi viimeinen) niin, että koodi rikkoutuu voimassa olevan tapauksen jälkeen eikä virtaa myöskään menettelytapauksissa.
Jos taukoa ei käytetä jokaisen tapauksen jälkeen, kaikki voimassa olevan tapauksen jälkeiset tapaukset myös suoritetaan, mikä johtaa virheellisiin tuloksiin.
Q40. Kuinka roskien keräys tapahtuu Javalla?
V: Jaavassa, kun esineeseen ei enää viitata, roskat kerätään ja esine tuhoutuu automaattisesti. Automaattiseen roskakoriin java-kutsu joko System.gc () - tai Runtime.gc () -menetelmällä.
Q41. Kuinka voimme suorittaa minkä tahansa koodin jo ennen päämenetelmää?
V: Jos haluamme suorittaa lauseita ennen objektien luomista edes luokan latausaikana, voimme käyttää luokassa staattista koodilohkoa. Kaikki tämän staattisen koodilohkon sisällä olevat lauseet suoritetaan kerran luokan lataamisen yhteydessä jo ennen objektien luomista päämenetelmässä.
Q42. Voiko luokka olla superluokka ja alaluokka samanaikaisesti? Anna esimerkki.
V: Jos käytössä on perintö hierarkia, luokka voi olla superluokka toiselle luokalle ja alaluokka toiselle luokalle samanaikaisesti.
Alla olevassa esimerkissä maanosaluokka on maailmanluokan alaluokka ja se on maaluokan superluokka.
public class world {… .}public class continenet extends world {… }public class country extends continent {… .}
Q43. Kuinka luokan objektit luodaan, jos luokassa ei ole määritelty konstruktoria?
V: Vaikka Java-luokassa ei ole määritelty nimenomaista konstruktoria, objekteja luodaan onnistuneesti oletuskonstruktorina, käytetään implisiittisesti objektien luomiseen. Tällä konstruktorilla ei ole parametreja.
Q44. Kuinka voimme varmistaa monisäikeisessä ketjussa, että useat ketjut eivät käytä resurssia samanaikaisesti?
V: Monisäikeisessä ketjussa pääsyä monien ketjujen kesken jaettuihin resursseihin voidaan hallita synkronoinnin käsitteen avulla. Synkronoitua avainsanaa käyttämällä voimme varmistaa, että vain yksi ketju voi käyttää jaettua resurssia kerrallaan ja muut voivat saada resurssin hallintaan vasta, kun se on vapautunut toisesta sitä käyttävästä resurssista.
Q45. Voimmeko kutsua luokan rakentajaa useammin kuin kerran objektille?
Ans: Rakentaja kutsutaan automaattisesti, kun luomme objektin uudella avainsanalla. Sitä kutsutaan objektille vain kerran objektin luontihetkellä, joten emme voi kutsua konstruktoria uudelleen objektille sen luomisen jälkeen.
Q46. Luokkia A ja B on kaksi. Molemmat luokat ovat samassa paketissa. Voiko luokan A yksityinen jäsen päästä käsiksi luokan B objektilla?
V: Luokan yksityiset jäsenet eivät pääse kyseisen luokan ulkopuolelle, eikä mikään muu samassa paketissa oleva luokka pääse heihin.
Q47. Voimmeko käyttää kahta menetelmää samannimisessä luokassa?
V: Voimme määritellä kaksi menetelmää luokassa, jolla on sama nimi, mutta erilaisella parametrien lukumäärällä / tyypillä. Menetelmä, johon kutsutaan, riippuu välitetyistä parametreista.
Esimerkiksi alla olevassa luokassa meillä on kaksi tulostusmenetelmää, joilla on sama nimi, mutta erilaiset parametrit. Parametreista riippuen sopivaa kutsutaan:
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");}}
Q48. Kuinka voimme tehdä kopion Java-esineestä?
Ans: Voimme käyttää kloonauksen käsitettä objektin kopion luomiseen. Kloonia käyttämällä luomme kopioita objektin todellisesta tilasta.
Clone () on Cloneable-käyttöliittymän menetelmä, ja siksi Cloneable-käyttöliittymä on toteutettava objektikopioiden tekemistä varten.
Q49. Mitä hyötyä perinnöstä on?
V: Perinnön käytön tärkein etu on koodin uudelleenkäytettävyys, koska perintö antaa alaluokille mahdollisuuden käyttää uudelleen superluokkansa koodia. Polymorfismi (laajennettavuus) on toinen suuri etu, joka mahdollistaa uuden toiminnallisuuden käyttöönoton vaikuttamatta olemassa oleviin johdettuihin luokkiin.
Q50. Mikä on luokan muuttujien ja menetelmien oletusarvoinen käyttöoikeuksien määrittelijä?
V: Muuttujien ja menetelmän oletusarvoinen käyttöoikeustunniste on pakettisuojattu, ts. Muuttujat ja luokka ovat käytettävissä muille luokille, mutta samassa paketissa, ei paketin ulkopuolella.
Q51. Anna esimerkki osoittimien käytöstä Java-luokassa.
Ans: Javassa ei ole viitteitä. Joten emme voi käyttää Java-viitteiden käsitettä.
Q52. Kuinka voimme rajoittaa luokan perintöä siten, ettei siitä voi periä mitään luokkaa?
Ans: Jos haluamme, ettei luokkaa jatketa missään luokassa, voimme käyttää luokan nimen kanssa avainsanaa Lopullinen .
Seuraavassa esimerkissä Stone-luokka on lopullinen eikä sitä voida pidentää
public Final Class Stone {// Class methods and Variables}
Q53. Mikä on suojatun pääsyn määrittelijän käyttöalue?
V: Kun menetelmä tai muuttuja ilmoitetaan suojatun pääsyn määrittelijällä, se on käytettävissä samassa luokassa, missä tahansa muussa saman paketin luokassa ja alaluokassa.
Muokkaaja |
Luokka |
Paketti |
Alaluokka |
Maailman |
julkinen |
Y |
Y |
Y |
Y |
suojattu |
Y |
Y |
Y |
N |
ei muokkaajaa |
Y |
Y |
N |
N |
yksityinen |
Y |
N |
N |
N |
Q54. Mitä eroa pinolla ja jonolla on?
Ans: Pinoa ja jonoa käytetään molempia paikkamerkkinä tietojen keräämisessä. Ensisijainen ero pinon ja jonon välillä on, että pino perustuu Last in First out (LIFO) -periaatteeseen, kun taas jono perustuu FIFO (First In First Out) -periaatteeseen.
Q55. Kuinka voimme Java-tilassa estää muuttujien sarjallisuuden?
V: Jos haluamme, että tiettyjä luokan muuttujia ei järjestetä, voimme käyttää avainsanaa transientti ilmoittaessamme ne. Esimerkiksi alla oleva muuttuja trans_var on transienttimuuttuja, jota ei voi sarjata:
public class transientExample {private transient trans_var;// rest of the code}
Q56. Kuinka voimme käyttää alkeellisia tietotyyppejä esineinä?
V: Primitiivisiä tietotyyppejä, kuten int, voidaan käsitellä objekteina käyttämällä vastaavia käärintäluokkia. Esimerkiksi kokonaisluku on primitiivisen tietotyypin int käärimisluokka. Voimme soveltaa erilaisia menetelmiä kääre-luokkaan, kuten kaikkia muita esineitä.
Q57. Minkä tyyppisiä poikkeuksia pyydetään kokoamisajankohtana?
V: Tarkistetut poikkeukset voidaan saada kiinni ohjelman kokoamisen yhteydessä. Tarkistetut poikkeukset on käsiteltävä käyttämällä koodin yrityslohkoa koodin onnistuneen kääntämiseksi.
Q58. Kuvaile ketjun eri tiloja.
Ans: Java-ketju voi olla jossakin seuraavista tiloista:
- Valmis: Kun ketju luodaan, se on Valmiina-tilassa.
- Käynnissä: Tällä hetkellä suoritettava säie on käynnissä.
- Odottaa: Lanka, joka odottaa toista säiettä tiettyjen resurssien vapauttamiseksi, on odottavassa tilassa.
- Kuollut: Lanka, joka on kuollut teloituksen jälkeen, on kuolleessa tilassa.
Q59. Voimmeko käyttää luokan oletusrakentajaa, vaikka määritettäisiin nimenomainen rakentaja?
Ans: Java tarjoaa oletusarvoisen argumenttirakentajan, ellei Java-luokassa ole määritelty nimenomaista konstruktoria. Mutta jos eksplisiittinen konstruktori on määritelty, oletusrakentajaa ei voida kutsua ja kehittäjä voi käyttää vain niitä luokkaan määriteltyjä rakentajia.
Q60. Voimmeko ohittaa menetelmän käyttämällä samaa metodin nimeä ja argumentteja, mutta erilaisia palautustyyppejä?
V: Menetelmän korvaamisen perusedellytys on, että menetelmän nimen, argumenttien ja palautustyypin on oltava täsmälleen samat kuin ohitettavan menetelmän. Siksi toisen palautustyypin käyttäminen ei korvaa menetelmää.
Q61.Mikä on seuraavan koodinpalan tulos?
public class operatorExample {public static void main(String args[]) {int x = 4;system.out.println(x++);}}
V: Tässä tapauksessa käytetään postfix ++ -operaattoria, joka palauttaa ensin arvon ja kasvaa sitten. Siksi sen tulos on 4.
Q61. Henkilö sanoo keränneensä Java-luokan onnistuneesti ilman, että siinä olisi edes päämenetelmää? Onko se mahdollista?
Ans: päämenetelmä on Java-luokan lähtökohta ja sitä tarvitaan kuitenkin ohjelman suorittamiseen; luokka käännetään onnistuneesti, vaikka sillä ei olisi päämenetelmää. Sitä ei kuitenkaan voida käyttää.
Q62. Voimmeko kutsua ei-staattista menetelmää staattisen menetelmän sisältä?
Ans: Ei-staattiset menetelmät ovat luokan objektien omistuksessa ja niillä on objektitason laajuus. Jotta ei-staattisia menetelmiä voidaan kutsua staattisesta lohkosta (kuten staattisesta päämenetelmästä), luokan objekti on luotava ensimmäinen. Sitten näitä viitteitä voidaan käyttää objektiviittauksen avulla.
Q63. Mitkä ovat kaksi ympäristömuuttujaa, jotka on määritettävä Java-ohjelmien ajamiseksi?
V: Java-ohjelmat voidaan suorittaa koneessa vasta, kun seuraavat kaksi ympäristömuuttujaa on asetettu oikein:
- PATH-muuttuja
- CLASSPATH-muuttuja
Q64. Voiko Java-muuttujia käyttää ilman alustusta?
V: Jos Java-tunnuksessa muuttujaa käytetään ilman alustavaa asetusta kelvollisella arvolla, ohjelma ei käänny ja antaa virheen, koska Java-muuttujille ei ole määritetty oletusarvoa.
Q65. Voiko Java-luokan periä useammasta kuin yhdestä luokasta?
Ans: Java-luokassa luokka voidaan johtaa vain yhdestä luokasta eikä useista luokista. Java ei tue useita perintöjä.
Q66. Voiko konstruktorilla olla eri nimi kuin Javan luokan nimi?
Ans: Java-rakentajalla on oltava sama nimi kuin luokan nimi, ja jos nimi on erilainen, se ei toimi rakentajana, ja kääntäjä ajattelee sitä normaalina menetelmänä.
Q67. Mikä on Round (3.7) ja Ceil (3.7) tulos?
Ans: Kierros (3.7) palauttaa 4 ja Ceil (3.7) palauttaa 4.
Kysymys 68: Voimmeko käyttää Java-ohjelmaa siirtyäksesi tietylle riville?
Ans: Java-ohjelmassa ei ole goto-avainsanaa, ja java ei tue tätä ominaisuutta mennä tietylle merkittylle riville.
Q69. Voiko kuolleen langan aloittaa uudelleen?
Ans: Javassa kuolleessa tilassa olevaa säiettä ei voida aloittaa uudelleen. Ei ole mitään tapaa käynnistää kuolleita säikeitä uudelleen.
Q70. Onko seuraava luokkailmoitus oikea?
Ans:
public abstract final class testClass {// Class methods and variables}
V: Yllä oleva luokkailmoitus on virheellinen, koska abstraktia luokkaa ei voida julistaa lopulliseksi.
Q71. Tarvitaanko JDK: ta jokaisessa koneessa Java-ohjelman ajamiseksi?
V: JDK on Java-kehityspaketti, jota tarvitaan vain kehitykseen ja Java-ohjelman ajamiseksi koneella, JDK: ta ei tarvita. Vain JRE vaaditaan.
Q72. Mitä eroa on equals-menetelmällä tehdyn vertailun ja == -operaattorin välillä?
Ans: Java-tilassa equals () -menetelmää käytetään kahden merkkijono-objektin sisällön vertaamiseen ja palauttaa arvon true, jos molemmilla on sama arvo, kun taas == -operaattori vertaa kahden merkkijono-objektin viitteitä.
Seuraavassa esimerkissä equals () palauttaa arvon true, koska kahdella merkkijono-objektilla on samat arvot. == -operaattori palauttaa arvon false, koska molemmat merkkijono-objektit viittaavat eri objekteihin:
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 trueSystem.out.println("str1 and str2 are equal in terms of values");}if (str1 == str2) {//This condition is trueSystem.out.println("Both strings are referencing same object");} else{// This condition is NOT trueSystem.out.println("Both strings are referencing different objects");}}}
Q73. Onko mahdollista määritellä menetelmä Java-luokassa, mutta tarjota sen toteutus toisen kielen, kuten C, koodissa?
Ans: Kyllä, voimme tehdä tämän käyttämällä alkuperäisiä menetelmiä. Natiivimenetelmään perustuvan kehityksen tapauksessa määritämme julkiset staattiset menetelmät Java-luokkaamme ilman sen toteuttamista ja sitten toteutus tapahtuu toisella kielellä, kuten C erikseen.
Q74. Kuinka hävittäjät määritellään Java-ohjelmassa?
Ans: Java: ssa luokassa ei ole määritelty tuhoajia, koska sitä ei tarvitse tehdä. Java: lla on oma roskakorin mekanismi, joka tekee työn automaattisesti tuhoamalla objektit, kun niihin ei enää viitata.
Q75. Voiko muuttuja olla paikallinen ja staattinen samanaikaisesti?
Ans: Mikään muuttuja ei voi olla staattinen eikä paikallinen samanaikaisesti. Paikallisen muuttujan määritteleminen staattiseksi antaa käännösvirheen.
Q76. Voimmeko olla staattisia menetelmiä käyttöliittymässä?
V: Staattisia menetelmiä ei voida ohittaa missään luokassa, kun taas kaikki käyttöliittymän menetelmät ovat oletusarvoisesti abstrakteja ja niiden on tarkoitus olla toteutettu käyttöliittymää toteuttavissa luokissa. Joten ei ole mitään järkeä pitää staattisia menetelmiä Java-käyttöliittymässä.
Q77. Voimmeko rajapinnassa toimivassa luokassa muuttaa minkä tahansa käyttöliittymässä määritetyn muuttujan arvoa?
V: Ei, emme voi muuttaa minkä tahansa käyttöliittymän muuttujan arvoa toteutusluokassa, koska kaikki käyttöliittymässä määritellyt muuttujat ovat oletusarvoisesti julkisia, staattisia sekä lopullisia ja lopullisia muuttujia ovat kuin vakioita, joita ei voi muuttaa myöhemmin.
Q78. Onko oikein sanoa, että Java-ohjelman roskakorjausominaisuuden vuoksi Java-ohjelma ei koskaan mene muistista?
V: Vaikka Java huolehtii automaattisesta roskien keräyksestä, se ei takaa, että Java-ohjelma ei loppu muistista, koska on mahdollista, että Java-objektien luominen tapahtuu nopeammin kuin roskien keräys. kaikkien käytettävissä olevien muistiresurssien täyttäminen.
Joten roskien keräys auttaa vähentämään mahdollisuuksia ohjelman menemiselle muistista, mutta se ei takaa sitä.
Q79. Voiko meillä olla jokin muu palautustyyppi kuin mitätön päämenetelmälle?
V: Ei, Java-luokan päämenetelmällä voi olla vain tyhjä palautustyyppi, jotta ohjelma voidaan suorittaa onnistuneesti.
Siitä huolimatta, jos sinun on ehdottomasti palautettava arvo päämenetelmän loppuun mennessä, voit käyttää System.exit (int-tila)
Q80. Haluan saavuttaa objektin uudelleen ja käyttää sitä, kun se on kerätty roskiin. Kuinka se on mahdollista?
Ans: Kun esine on tuhottu roskien keräilijän toimesta, sitä ei enää ole kasalla eikä siihen pääse enää käsiksi. Ei ole mitään tapaa viitata siihen uudelleen.
Q81. Mikä menetelmä on Java-säieohjelmoinnissa kaikkien säikeiden pakollinen toteutus?
Ans: Run () on Runnable-käyttöliittymän menetelmä, joka kaikkien ketjujen on toteutettava.
Q82. Haluan hallita tietokantayhteyksiä ohjelmassani ja haluan, että vain yksi ketju pystyy muodostamaan tietokantayhteyden kerrallaan. Kuinka voin toteuttaa tämän logiikan?
V: Tämä voidaan toteuttaa synkronoinnin käsitteen avulla. Tietokantaan liittyvä koodi voidaan sijoittaa menetelmään, joka synkronoi avainsanan siten, että vain yksi ketju voi käyttää sitä kerrallaan.
Q83. Kuinka ohjelmoija voi heittää poikkeuksen manuaalisesti?
V: Jotta heitettäisiin poikkeus koodilohkoon manuaalisesti, käytetään heitto- avainsanaa. Sitten tämä poikkeus saadaan kiinni ja käsitellään salpalohkossa.
public void topMethod() {try {excMethod();} catch (ManualException e) {}}public void excMethod {String name = null;if (name == null) {throw (new ManualException("Exception thrown manually ");}}
Q84. Haluan, että luokkaani kehitetään siten, ettei mikään muu luokka (edes johdettu luokka) voi luoda esineitä. Kuinka voin tehdä niin?
Ans: Jos julistamme luokan rakentajan yksityiseksi, siihen ei pääse millään muulla luokalla, joten mikään muu luokka ei kykene havainnollistamaan sitä, ja sen objektin muodostuminen rajoittuu vain itseensä.
Q85. Kuinka objektit tallennetaan Java-sovellukseen?
Ans: Javassa kukin luotu kohde saa muistitilan kasasta. Kun roskankerääjä tuhoaa objektin, sille varattu tila varataan kasaan uudelleen ja se on käytettävissä kaikille uusille esineille.
Q86. Kuinka löydämme kasan todellisen koon?
Ans: Jaavassa ei ole mitään keinoa selvittää kasan objektin tarkkaa kokoa.
Q87. Millä seuraavista luokista on varattu enemmän muistia?
Luokka A: Kolme menetelmää, neljä muuttujaa, ei objektia
Luokka B: Viisi menetelmää, kolme muuttujaa, ei objektia
V: Muistia ei jaeta ennen objektien luomista. Koska molemmille luokille ei ole luotu objekteja, joten kasaan ei ole varattu muistia mille tahansa luokalle.
Q88. Mitä tapahtuu, jos ohjelmassa ei käsitellä poikkeusta?
V: Jos poikkeusta ei käsitellä ohjelmassa kokeilunestolohkojen avulla, ohjelma keskeytetään eikä mitään lausetta suoriteta sen lauseen jälkeen, joka aiheutti poikkeuksen heiton.
Q89. Minulla on luokassa useita rakentajia. Onko mahdollista kutsua rakentaja toisesta rakentajan rungosta?
V: Jos luokassa on useita konstruktoreita, on mahdollista kutsua yksi konstruktori toisen rungosta käyttämällä tätä () .
Q90. Mitä nimettömällä luokalla tarkoitetaan?
Ans: Anonyymi luokka on luokka, joka määritetään ilman nimeä yhdellä koodirivillä käyttäen uutta avainsanaa.
Esimerkiksi alla olevassa koodissa olemme määrittäneet nimettömän luokan yhdelle koodiriville:
public java.util.Enumeration testMethod(){return new java.util.Enumeration(){@Overridepublic boolean hasMoreElements(){// TODO Auto-generated method stubreturn false;}@Overridepublic Object nextElement(){// TODO Auto-generated method stubreturn null;}}
Q91. Onko mahdollista lisätä taulukon kokoa ilmoituksen jälkeen?
Ans: Taulukot ovat staattisia, ja kun olemme määrittäneet sen koon, emme voi muuttaa sitä. Jos haluamme käyttää sellaisia kokoelmia, joissa saatamme vaatia koon muutosta (ei nimikkeitä), meidän tulisi mieluummin pitää vektoria matriisin sijaan.
Q92. Jos sovelluksessa on useita luokkia, onko oikein käyttää päämenetelmää useammassa kuin yhdessä luokassa?
V: Jos Java-sovelluksessa on päämenetelmä useammassa kuin yhdessä luokassa, se ei aiheuta ongelmia, koska minkä tahansa sovelluksen lähtökohta on tietty luokka ja koodi alkaa vain kyseisen luokan päämenetelmästä.
Q93. Haluan säilyttää objektien tiedot myöhempää käyttöä varten. Mikä on paras tapa tehdä niin?
V: Paras tapa säilyttää tietoja tulevaa käyttöä varten on käyttää sarjallisuuden käsitettä.
Q94. Mikä on Java-luokan paikallinen luokka?
Ans: Jos Java: ssa määritetään uusi luokka tietyn lohkon sisällä, sitä kutsutaan paikalliseksi luokaksi. Tällaisella luokalla on paikallinen ulottuvuus, eikä sitä voida käyttää sen määritetyn lohkon ulkopuolella.
Q95. String ja StringBuffer edustavat molemmat String-objekteja. Voimmeko verrata Stringia ja StringBufferia Javassa?
Ans: Vaikka sekä String että StringBuffer edustavat merkkijono-objekteja, emme voi verrata niitä toisiinsa, ja jos yritämme verrata niitä, saamme virheen.
Q96. Minkä API: n Java tarjoaa objektijoukon operaatioihin?
V: Java tarjoaa Collection API: n, joka tarjoaa monia hyödyllisiä menetelmiä, joita voidaan soveltaa joukkoihin esineisiin. Joitakin Collection API: n tarjoamista tärkeistä luokista ovat ArrayList, HashMap, TreeSet ja TreeMap.
Q97. Voimmeko heittää minkä tahansa muun tyypin Boolen-tyyppiin tyyppivalulla?
V: Ei, emme voi lähettää mitään muuta primitiivistä tyyppiä Boolen tietotyyppiin emmekä voi heittää Boolen tietotyyppiä mihinkään muuhun primitiiviseen tietotyyppiin.
Q98. Voimmeko käyttää menetelmissä erilaisia palautustyyppejä ohitettuina?
V: Menetelmän ohittamisen perusvaatimus Java-ohjelmassa on, että ohitetulla menetelmällä on oltava sama nimi ja parametrit, mutta menetelmä voidaan ohittaa eri palautustyypillä, kunhan uusi palautustyyppi laajentaa alkuperäistä.
Esimerkiksi menetelmä palauttaa viitetyypin.
Class B extends A {A method(int x) {//original method}B method(int x) {//overridden method}}
Q99. Mikä on kaikkien poikkeusluokkien perusluokka?
Ans: Javassa Java.lang.Throwable on kaikkien poikkeusluokkien superluokka, ja kaikki poikkeusluokat ovat peräisin tästä perusluokasta.
Q100. Mikä on rakentajien soittojärjestys perinnössä?
Ans: Perintötapauksessa, kun johdetun luokan uusi objekti luodaan, ensin kutsutaan superluokan konstruktori ja sitten johdetun luokan rakentaja.
Valmistaudu työhaastatteluun !!! Käy läpi Java-opetusohjelma valmistautuaksesi paremmin.
Tämä yksityiskohtainen Java-haastattelukysymysten pdf auttaa sinua selvittämään epäilyt Java-haastattelukysymyksistä ja auttaa myös murtautumaan haastattelusta.