logo

300 galvenie Java intervijas jautājumi | 1. komplekts

90% pārliecība par intervijas jautājumiem

Ir saraksts ar 300 galvenajiem Java intervijas jautājumiem. Ja jums ir uzdots kāds galvenais Java intervijas jautājums, lūdzu, ievietojiet to jautājumu sadaļā. Mēs garantējam, ka šeit jūs iegūsit 90% bieži uzdotos intervijas jautājumus un atbildes.

Atbildes uz Core Java intervijas jautājumiem ir īsas un precīzas. Galvenie Java intervijas jautājumi ir iedalīti kategorijās Java intervijas jautājumi, OOP intervijas jautājumi, virkņu apstrādes intervijas jautājumi, daudzpavedienu intervijas jautājumi, kolekcijas intervijas jautājumi, JDBC intervijas jautājumi utt.


1 2 3 4 5

Core Java: Java intervijas jautājumu pamati


1) Kas ir Java?

Java ir augstais līmenis, objektorientēts , izturīga, droša programmēšanas valoda, no platformas neatkarīga, augstas veiktspējas, daudzpavedienu un pārnēsājama programmēšanas valoda. To izstrādāja Džeimss Goslings 1991. gada jūnijā. To var saukt arī par platformu, jo tā nodrošina savu JRE un API.


2) Kādas ir atšķirības starp C++ un Java?

Atšķirības starp C++ un Java ir norādīti nākamajā tabulā.

Salīdzināšanas indekss C++Java
No platformas neatkarīgs C++ ir atkarīgs no platformas.Java ir no platformas neatkarīga.
Galvenokārt izmanto priekš C++ galvenokārt tiek izmantots sistēmas programmēšanai.Java galvenokārt tiek izmantota lietojumprogrammu programmēšanai. To plaši izmanto logu, tīmekļa, uzņēmumu un mobilajās lietojumprogrammās.
Dizaina mērķis C++ bija paredzēts sistēmu un lietojumprogrammu programmēšanai. Tas bija pagarinājums C programmēšanas valoda .Java tika izstrādāta un izveidota kā drukāšanas sistēmu tulks, bet vēlāk paplašināta kā atbalsta tīkla skaitļošana. Tā tika izstrādāta, lai tā būtu viegli lietojama un pieejama plašākai auditorijai.
Iet uz C++ atbalsta goto paziņojumu.Java neatbalsta goto paziņojumu.
Daudzkārtējs mantojums C++ atbalsta vairāku mantojumu.Java neatbalsta vairākkārtēju mantošanu klasē. To var panākt ar saskarnes java .
Operatora pārslodze C++ atbalsts operatora pārslodze .Java neatbalsta operatora pārslodzi.
Rādītāji C++ atbalsta norādes. Jūs varat rakstīt rādītāja programmu C++ valodā.Java iekšēji atbalsta rādītāju. Tomēr jūs nevarat rakstīt rādītāja programmu java. Tas nozīmē, ka Javai ir ierobežots rādītāja atbalsts Java.
Sastādītājs un tulks C++ izmanto tikai kompilatoru. C++ tiek apkopots un palaists, izmantojot kompilatoru, kas pārvērš avota kodu mašīnkodā, tāpēc C++ ir atkarīgs no platformas.Java izmanto gan kompilatoru, gan tulku. Java avota kods kompilācijas laikā tiek pārveidots par baitkodu. Tulks izpildes laikā izpilda šo baitkodu un rada izvadi. Java tiek interpretēta tāpēc tā ir neatkarīga no platformas.
Zvanīt pēc vērtības un zvanīt pēc atsauces C++ atbalsta gan izsaukumu pēc vērtības, gan izsaukšanu pēc atsauces.Java atbalsta tikai zvanu pēc vērtības. Java valodā nav izsaukuma ar atsauci.
Struktūra un savienība C++ atbalsta struktūras un arodbiedrības.Java neatbalsta struktūras un arodbiedrības.
Pavedienu atbalsts C++ nav iebūvēta atbalsta pavedieniem. Pavedienu atbalstam tas paļaujas uz trešo pušu bibliotēkām.Java ir iebūvēta pavediens atbalsts.
Dokumentācijas komentārs C++ neatbalsta dokumentācijas komentāru.Java atbalsta dokumentācijas komentāru (/** ... */), lai izveidotu dokumentāciju Java pirmkodam.
Virtuālais atslēgvārds C++ atbalsta virtuālo atslēgvārdu, lai mēs varētu izlemt, vai ignorēt funkciju.Javai nav virtuāla atslēgvārda. Pēc noklusējuma mēs varam ignorēt visas nestatiskās metodes. Citiem vārdiem sakot, nestatiskās metodes pēc noklusējuma ir virtuālas.
neparakstīta labā maiņa >>> C++ neatbalsta >>> operatoru.Java atbalsta neparakstītu labo nobīdi >>> operatoru, kas negatīvo skaitļu augšdaļā aizpilda nulli. Pozitīviem skaitļiem tas darbojas tāpat kā >> operators.
Mantojuma koks C++ vienmēr izveido jaunu mantojuma koku.Java vienmēr izmanto vienu mantojuma koku, jo visas klases ir Java objektu klases atvases. Objekta klase ir sakne mantojums koks Java valodā.
Aparatūra C++ ir tuvāk aparatūrai.Java nav tik interaktīva ar aparatūru.
Objektorientēts C++ ir objektorientēta valoda. Tomēr C valodā vienas saknes hierarhija nav iespējama.Java ir arī objektorientēts valodu. Tomēr viss (izņemot pamattipus) ir Java objekts. Tā ir vienas saknes hierarhija, jo viss tiek iegūts no java.lang.Object.

3) Uzskaitiet Java programmēšanas valodas funkcijas.

Java programmēšanas valodā ir šādas funkcijas.

    Vienkārši:Java ir viegli iemācīties. Java sintakse ir balstīta uz C++, kas atvieglo programmas rakstīšanu tajā.
    Objektorientēts:Java ievēro objektu orientētu paradigmu, kas ļauj mums uzturēt mūsu kodu kā dažāda veida objektu kombināciju, kas ietver gan datus, gan uzvedību.
    Pārnēsājams:Java atbalsta pieeju vienreiz lasīt un rakstīt jebkur. Mēs varam izpildīt Java programmu katrā datorā. Java programma (.java) tiek pārveidota par baitkodu (.class), ko var viegli palaist katrā datorā.
    Neatkarīga no platformas:Java ir no platformas neatkarīga programmēšanas valoda. Tā atšķiras no citām programmēšanas valodām, piemēram, C un C++, kuru izpildei nepieciešama platforma. Java nāk ar savu platformu, kurā tiek izpildīts tās kods. Java nav atkarīga no izpildāmās operētājsistēmas.
    Nodrošināts:Java ir aizsargāta, jo tajā netiek izmantotas skaidras norādes. Java nodrošina arī baitu koda un izņēmumu apstrādes koncepciju, kas padara to drošāku.
    Izturīgs:Java ir spēcīga programmēšanas valoda, jo tā izmanto spēcīgu atmiņas pārvaldību. Tādi jēdzieni kā automātiska atkritumu savākšana, apstrāde ar izņēmumiem utt. padara to izturīgāku.
    Neitrāla arhitektūra:Java ir arhitektūras neitrāla, jo tā nav atkarīga no arhitektūras. C valodā datu tipu lielums var atšķirties atkarībā no arhitektūras (32 bitu vai 64 bitu), kas Java nepastāv.
    Interpretēts:Programmas izpildei Java izmanto Just-in-time (JIT) tulku kopā ar kompilatoru.
    Augsta veiktspēja:Java ir ātrāka nekā citas tradicionālās interpretētās programmēšanas valodas, jo Java baitkods ir “tuvs” vietējam kodam. Tas joprojām ir nedaudz lēnāks nekā kompilētā valoda (piemēram, C++).
    Daudzpavedienu:Mēs varam rakstīt Java programmas, kas vienlaikus nodarbojas ar daudziem uzdevumiem, definējot vairākus pavedienus. Vairāku pavedienu galvenā priekšrocība ir tā, ka tā neaizņem atmiņu katram pavedienam. Tam ir kopīga atmiņas zona. Pavedieni ir svarīgi multivides, tīmekļa lietojumprogrammām utt.
    Izplatīts:Java tiek izplatīta, jo tā ļauj lietotājiem izveidot izplatītas lietojumprogrammas Java valodā. RMI un EJB tiek izmantoti izplatīto lietojumprogrammu izveidei. Šī Java funkcija ļauj mums piekļūt failiem, izsaucot metodes no jebkuras mašīnas internetā.
    Dinamisks:Java ir dinamiska valoda. Tā atbalsta dinamisku nodarbību ielādi. Tas nozīmē, ka nodarbības tiek ielādētas pēc pieprasījuma. Tā atbalsta arī funkcijas no tās dzimtajām valodām, t.i., C un C++.

4) Ko jūs saprotat ar Java virtuālo mašīnu?

Java virtuālā mašīna ir virtuāla mašīna, kas ļauj datoram palaist Java programmu. JVM darbojas kā izpildlaika dzinējs, kas izsauc galveno Java kodā esošo metodi. JVM ir specifikācija, kas jāievieš datorsistēmā. Java kodu JVM apkopo kā baitu kodu, kas ir neatkarīgs no mašīnas un ir tuvu vietējam kodam.


5) Kāda ir atšķirība starp JDK, JRE un JVM?

JVM

JVM ir Java virtuālās mašīnas akronīms; tā ir abstrakta mašīna, kas nodrošina izpildlaika vidi, kurā var izpildīt Java baitu kodu. Tā ir specifikācija, kas nosaka Java virtuālās mašīnas darbību. Tās ieviešanu ir nodrošinājuši Oracle un citi uzņēmumi. Tās ieviešana ir pazīstama kā JRE.

JVM ir pieejami daudzām aparatūras un programmatūras platformām (tātad JVM ir atkarīga no platformas). Tas ir izpildlaika gadījums, kas tiek izveidots, kad mēs palaižam Java klasi. Ir trīs JVM jēdzieni: specifikācija, ieviešana un instance.

JRE

JRE apzīmē Java Runtime Environment. Tā ir JVM ieviešana. Java Runtime Environment ir programmatūras rīku komplekts, ko izmanto Java lietojumprogrammu izstrādei. To izmanto, lai nodrošinātu izpildlaika vidi. Tā ir JVM ieviešana. Tas fiziski pastāv. Tajā ir bibliotēku kopa un citi faili, kurus JVM izmanto izpildlaikā.

JDK

JDK ir Java izstrādes komplekta akronīms. Tā ir programmatūras izstrādes vide, ko izmanto Java lietojumprogrammu un sīklietotņu izstrādei. Tas fiziski pastāv. Tajā ir JRE + izstrādes rīki. JDK ir jebkuras no tālāk norādītajām Java platformām, ko izlaidusi Oracle Corporation:

  • Java platformas standarta izdevums
  • Enterprise Edition Java platforma
  • Micro Edition Java platforma
Skatīt vairāk.

6) Cik atmiņas apgabalu veidus piešķir JVM?

Daudzi veidi:

    Klases (metodes) apgabals:Klases apgabalā tiek saglabātas katras klases struktūras, piemēram, izpildlaika konstantes pūls, lauks, metodes dati un metožu kods.Kaudze:Tas ir izpildlaika datu apgabals, kurā objektiem tiek piešķirta atmiņaKaudze:Java Stack glabā rāmjus. Tajā ir lokāli mainīgie un daļējie rezultāti, un tam ir nozīme metodes izsaukšanā un atgriešanā. Katram pavedienam ir privāts JVM steks, kas izveidots vienlaikus ar pavedienu. Katru reizi, kad tiek izsaukta metode, tiek izveidots jauns rāmis. Kadrs tiek iznīcināts, kad tā metodes izsaukšana ir pabeigta.Programmu skaitītāju reģistrs:PC (programmu skaitītāja) reģistrā ir pašlaik izpildāmās Java virtuālās mašīnas instrukcijas adrese.Vietējo metožu kopa:Tajā ir visas lietojumprogrammā izmantotās vietējās metodes.
Skatīt vairāk.

7) Kas ir JIT kompilators?

Just-In-Time (JIT) kompilators: To izmanto, lai uzlabotu veiktspēju. JIT vienlaikus apkopo baitkoda daļas, kurām ir līdzīga funkcionalitāte, un tādējādi samazina kompilēšanai nepieciešamo laiku. Šeit termins kompilators attiecas uz tulkotāju no Java virtuālās mašīnas (JVM) instrukciju kopas uz noteikta CPU instrukciju kopu.


8) Kas ir platforma?

Platforma ir aparatūras vai programmatūras vide, kurā tiek izpildīta programmatūra. Ir divu veidu platformas — uz programmatūras bāzes un uz aparatūru. Java nodrošina uz programmatūras balstītu platformu.


9) Kādas ir galvenās atšķirības starp Java platformu un citām platformām?

Pastāv šādas atšķirības starp Java platformu un citām platformām.

  • Java ir uz programmatūru balstīta platforma, savukārt citas platformas var būt aparatūras platformas vai uz programmatūru balstītas platformas.
  • Java tiek izpildīta citu aparatūras platformu augšpusē, savukārt citās platformās var būt tikai aparatūras komponenti.

10) Kas dod Java dabu “rakstīt vienreiz un palaist jebkur”?

Baitkods. Java kompilators pārvērš Java programmas klases failā (baitu kods), kas ir starpvaloda starp pirmkodu un mašīnkodu. Šis baitkods nav specifisks platformai, un to var izpildīt jebkurā datorā.


11) Kas ir klases ielādētājs?

Classloader ir JVM apakšsistēma, ko izmanto klases failu ielādei. Ikreiz, kad palaižam Java programmu, to vispirms ielādē klases ielādētājs. Java ir trīs iebūvēti klases ielādētāji.

    Bootstrap ClassLoader: Šis ir pirmais klases ielādētājs, kas ir paplašinājuma klases ielādētāja virsklase. Tas ielādē rt.jar failu, kurā ir visi Java Standard Edition klašu faili, piemēram, java.lang pakotņu klases, java.net pakotņu klases, java.util pakotņu klases, java.io pakotņu klases, java.sql pakotņu klases utt.Paplašinājuma klases ielādētājs: Šis ir Bootstrap pakārtotais klases ielādētājs un sistēmas klases ielādētāja vecākais klases ielādētājs. Tas ielādē burkas failus, kas atrodas iekšpusē $JAVA_HOME/jre/lib/ext direktoriju.Sistēmas/lietojumprogrammu klases ielādētājs: šī ir paplašinājuma klases ielādētāja bērnu klases ielādētājs. Tas ielādē klases failus no klases ceļa. Pēc noklusējuma klases ceļš ir iestatīts uz pašreizējo direktoriju. Klases ceļu var mainīt, izmantojot slēdzi “-cp” vai “-classpath”. Tas ir pazīstams arī kā lietojumprogrammu klases ielādētājs.

12) Vai tukšs .java faila nosaukums ir derīgs avota faila nosaukums?

Jā, Java ļauj saglabāt mūsu java failu ar .java tikai mums tas ir jāapkopo pēc javac .java un skrien garām java klases nosaukums Ņemsim vienkāršu piemēru:

 //save by .java only class A{ public static void main(String args[]){ System.out.println('Hello java'); } } //compile by javac .java //run by java A 

apkopo to pēc javac .java

palaist to garām java A


13) Vai java ir delete, next, main, exit vai null atslēgvārds?

Nē.


14) Ja es nesniedzu nekādus argumentus komandrindā, kāda vērtība, kas saglabāta masīvā String, tiks nodota main() metodē, tukša vai NULL?

Tas ir tukšs, bet nav nulle.


15) Ko darīt, ja es rakstīšu static public void, nevis public static void?

Programma tiek apkopota un darbojas pareizi, jo Java specifikāciju secībai nav nozīmes.


16) Kāda ir vietējo mainīgo noklusējuma vērtība?

Vietējie mainīgie netiek inicializēti uz noklusējuma vērtībām, ne primitīviem, ne objektu atsaucēm.


17) Kādi ir dažādi Java piekļuves parametri?

Programmā Java piekļuves specifikācijas ir atslēgvārdi, kas tiek izmantoti, lai definētu metodes, klases vai mainīgā piekļuves tvērumu. Programmā Java ir četri zemāk norādītie piekļuves specifikācijas.

    PublisksKlasēm, metodēm vai mainīgajiem, kas ir definēti kā publiski, var piekļūt ar jebkuru klasi vai metodi.AizsargātsAizsargātajam var piekļūt tās pašas pakotnes klase vai šīs klases apakšklase, vai tās pašas klases ietvaros.NoklusējumsNoklusējuma iestatījumi ir pieejami tikai pakotnē. Pēc noklusējuma visām klasēm, metodēm un mainīgajiem ir noklusējuma darbības joma.PrivātsPrivātajai klasei, metodēm vai mainīgajiem, kas definēti kā privāti, var piekļūt tikai šajā klasē.

18) Kāds ir statisko metožu un mainīgo mērķis?

Metodes vai mainīgie, kas definēti kā statiski, tiek koplietoti starp visiem klases objektiem. Statika ir klases, nevis objekta daļa. Statiskie mainīgie tiek glabāti klases apgabalā, un mums nav jāizveido objekts, lai piekļūtu šādiem mainīgajiem. Tāpēc static tiek izmantots gadījumā, ja mums ir jādefinē mainīgie vai metodes, kas ir kopīgi visiem klases objektiem.

Piemēram, klasē, kas simulē studentu kolekciju koledžā, koledžas nosaukums ir kopīgs atribūts visiem studentiem. Tāpēc koledžas nosaukums tiks definēts kā statisks .


19) Kādas ir Java pakešu priekšrocības?

Java pakotņu definēšanai ir dažādas priekšrocības.

  • Pakas ļauj izvairīties no nosaukumu sadursmēm.
  • Pakete nodrošina vieglāku piekļuves kontroli.
  • Mums var būt arī slēptās klases, kas nav redzamas ārpusē un tiek izmantotas iepakojumā.
  • Saistītās klases ir vieglāk atrast.

20) Kāda ir šādas Java programmas izvade?

 class Test { public static void main (String args[]) { System.out.println(10 + 20 + 'Javatpoint'); System.out.println('Javatpoint' + 10 + 20); } } 

Iepriekš minētā koda izvade būs

 30Javatpoint Javatpoint1020 

Paskaidrojums

Pirmajā gadījumā 10 un 20 tiek uzskatīti par skaitļiem un tiek pievienoti 30. Tagad to summa 30 tiek uzskatīta par virkni un savienota ar virkni. Javapoint . Tāpēc izlaide būs 30Javatpoint .

Otrajā gadījumā virkne Javatpoint ir savienota ar 10, lai tā būtu virkne Javapoint10 kas pēc tam tiks savienoti ar 20, lai būtu Javapoint1020 .


21) Kāda ir šādas Java programmas izvade?

 class Test { public static void main (String args[]) { System.out.println(10 * 20 + 'Javatpoint'); System.out.println('Javatpoint' + 10 * 20); } } 

Iepriekš minētā koda izvade būs

 200Javatpoint Javatpoint200 

Paskaidrojums

Pirmajā gadījumā vispirms tiks reizināti skaitļi 10 un 20, un pēc tam rezultāts 200 tiek uzskatīts par virkni un savienots ar virkni. Javapoint lai ražotu produkciju 200Javatpoint .

Otrajā gadījumā skaitļi 10 un 20 vispirms tiks reizināti līdz 200, jo reizināšanas prioritāte ir lielāka nekā saskaitīšanas prioritāte. Rezultāts 200 tiks uzskatīts par virkni un savienots ar virkni Javapoint ražot produkciju kā Javapoint200 .


22) Kāda ir šādas Java programmas izvade?

 class Test { public static void main (String args[]) { for(int i=0; 0; i++) { System.out.println('Hello Javatpoint'); } } } 

Iepriekš minētais kods sniegs kompilēšanas laika kļūdu, jo for cilpa otrajā daļā pieprasa Būla vērtību, un mēs nodrošinām vesela skaitļa vērtību, t.i., 0.


Core Java — OOPs jēdzieni: sākotnējie OOP intervijas jautājumi

Ir sniegti vairāk nekā 50 OOP (Objektorientētās programmēšanas un sistēmas) intervijas jautājumi. Tomēr tie ir klasificēti daudzās sadaļās, piemēram, konstruktora intervijas jautājumi, statiskās intervijas jautājumi, mantojuma intervijas jautājumi, abstrakcijas intervijas jautājumi, polimorfisma intervijas jautājumi utt., lai nodrošinātu labāku izpratni.


23) Kas ir objektorientētā paradigma?

Tā ir programmēšanas paradigma, kuras pamatā ir objekti, kuru dati un metodes ir definētas klasē, kurai tā pieder. Objektorientētās paradigmas mērķis ir iekļaut modularitātes un atkārtotas izmantošanas priekšrocības. Objekti ir klašu gadījumi, kas mijiedarbojas savā starpā, lai izstrādātu lietojumprogrammas un programmas. Objektorientētajai paradigmai ir šādas pazīmes.

  • Programmas izstrādē tiek ievērota augšupēja pieeja.
  • Koncentrējieties uz datiem ar metodēm, kā darboties ar objekta datiem
  • Ietver tādu jēdzienu kā iekapsulēšana un abstrakcija, kas slēpj sarežģījumus no lietotāja un parāda tikai funkcionalitāti.
  • Ievieš reāllaika pieeju, piemēram, mantošanu, abstrakciju utt.
  • Objektorientētās paradigmas piemēri ir C++, Simula, Smalltalk, Python, C# utt.

24) Kas ir objekts?

Objekts ir reāllaika vienība ar noteiktu stāvokli un uzvedību. Programmā Java objekts ir klases gadījums, kurā gadījumu mainīgie ir objekta stāvoklis un metodes kā objekta uzvedība. Klases objektu var izveidot, izmantojot jauns atslēgvārds.


25) Kāda ir atšķirība starp objektorientētu programmēšanas valodu un objektorientētu programmēšanas valodu?

Pastāv šādas galvenās atšķirības starp objektorientēto valodu un objektu valodu.

  • Objektorientētās valodas ievēro visus OOP jēdzienus, turpretim uz objektu balstītā valoda neievēro visus OOP jēdzienus, piemēram, mantojuma un polimorfisma jēdzienus.
  • Uz objektu orientētām valodām nav iebūvētu objektu, savukārt uz objektu valodām ir iebūvēti objekti, piemēram, JavaScript ir loga objekts.
  • Objektorientētas programmēšanas piemēri ir Java, C#, Smalltalk utt., savukārt objektu valodu piemēri ir JavaScript, VBScript utt.

26) Kāda būs objekta atsauces sākotnējā vērtība, kas definēta kā instances mainīgais?

Visas objektu atsauces Java tiek inicializētas uz nulli.


Pamata Java — OOP jēdzieni: konstruktora intervijas jautājumi


27) Kas ir konstruktors?

Konstruktoru var definēt kā īpašu metodes veidu, kas tiek izmantots objekta stāvokļa inicializācijai. Tas tiek izsaukts, kad tiek izveidota klase un objektam tiek piešķirta atmiņa. Katru reizi objekts tiek izveidots, izmantojot jauns atslēgvārds, tiek izsaukts klases noklusējuma konstruktors. Konstruktora nosaukumam ir jābūt līdzīgam klases nosaukumam. Konstruktoram nedrīkst būt precīzs atgriešanas veids.

Skatīt vairāk.

28) Cik konstruktoru veidi tiek izmantoti Java?

Pamatojoties uz konstruktoros nodotajiem parametriem, Java ir divu veidu konstruktori.

    Noklusējuma konstruktors:noklusējuma konstruktors ir tas, kas nepieņem nekādu vērtību. Noklusējuma konstruktors galvenokārt tiek izmantots, lai inicializētu instances mainīgo ar noklusējuma vērtībām. To var izmantot arī, lai veiktu kādu noderīgu uzdevumu objektu izveidei. Kompilators netieši izsauc noklusējuma konstruktoru, ja klasē nav definēts konstruktors.Parametrētais konstruktors:Parametrētais konstruktors ir tas, kas var inicializēt gadījumu mainīgos ar dotajām vērtībām. Citiem vārdiem sakot, mēs varam teikt, ka konstruktori, kas var pieņemt argumentus, tiek saukti par parametrizētiem konstruktoriem.
Java konstruktori

29) Kāds ir noklusējuma konstruktora mērķis?

Noklusējuma konstruktora mērķis ir objektiem piešķirt noklusējuma vērtību. Java kompilators netieši izveido noklusējuma konstruktoru, ja klasē nav konstruktora.

 class Student3{ int id; String name; void display(){System.out.println(id+' '+name);} public static void main(String args[]){ Student3 s1=new Student3(); Student3 s2=new Student3(); s1.display(); s2.display(); } } 
Izmēģiniet to tūlīt

Izvade:

 0 null 0 null 

Paskaidrojums: Iepriekš minētajā klasē jūs neizveidojat nevienu konstruktoru, tāpēc kompilators nodrošina noklusējuma konstruktoru. Šeit 0 un nulles vērtības nodrošina noklusējuma konstruktors.

Java noklusējuma konstruktors
Skatīt vairāk.

30) Vai konstruktors atgriež kādu vērtību?

Gadi: jā, konstruktors netieši atgriež pašreizējo klases gadījumu (ar konstruktoru nevar izmantot skaidru atgriešanas veidu). Skatīt vairāk.


31)Vai konstruktors ir mantots?

Nē, konstruktors nav mantots.


32) Vai jūs varat padarīt konstruktora finālu?

Nē, konstruktors nevar būt galīgs.

kā lejupielādēt mūziku

33) Vai mēs varam pārslogot konstruktorus?

Jā, konstruktori var tikt pārslogoti, mainot konstruktora pieņemto argumentu skaitu vai mainot parametru datu tipu. Apsveriet šādu piemēru.

 class Test { int i; public Test(int k) { i=k; } public Test(int k, int m) { System.out.println('Hi I am assigning the value max(k, m) to i'); if(k>m) { i=k; } else { i=m; } } } public class Main { public static void main (String args[]) { Test test1 = new Test(10); Test test2 = new Test(12, 15); System.out.println(test1.i); System.out.println(test2.i); } } 

Iepriekš minētajā programmā konstruktora pārbaude ir pārslogota ar citu konstruktoru. Pirmajā konstruktora izsaukumā tiek izsaukts konstruktors ar vienu argumentu, un i tiks inicializēts ar vērtību 10. Taču otrajā konstruktora izsaukumā tiek izsaukts konstruktors ar 2 argumentiem, un i tiks inicializēts. ar vērtību 15.


34) Ko jūs saprotat ar kopēšanas konstruktoru Java?

Java nav kopiju konstruktora. Tomēr mēs varam kopēt vērtības no viena objekta uz citu, piemēram, kopēt konstruktoru programmā C++.

Ir daudz veidu, kā java kopēt viena objekta vērtības citā. Viņi ir:

  • Pēc konstruktora
  • Piešķirot viena objekta vērtības citam
  • Ar objektu klases clone() metodi

Šajā piemērā mēs kopēsim viena objekta vērtības citā, izmantojot Java konstruktoru.

 //Java program to initialize the values from one object to another class Student6{ int id; String name; //constructor to initialize integer and string Student6(int i,String n){ id = i; name = n; } //constructor to initialize another object Student6(Student6 s){ id = s.id; name =s.name; } void display(){System.out.println(id+' '+name);} public static void main(String args[]){ Student6 s1 = new Student6(111,'Karan'); Student6 s2 = new Student6(s1); s1.display(); s2.display(); } } 
Izmēģiniet to tūlīt

Izvade:

 111 Karan 111 Karan 

35) Kādas ir atšķirības starp konstruktoriem un metodēm?

Starp konstruktoriem un metodēm ir daudz atšķirību. Tie ir norādīti zemāk.

Java konstruktorsJava metode
Konstruktors tiek izmantots, lai inicializētu objekta stāvokli.Tiek izmantota metode, lai atklātu objekta uzvedību.
Konstruktoram nedrīkst būt atgriešanas veids.Metodei ir jābūt atgriešanas veidam.
Konstruktors tiek izsaukts netieši.Metode ir skaidri izsaukta.
Java kompilators nodrošina noklusējuma konstruktoru, ja klasē nav neviena konstruktora.Metodi nekādā gadījumā nenodrošina kompilators.
Konstruktora nosaukumam ir jābūt tādam pašam kā klases nosaukumam.Metodes nosaukums var būt un var nebūt tāds pats kā klases nosaukums.

Java konstruktori pret metodēm

36) Kāda ir šādas Java programmas izvade?

 public class Test { Test(int a, int b) { System.out.println('a = '+a+' b = '+b); } Test(int a, float b) { System.out.println('a = '+a+' b = '+b); } public static void main (String args[]) { byte a = 10; byte b = 15; Test test = new Test(a,b); } } 

Šādas programmas izvade ir:

 a = 10 b = 15 

Šeit mainīgo a un b datu tips, t.i., baits tiek paaugstināts uz int, un tiek izsaukts pirmais parametrizētais konstruktors ar diviem veseliem skaitļiem.


37) Kāda ir šādas Java programmas izvade?

 class Test { int i; } public class Main { public static void main (String args[]) { Test test = new Test(); System.out.println(test.i); } } 

Programmas izvade ir 0, jo mainīgais i iekšēji tiek inicializēts uz 0. Kā mēs zinām, ka noklusējuma konstruktors tiek izsaukts netieši, ja klasē nav konstruktora, mainīgais i tiek inicializēts uz 0, jo klasē nav konstruktora.


38) Kāda ir šādas Java programmas izvade?

 class Test { int test_a, test_b; Test(int a, int b) { test_a = a; test_b = b; } public static void main (String args[]) { Test test = new Test(); System.out.println(test.test_a+' '+test.test_b); } } 

Tur ir kompilatora kļūda programmā, jo galvenajā metodē ir izsaukums noklusējuma konstruktoram, kas klasē nav pieejams. Tomēr klasē Test ir tikai viens parametrizēts konstruktors. Tāpēc konstruktors netieši neizsauc noklusējuma konstruktoru.


Core Java — OOPs jēdzieni: statiski atslēgvārdu intervijas jautājumi


39) Kas ir statiskais mainīgais?

Statiskais mainīgais tiek izmantots, lai atsauktos uz visu objektu kopīgo īpašumu (kas nav unikāls katram objektam), piemēram, darbinieku uzņēmuma nosaukums, studentu koledžas nosaukums utt. Statiskais mainīgais iegūst atmiņu tikai vienu reizi klases apgabalā plkst. klases iekraušanas laiks. Statiskā mainīgā izmantošana padara programmu efektīvāku atmiņu (tas ietaupa atmiņu). Statiskais mainīgais pieder klasei, nevis objektam.

 //Program of static variable class Student8{ int rollno; String name; static String college ='ITS'; Student8(int r,String n){ rollno = r; name = n; } void display (){System.out.println(rollno+' '+name+' '+college);} public static void main(String args[]){ Student8 s1 = new Student8(111,'Karan'); Student8 s2 = new Student8(222,'Aryan'); s1.display(); s2.display(); } } 
Izmēģiniet to tūlīt
 Output:111 Karan ITS 222 Aryan ITS 

Skatīt vairāk.

40) Kas ir statiskā metode?

  • Statiskā metode pieder klasei, nevis objektam.
  • Nav nepieciešams izveidot objektu, lai izsauktu statiskās metodes.
  • Statiskā metode var piekļūt un mainīt statiskā mainīgā vērtību.
Skatīt vairāk.

41) Kādi ir ierobežojumi, kas tiek piemēroti Java statiskajām metodēm?

Statiskajām metodēm tiek piemēroti divi galvenie ierobežojumi.

  • Statiskā metode nevar izmantot nestatisko datu dalībnieku vai tieši izsaukt nestatisko metodi.
  • šo un super nevar izmantot statiskā kontekstā, jo tie nav statiski.

42) Kāpēc galvenā metode ir statiska?

Tā kā objektam nav jāizsauc statiskā metode. Ja mēs padarīsim galveno metodi nestatisku, JVM vispirms būs jāizveido savs objekts un pēc tam jāizsauc metode main(), kas novedīs pie papildu atmiņas piešķiršanas. Skatīt vairāk.


43) Vai mēs varam ignorēt statiskās metodes?

Nē, mēs nevaram ignorēt statiskās metodes.

44) Kas ir statiskais bloks?

Statiskais bloks tiek izmantots statisko datu elementa inicializācijai. Tas tiek izpildīts pirms galvenās metodes, klases ielādes laikā.

 class A2{ static{System.out.println('static block is invoked');} public static void main(String args[]){ System.out.println('Hello main'); } } 
Izmēģiniet to tūlīt
 Output: static block is invoked Hello main 

Skatīt vairāk.

45) Vai mēs varam izpildīt programmu bez main() metodes?

Atbilde) Nē, tas bija iespējams pirms JDK 1.7, izmantojot statisko bloku. Kopš JDK 1.7 tas nav iespējams. Skatīt vairāk.


46) Ko darīt, ja statiskais modifikators tiek noņemts no galvenās metodes paraksta?

Programmu apkopo. Tomēr izpildes laikā tiek parādīta kļūda 'NoSuchMethodError'.


47) Kāda ir atšķirība starp statisko (klases) metodi un instances metodi?

statiskā vai klases metodegadījuma metode
1) Metode, kas tiek deklarēta kā statiska, ir pazīstama kā statiskā metode.Metode, kas nav deklarēta kā statiska, ir pazīstama kā instances metode.
2) Mums nav jāizveido objekti, lai izsauktu statiskās metodes.Objektam ir nepieciešams izsaukt instances metodes.
3) Nestatiskajiem (instanču) dalībniekiem nevar tieši piekļūt statiskā kontekstā (statiskā metode, statiskais bloks un statiskā ligzdotā klase).Statiskajiem un nestatiskajiem mainīgajiem var piekļūt, izmantojot instances metodes.
4)Piemērs: publiskais statiskais int kubs(int n){ return n*n*n;}Piemēram: public void msg(){...}.

48) Vai mēs varam padarīt konstruktorus statiskus?

Kā zināms, statiskais konteksts (metode, bloks vai mainīgais) pieder klasei, nevis objektam. Tā kā konstruktori tiek izsaukti tikai tad, kad objekts ir izveidots, nav jēgas padarīt konstruktorus statiskus. Tomēr, ja jūs mēģināt to izdarīt, kompilators parādīs kompilatora kļūdu.


49) Vai Java mēs varam padarīt abstraktās metodes statiskas?

Java, ja mēs padarīsim abstraktās metodes statiskas, tā kļūs par klases daļu, un mēs to varam tieši nosaukt, kas nav nepieciešams. Nedefinētas metodes izsaukšana ir pilnīgi bezjēdzīga, tāpēc tā nav atļauta.


50) Vai varam deklarēt statiskos mainīgos un metodes abstraktā klasē?

Jā, mēs varam deklarēt statiskus mainīgos un metodes abstraktā metodē. Tā kā mēs zinām, ka nav prasības, lai objekts piekļūtu statiskajam kontekstam, tāpēc mēs varam piekļūt statiskajam kontekstam, kas deklarēts abstraktās klases iekšpusē, izmantojot abstraktās klases nosaukumu. Apsveriet šādu piemēru.

 abstract class Test { static int i = 102; static void TestMethod() { System.out.println('hi !! I am good !!'); } } public class TestClass extends Test { public static void main (String args[]) { Test.TestMethod(); System.out.println('i = '+Test.i); } } 

Izvade

 hi !! I am good !! i = 102 

Core Java — OOPs jēdzieni: mantojuma intervijas jautājumi


51) Kas ir šis atslēgvārds java?

The šis atslēgvārds ir atsauces mainīgais, kas attiecas uz pašreizējo objektu. Java ir dažādi šī atslēgvārda lietojumi. To var izmantot, lai atsauktos uz pašreizējām klases īpašībām, piemēram, gadījumu metodēm, mainīgo, konstruktoriem utt. To var arī nodot kā argumentu metodēs vai konstruktoros. To var arī atgriezt no metodes kā pašreizējo klases gadījumu.

java šis atslēgvārds
Skatīt vairāk.

52) Kādi ir šī atslēgvārda galvenie lietojumi?

Ir šādi lietojumi šis atslēgvārds.

    šisvar izmantot, lai atsauktos uz pašreizējās klases instances mainīgo.šisvar izmantot, lai izsauktu pašreizējās klases metodi (netieši)šis ()var izmantot, lai izsauktu pašreizējo klases konstruktoru.šisvar tikt nodots kā arguments metodes izsaukumā.šisvar tikt nodots kā arguments konstruktora izsaukumā.šisvar izmantot, lai atgrieztu pašreizējo klases gadījumu no metodes.

53) Vai mēs varam piešķirt atsauci uz šis mainīgs?

Nē, to nevar piešķirt nevienai vērtībai, jo tā vienmēr norāda uz pašreizējās klases objektu un šī ir pēdējā atsauce Java. Tomēr, ja mēģināsim to izdarīt, tiks parādīta kompilatora kļūda. Apsveriet šādu piemēru.

 public class Test { public Test() { this = null; System.out.println('Test class constructor called'); } public static void main (String args[]) { Test t = new Test(); } } 

Izvade

 Test.java:5: error: cannot assign a value to final variable this this = null; ^ 1 error 

54) Var šis atslēgvārdu izmantot, lai atsauktos uz statiskajiem dalībniekiem?

Jā, ir iespējams izmantot šo atslēgvārdu, lai atsauktos uz statiskiem dalībniekiem, jo ​​tas ir tikai atsauces mainīgais, kas attiecas uz pašreizējo klases objektu. Tomēr, kā mēs zinām, nav nepieciešams piekļūt statiskajiem mainīgajiem, izmantojot objektus, tāpēc nav labākā prakse to izmantot, lai atsauktos uz statiskiem elementiem. Apsveriet šādu piemēru.

 public class Test { static int i = 10; public Test () { System.out.println(this.i); } public static void main (String args[]) { Test t = new Test(); } } 

Izvade

 10 

55) Kā, izmantojot šo atslēgvārdu, var veikt konstruktora ķēdi?

Konstruktoru ķēde ļauj mums izsaukt vienu konstruktoru no cita klases konstruktora attiecībā uz pašreizējo klases objektu. Mēs varam izmantot šo atslēgvārdu, lai veiktu konstruktora ķēdi vienā klasē. Apsveriet šādu piemēru, kas ilustrē, kā mēs varam izmantot šo atslēgvārdu, lai panāktu konstruktora ķēdi.

 public class Employee { int id,age; String name, address; public Employee (int age) { this.age = age; } public Employee(int id, int age) { this(age); this.id = id; } public Employee(int id, int age, String name, String address) { this(id, age); this.name = name; this.address = address; } public static void main (String args[]) { Employee emp = new Employee(105, 22, 'Vikas', 'Delhi'); System.out.println('ID: '+emp.id+' Name:'+emp.name+' age:'+emp.age+' address: '+emp.address); } } 

Izvade

 ID: 105 Name:Vikas age:22 address: Delhi 

56) Kādas ir priekšrocības, ja to ievadāt metodē, nevis pašā pašreizējā klases objektā?

Kā mēs zinām, ka tas attiecas uz pašreizējās klases objektu, tāpēc tam ir jābūt līdzīgam pašreizējās klases objektam. Tomēr var būt divas galvenās priekšrocības, nododot to metodē, nevis pašreizējā klases objektā.

  • tas ir pēdējais mainīgais. Tāpēc to nevar piešķirt nevienai jaunai vērtībai, savukārt pašreizējās klases objekts var nebūt galīgs un to var mainīt.
  • to var izmantot sinhronizētajā blokā.

57) Kas ir mantojums?

Mantojums ir mehānisms, ar kura palīdzību viens objekts iegūst visas citas klases cita objekta īpašības un uzvedību. To izmanto koda atkārtotai izmantošanai un metodes ignorēšanai. Java mantojuma ideja ir tāda, ka varat izveidot jaunas klases, kuru pamatā ir esošās klases. Mantojot no esošas klases, varat atkārtoti izmantot vecākklases metodes un laukus. Turklāt jūs varat pievienot jaunas metodes un laukus arī savā pašreizējā klasē. Mantojums apzīmē IS-A attiecības, kas pazīstamas arī kā vecāku un bērnu attiecības.

Java valodā ir pieci mantojuma veidi.

  • Viena līmeņa mantošana
  • Daudzlīmeņu mantošana
  • Daudzkārtēja mantošana
  • Hierarhiskā mantošana
  • Hibrīda mantošana

Java netiek atbalstīta vairāku veidu mantošana caur klasi.

Skatīt vairāk.

58) Kāpēc Java tiek izmantota Mantojums?

Mantojuma izmantošanai Java ir dažādas priekšrocības, kas ir norādītas tālāk.

  • Mantojums nodrošina koda atkārtotu izmantošanu. Atvasinātajai klasei nav atkārtoti jādefinē bāzes klases metode, ja vien tai nav jānodrošina konkrēta metodes ieviešana.
  • Izpildlaika polimorfismu nevar panākt, neizmantojot pārmantošanu.
  • Mēs varam simulēt klašu pārmantošanu ar reāllaika objektiem, kas padara OOP reālistiskāku.
  • Mantojums nodrošina datu slēpšanu. Pamatklase var paslēpt dažus datus no atvasinātās klases, padarot to privātu.
  • Metodes ignorēšanu nevar panākt bez mantojuma. Izmantojot metodes ignorēšanu, mēs varam sniegt konkrētu pamatmetodes ieviešanu, ko satur bāzes klase.

59) Kura klase ir visu klašu virsklase?

Objekta klase ir visu pārējo Java klašu virsklase.


60) Kāpēc java netiek atbalstīta daudzkārtēja mantošana?

Lai samazinātu sarežģītību un vienkāršotu valodu, java netiek atbalstīta vairākkārtēja mantošana. Apsveriet scenāriju, kurā A, B un C ir trīs klases. C klase manto A un B klasi. Ja A un B klasēm ir viena un tā pati metode un jūs to izsaucat no bērnklases objekta, būs neskaidrības izsaukt A vai B klases metodi.

Tā kā kompilēšanas laika kļūdas ir labākas nekā izpildlaika kļūdas, Java atveido kompilēšanas laika kļūdu, ja mantojat 2 klases. Tātad, neatkarīgi no tā, vai jums ir tāda pati vai atšķirīga metode, radīsies kompilēšanas laika kļūda.

 class A{ void msg(){System.out.println('Hello');} } class B{ void msg(){System.out.println('Welcome');} } class C extends A,B{//suppose if it were Public Static void main(String args[]){ C obj=new C(); obj.msg();//Now which msg() method would be invoked? } } 
Izmēģiniet to tūlīt
 Compile Time Error 

61) Kas ir apkopošana?

Apkopojumu var definēt kā attiecības starp divām klasēm, kur apkopotajā klasē ir atsauce uz tai piederošo klasi. Apkopošanu vislabāk raksturo kā a ir attiecības. Piemēram, apkopotā klase Darbinieks, kam ir dažādi lauki, piemēram, vecums, vārds un alga, satur arī Adrešu klases objektu ar dažādiem laukiem, piemēram, Adrese-Line 1, City, State un PIN-kods. Citiem vārdiem sakot, mēs varam teikt, ka darbiniekam (klasei) ir Adrešu klases objekts. Apsveriet šādu piemēru.

Adrese.java

 public class Address { String city,state,country; public Address(String city, String state, String country) { this.city = city; this.state = state; this.country = country; } } 

Darbinieks.java

 public class Emp { int id; String name; Address address; public Emp(int id, String name,Address address) { this.id = id; this.name = name; this.address=address; } void display(){ System.out.println(id+' '+name); System.out.println(address.city+' '+address.state+' '+address.country); } public static void main(String[] args) { Address address1=new Address('gzb','UP','india'); Address address2=new Address('gno','UP','india'); Emp e=new Emp(111,'varun',address1); Emp e2=new Emp(112,'arun',address2); e.display(); e2.display(); } } 

Izvade

 111 varun gzb UP india 112 arun gno UP india 

62) Kas ir kompozīcija?

Klases atsauces turēšana citā klasē ir pazīstama kā sastāvs. Ja objekts satur otru objektu, ja ietvertais objekts nevar pastāvēt bez konteinera objekta esamības, tad to sauc par kompozīciju. Citiem vārdiem sakot, mēs varam teikt, ka kompozīcija ir īpašs agregācijas gadījums, kas atspoguļo spēcīgāku saistību starp diviem objektiem. Piemērs: klasē ir skolēni. Students nevar pastāvēt bez klases. Pastāv kompozīcija starp klasi un skolēniem.


63) Kāda ir atšķirība starp apkopošanu un sastāvu?

Apkopošana atspoguļo vājās attiecības, turpretī kompozīcija ir spēcīgas attiecības. Piemēram, velosipēdam ir indikators (apkopojums), bet velosipēdam ir dzinējs (sastāvs).


64) Kāpēc Java neatbalsta norādes?

Rādītājs ir mainīgais, kas attiecas uz atmiņas adresi. Tos neizmanto Java, jo tie ir nedroši (nedroši) un sarežģīti saprotami.


65) Kas ir super java?

The super atslēgvārds Java ir atsauces mainīgais, ko izmanto, lai atsauktos uz tiešo vecāku klases objektu. Ikreiz, kad veidojat apakšklases gadījumu, netieši tiek izveidots vecākklases gadījums, uz kuru atsaucas superatsauces mainīgais. Super() klases konstruktorā netieši izsauc kompilators, ja nav super vai šī.

 class Animal{ Animal(){System.out.println('animal is created');} } class Dog extends Animal{ Dog(){ System.out.println('dog is created'); } } class TestSuper4{ public static void main(String args[]){ Dog d=new Dog(); } } 
Izmēģiniet to tūlīt

Izvade:

 animal is created dog is created 
Skatīt vairāk.

66) Kā var veikt konstruktora ķēdi, izmantojot super atslēgvārdu?

 class Person { String name,address; int age; public Person(int age, String name, String address) { this.age = age; this.name = name; this.address = address; } } class Employee extends Person { float salary; public Employee(int age, String name, String address, float salary) { super(age,name,address); this.salary = salary; } } public class Test { public static void main (String args[]) { Employee e = new Employee(22, 'Mukesh', 'Delhi', 90000); System.out.println('Name: '+e.name+' Salary: '+e.salary+' Age: '+e.age+' Address: '+e.address); } } 

Izvade

 Name: Mukesh Salary: 90000.0 Age: 22 Address: Delhi 

67) Kādi ir galvenie atslēgvārda super lietojumi?

Ir šādi superatslēgvārdu lietojumi.

  • super var izmantot, lai atsauktos uz tiešo vecāku klases instances mainīgo.
  • super var izmantot, lai izsauktu tūlītējās vecākklases metodi.
  • super() var izmantot, lai izsauktu tūlītēju vecāku klases konstruktoru.

68) Kādas ir atšķirības starp šo un super atslēgvārdu?

Pastāv šādas atšķirības starp šo un super atslēgvārdu.

  • Super atslēgvārds vienmēr norāda uz vecākklases kontekstiem, savukārt šis atslēgvārds vienmēr norāda uz pašreizējo klases kontekstu.
  • Super atslēgvārds galvenokārt tiek izmantots bāzes klases mainīgo inicializēšanai atvasinātajā klases konstruktorā, savukārt šis atslēgvārds galvenokārt tiek izmantots, lai atšķirtu vietējos un gadījumu mainīgos, kad tas tiek nodots klases konstruktorā.
  • Super un šim ir jābūt pirmajam paziņojumam konstruktorā, pretējā gadījumā kompilators radīs kļūdu.

69) Kāda ir šādas Java programmas izvade?

 class Person { public Person() { System.out.println('Person class constructor called'); } } public class Employee extends Person { public Employee() { System.out.println('Employee class constructor called'); } public static void main (String args[]) { Employee e = new Employee(); } } 

Izvade

 Person class constructor called Employee class constructor called 

Paskaidrojums

Kompilators netieši izsauc super(), ja atvasinātajā klases konstruktorā nav skaidri iekļauts super() vai this(). Tāpēc šajā gadījumā vispirms tiek izsaukts Person klases konstruktors un pēc tam tiek izsaukts Darbinieku klases konstruktors.


70) Vai konstruktorā var izmantot gan šo() gan super()?

Nē, jo šim() un super() ir jābūt pirmajam priekšrakstam klases konstruktorā.

Piemērs:

 public class Test{ Test() { super(); this(); System.out.println('Test class object is created'); } public static void main(String []args){ Test t = new Test(); } } 

Izvade:

 Test.java:5: error: call to this must be first statement in constructor 

71) Kas ir objektu klonēšana?

Objekta klonēšana tiek izmantota, lai izveidotu precīzu objekta kopiju. Objekta klonēšanai tiek izmantota Object klases metode clone(). The java.lang.Klonējams interfeiss ir jārealizē klasei, kuras objekta klonu mēs vēlamies izveidot. Ja mēs neieviesām klonējamo saskarni, metode clone() ģenerē CloneNotSupportedException.

 protected Object clone() throws CloneNotSupportedException 
Skatīt vairāk.

Core Java — OOPs jēdzieni: Metodes pārslodzes intervijas jautājumi


72) Kas ir metodes pārslodze?

Metodes pārslodze ir polimorfisma paņēmiens, kas ļauj mums izveidot vairākas metodes ar tādu pašu nosaukumu, bet atšķirīgu parakstu. Mēs varam panākt metodes pārslodzi divos veidos.

  • Mainot argumentu skaitu
  • Mainot argumentu datu tipu

Metodes pārslodze palielina programmas lasāmību. Lai ātri izdomātu programmu, tiek veikta metodes pārslodze.

Skatīt vairāk.

73) Kāpēc java mainot atgriešanas veidu, nav iespējama metodes pārslodze?

Programmā Java metodes pārslodze nav iespējama, mainot programmas atgriešanas veidu, lai izvairītos no neskaidrības.

 class Adder{ static int add(int a,int b){return a+b;} static double add(int a,int b){return a+b;} } class TestOverloading3{ public static void main(String[] args){ System.out.println(Adder.add(11,11));//ambiguity }} 
Izmēģiniet to tūlīt

Izvade:

 Compile Time Error: method add(int, int) is already defined in class Adder 
Skatīt vairāk.

74) Vai mēs varam pārslogot metodes, padarot tās statiskas?

Nē, mēs nevaram pārslogot metodes, tām vienkārši piemērojot statisko atslēgvārdu (parametru un veidu skaits ir vienāds). Apsveriet šādu piemēru.

 public class Animal { void consume(int a) { System.out.println(a+' consumed!!'); } static void consume(int a) { System.out.println('consumed static '+a); } public static void main (String args[]) { Animal a = new Animal(); a.consume(10); Animal.consume(20); } } 

Izvade

 Animal.java:7: error: method consume(int) is already defined in class Animal static void consume(int a) ^ Animal.java:15: error: non-static method consume(int) cannot be referenced from a static context Animal.consume(20); ^ 2 errors 

75) Vai mēs varam pārslogot main() metodi?

Jā, Java programmā var būt neierobežots skaits galveno metožu, izmantojot metodes pārslodzi.

Skatīt vairāk.

76) Kas ir metodes pārslodze ar tipa veicināšanu?

Ar tipa veicināšana ir metodes pārslodze. Mēs domājam, ka vienu datu tipu var netieši paaugstināt par citu, ja netiek atrasta precīza atbilstība.

Java metodes pārslodze ar tipa veicināšanu

Kā parādīts iepriekš redzamajā diagrammā, baitu var paaugstināt par īsu, int, garu, peldošu vai dubultu. Īso datu tipu var paaugstināt par int, long, float vai double. Char datu tipu var paaugstināt uz int, long, float vai double un tā tālāk. Apsveriet šādu piemēru.

 class OverloadingCalculation1{ void sum(int a,long b){System.out.println(a+b);} void sum(int a,int b,int c){System.out.println(a+b+c);} public static void main(String args[]){ OverloadingCalculation1 obj=new OverloadingCalculation1(); obj.sum(20,20);//now second int literal will be promoted to long obj.sum(20,20,20); } } 
Izmēģiniet to tūlīt

Izvade

 40 60 

77) Kāda ir šādas Java programmas izvade?

 class OverloadingCalculation3{ void sum(int a,long b){System.out.println('a method invoked');} void sum(long a,int b){System.out.println('b method invoked');} public static void main(String args[]){ OverloadingCalculation3 obj=new OverloadingCalculation3(); obj.sum(20,20);//now ambiguity } } 

Izvade

 OverloadingCalculation3.java:7: error: reference to sum is ambiguous obj.sum(20,20);//now ambiguity ^ both method sum(int,long) in OverloadingCalculation3 and method sum(long,int) in OverloadingCalculation3 match 1 error 

Paskaidrojums

Ir divas metodes, kas definētas ar tādu pašu nosaukumu, t.i., summa. Pirmā metode pieņem vesela un garā skaitļa veidu, savukārt otrā metode pieņem garo un veselā skaitļa tipu. Nodoti parametri, kas ir a = 20, b = 20. Mēs nevaram pateikt, kura metode tiks izsaukta, jo nav skaidras atšķirības starp veselo skaitļu literālo un garo literālo. Šis ir neskaidrības gadījums. Tāpēc kompilators radīs kļūdu.


Java pamatnostādnes — OOP jēdzieni: Intervijas jautājumi par metodes ignorēšanu


78) Kas ir metodes ignorēšana:

Ja apakšklase nodrošina konkrētu metodes ieviešanu, ko jau nodrošina tās vecākklase, to sauc par metodes ignorēšanu. To izmanto izpildlaika polimorfismam un interfeisa metožu ieviešanai.

Metodes ignorēšanas noteikumi

  • Metodei ir jābūt tādam pašam nosaukumam kā vecākklasē.
  • Metodei ir jābūt tādam pašam parakstam kā vecākklasē.
  • Divām klasēm ir jābūt IS-A attiecībām starp tām.
Skatīt vairāk.


79) Vai mēs varam ignorēt statisko metodi?

Nē, jūs nevarat ignorēt statisko metodi, jo tā ir klases daļa, nevis objekts.


80) Kāpēc mēs nevaram ignorēt statisko metodi?

Tas ir tāpēc, ka statiskā metode ir klases daļa, un tā ir saistīta ar klasi, turpretim instances metode ir saistīta ar objektu, un statiskā iegūst atmiņu klases apgabalā, un instance iegūst atmiņu kaudzē.


81) Vai mēs varam ignorēt pārslodzes metodi?

Jā.


82) Atšķirība starp pārslodzes un ignorēšanas metodi.

Metode PārslodzeMetodes ignorēšana
1) Metodes pārslodze palielina programmas lasāmību.Metodes ignorēšana nodrošina specifisku metodes ieviešanu, ko jau nodrošina tās virsklase.
2) Klases ietvaros notiek metodes pārslodze.Metodes ignorēšana notiek divās klasēs, kurām ir IS-A saistība.
3) Šajā gadījumā parametriem jābūt atšķirīgiem.Šajā gadījumā parametriem jābūt vienādiem.

83) Vai mēs varam ignorēt privātās metodes?

Nē, mēs nevaram ignorēt privātās metodes, jo privāto metožu darbības joma ir ierobežota ar klasi un mēs nevaram tām piekļūt ārpus klases.


84) Vai mēs varam mainīt ignorētās metodes apjomu apakšklasē?

Jā, mēs varam mainīt ignorētās metodes tvērumu apakšklasē. Tomēr mums ir jāņem vērā, ka mēs nevaram samazināt metodes pieejamību. Mainot metodes pieejamību, ir jāņem vērā šāds punkts.

  • Privāto var mainīt uz aizsargātu, publisku vai noklusējuma.
  • Aizsargāto var mainīt uz publisko vai noklusējuma vērtību.
  • Noklusējumu var mainīt uz publisku.
  • Sabiedrība vienmēr paliks publiska.

85) Vai mēs varam modificēt virsklases metodes metienu klauzulu, vienlaikus ignorējot to apakšklasē?

Jā, mēs varam modificēt virsklases metodes metienu klauzulu, vienlaikus ignorējot to apakšklasē. Tomēr ir daži noteikumi, kas ir jāievēro, izņēmuma gadījumā tos ignorējot.

  • Ja virsklases metode nedeklarē izņēmumu, apakšklases ignorētā metode nevar deklarēt pārbaudīto izņēmumu, bet tā var deklarēt neatzīmēto izņēmumu.
  • Ja virsklases metode deklarē izņēmumu, apakšklases ignorētā metode var deklarēt to pašu, apakšklases izņēmumu vai bez izņēmuma, bet nevar deklarēt vecāku izņēmumu.

86) Kāda ir šādas Java programmas izvade?

 class Base { void method(int a) { System.out.println('Base class method called with integer a = '+a); } void method(double d) { System.out.println('Base class method called with double d ='+d); } } class Derived extends Base { @Override void method(double d) { System.out.println('Derived class method called with double d ='+d); } } public class Main { public static void main(String[] args) { new Derived().method(10); } } 

Izvade

 Base class method called with integer a = 10 

Paskaidrojums

Metode () ir pārslogota klasē Base, turpretim tā ir atvasināta klasē Derived ar dubulto tipu kā parametru. Metodes izsaukumā tiek nodots vesels skaitlis.

87) Vai Java var izmantot virtuālās funkcijas?

Jā, visas Java funkcijas pēc noklusējuma ir virtuālas.


88) Kas ir kovariantu atgriešanās veids?

Tagad, kopš java5, ir iespējams ignorēt jebkuru metodi, mainot atgriešanas veidu, ja apakšklases ignorēšanas metodes atgriešanas veids ir apakšklases tips. To sauc par kovariantu atgriešanās veidu. Kovariants atgriešanās veids norāda, ka atgriešanās veids var mainīties tādā pašā virzienā kā apakšklase.

 class A{ A get(){return this;} } class B1 extends A{ B1 get(){return this;} void message(){System.out.println('welcome to covariant return type');} public static void main(String args[]){ new B1().get().message(); } } 
Izmēģiniet to tūlīt
 Output: welcome to covariant return type 
Skatīt vairāk.

89) Kāda ir šādas Java programmas izvade?

 class Base { public void baseMethod() { System.out.println('BaseMethod called ...'); } } class Derived extends Base { public void baseMethod() { System.out.println('Derived method called ...'); } } public class Test { public static void main (String args[]) { Base b = new Derived(); b.baseMethod(); } } 

Izvade

 Derived method called ... 

Paskaidrojums

Pamatklases metode, t.i., baseMethod() tiek ignorēta klasē Atvasinātā. Testa klasē atsauces mainīgais b (tipa Base class) attiecas uz atvasinātās klases gadījumu. Šeit izpildlaika polimorfisms tiek panākts starp klasi Base un Derived. Kompilēšanas laikā bāzes klasē tiek pārbaudīta metodes baseMethod klātbūtne, ja tā ir, tad kompilētā programma pretējā gadījumā tiks parādīta kompilatora kļūda. Šajā gadījumā baseMethod atrodas Base klasē; tāpēc tas ir veiksmīgi apkopots. Tomēr izpildes laikā tas pārbauda, ​​vai atvasinātā klase ir ignorējusi bāzes metodi. Ja tā, tad atvasinātās klases metodi sauc, pretējā gadījumā tiek izsaukta bāzes klases metode. Šajā gadījumā atvasinātā klase ignorē baseMethod; tāpēc tiek izsaukta Atvasinātās klases metode.


Core Java — OOPs jēdzieni: galīgie atslēgvārdu intervijas jautājumi


90) Kāds ir pēdējais mainīgais?

Java programmā pēdējais mainīgais tiek izmantots, lai ierobežotu lietotāja iespēju to atjaunināt. Ja mēs inicializējam galīgo mainīgo, mēs nevaram mainīt tā vērtību. Citiem vārdiem sakot, mēs varam teikt, ka galīgais mainīgais, kas reiz piešķirts vērtībai, pēc tam vairs nevar tikt mainīts. Galīgo mainīgo, kas nav piešķirts nevienai vērtībai, var piešķirt tikai, izmantojot klases konstruktoru.

pēdējais atslēgvārds java
 class Bike9{ final int speedlimit=90;//final variable void run(){ speedlimit=400; } public static void main(String args[]){ Bike9 obj=new Bike9(); obj.run(); } }//end of class 
Izmēģiniet to tūlīt
 Output:Compile Time Error 
Skatīt vairāk.

91) Kāda ir galīgā metode?

Ja kādu metodi mainām uz galīgo metodi, mēs to nevaram ignorēt. Skatīt vairāk.

 class Bike{ final void run(){System.out.println('running');} } class Honda extends Bike{ void run(){System.out.println('running safely with 100kmph');} public static void main(String args[]){ Honda honda= new Honda(); honda.run(); } } 
Izmēģiniet to tūlīt
 Output:Compile Time Error 

92) Kāda ir pēdējā klase?

Ja kādu klasi padarām par galīgu, mēs to nevaram mantot nevienā no apakšklasēm.

 final class Bike{} class Honda1 extends Bike{ void run(){System.out.println('running safely with 100kmph');} public static void main(String args[]){ Honda1 honda= new Honda1(); honda.run(); } } 
Izmēģiniet to tūlīt
 Output:Compile Time Error 
Skatīt vairāk.

93) Kāds ir galīgais tukšais mainīgais?

Galīgais mainīgais, kas nav inicializēts deklarēšanas laikā, ir zināms kā galīgais tukšais mainīgais. Mēs nevaram tieši inicializēt galīgo tukšo mainīgo. Tā vietā mums tas ir jāinicializē, izmantojot klases konstruktoru. Tas ir noderīgi, ja lietotāja rīcībā ir daži dati, kurus citi nedrīkst mainīt, piemēram, PAN numurs. Apsveriet šādu piemēru:

 class Student{ int id; String name; final String PAN_CARD_NUMBER; ... } 
Skatīt vairāk.

94) Vai mēs varam inicializēt galīgo tukšo mainīgo?

Jā, ja tas nav statisks, mēs to varam inicializēt konstruktorā. Ja tas ir statisks tukšs gala mainīgais, to var inicializēt tikai statiskajā blokā. Skatīt vairāk.


95) Vai jūs varat atzīt galveno metodi par galīgu?

Jā, mēs varam deklarēt galveno metodi kā publisku statisku galīgo void main(String[] args){}.


96) Kāda ir šādas Java programmas izvade?

 class Main { public static void main(String args[]){ final int i; i = 20; System.out.println(i); } } 

Izvade

 20 

Paskaidrojums

Tā kā i ir tukšais gala mainīgais. To var inicializēt tikai vienu reizi. Esam inicializējuši to uz 20. Tāpēc tiks izdrukāts 20.


97) Kāda ir šādas Java programmas izvade?

 class Base { protected final void getInfo() { System.out.println('method of Base class'); } } public class Derived extends Base { protected final void getInfo() { System.out.println('method of Derived class'); } public static void main(String[] args) { Base obj = new Base(); obj.getInfo(); } } 

Izvade

 Derived.java:11: error: getInfo() in Derived cannot override getInfo() in Base protected final void getInfo() ^ overridden method is final 1 error 

Paskaidrojums

GetDetails() metode ir galīga; tāpēc apakšklasē to nevar ignorēt.


98) Vai mēs varam atzīt konstruktoru par galīgu?

Konstruktors nekad nevar tikt pasludināts par galīgu, jo tas nekad netiek mantots. Konstruktori nav parastas metodes; tāpēc nav jēgas konstruktorus pasludināt par galīgiem. Tomēr, ja jūs mēģināt to izdarīt, kompilators parādīs kļūdu.


99) Vai mēs varam pasludināt saskarni par galīgu?

Nē, mēs nevaram pasludināt saskarni kā galīgu, jo saskarne ir jāīsteno kādai klasei, lai nodrošinātu tās definīciju. Tāpēc nav jēgas padarīt interfeisu galīgu. Tomēr, ja mēģināsit to izdarīt, kompilators parādīs kļūdu.


100) Kāda ir atšķirība starp galīgo metodi un abstrakto metodi?

Galvenā atšķirība starp galīgo metodi un abstrakto metodi ir tā, ka abstraktā metode nevar būt galīga, jo mums tās ir jāiznīcina apakšklasē, lai sniegtu tās definīciju.