JavaRush /Java Blog /Random-TK /Java dörediji üçin geçirilen söhbetdeşliklerden soraglary...

Java dörediji üçin geçirilen söhbetdeşliklerden soraglaryň we jogaplaryň derňewi. 2-nji bölüm

Toparda çap edildi
Hemmelere ýene-de salam! Junior, Orta we Uly döredijiler üçin 250+ soraga jogap gözlemegi dowam etdirýäris . Soraglar gaty gyzykly, menem olary derňemegi halaýaryn: şeýle pursatlarda teoretiki bilimleriň we iň garaşylmadyk ýerlerde boşluklary tapyp bilersiňiz. Öňki bölümi şu makaladaSöhbetdeşlik soraglarynyň we jogaplarynyň derňewi.  2-nji bölüm tapyp bilersiňiz . Emma başlamazdan ozal size ýatlatmak isleýärin:
  1. Maglumatlary ýene bir gezek gaýtalamazlyk üçin bu makalalar tapgyry bilen kesişýän soraglara geçerin. Bu materiallary okamagy maslahat berýärin, sebäbi olarda iň köp ýaýran (meşhur) Java Core söhbetdeşlik soraglary bar.
  2. DOU-daky soraglar ukrain dilinde berilýär, ýöne bu ýerde rus dilinde hemme zat bolar.
  3. Jogaplary has jikme-jik düşündirip bolar, ýöne başarmaryn, sebäbi şondan bäri her soraga jogap tutuş bir makalany alyp biler. Islendik söhbetdeşlikde sizden beýle jikme-jik soramazlar.
Zerur bolsa, has çuňňur öwrenmek üçin baglanyşyk goýaryn. Uçalyň!

11. Obýekt synpynyň ähli usullaryny atlandyryň

Obýekt synpynyň 11 usuly bar:
  • Klass <?> GetClass () - häzirki obýektiň synpyny almak;
  • int hashCode () - häzirki obýektiň hash koduny almak;
  • boolean deňdir (Obýektiň garşylygy) - häzirki obýekti başga biri bilen deňeşdirmek;
  • Obýekt klony () - häzirki obýektiň göçürmesini döretmek we yzyna gaýtarmak;
  • String toString () - obýektiň setir görnüşini almak;
  • void notify () - bu obýektiň monitorynda garaşýan bir sapagy oýarmak (sapak saýlamak tötänleýin);
  • void notifyAll () - bu obýektiň monitorynda garaşýan ähli sapaklary oýarýar;
  • boş garaşmak () - häzirki sapagy häzirki monitorda garaşma tertibine geçirýär (doňdurýar), diňe käbirleri habar berýän ýa-da habar berýänçä, diňe sinhron blokda işleýär;
  • boş garaşmak (uzak wagt gutarmak) - häzirki monitordaky häzirki sapagy (häzirki sinhronlaşdyrylan görnüşde) doňdurýar, ýöne bu ýagdaýdan çykmak üçin taýmer bilen (ýa-da ýene-de: habardar bolýança ýa-da habardar bolýança)
  • boş garaşmak (uzak wagt gutarmak, int nanos) - ýokarda beýan edilen usul bilen meňzeş, ýöne doňmakdan çykmak üçin has takyk taýmerler bilen usul;
  • void finalize () - bu obýekti pozmazdan ozal, zibil ýygnaýjy bu usuly çagyrýar (ahyrsoňy). Basylyp alnan çeşmeleri arassalamak üçin ulanylýar.
HashCode-ny dogry ulanmak , deňlemek , klonlamak , toString we gutarnykly usullary gutarmak üçin, häzirki meseläni we ýagdaýlary göz öňünde tutup täzeden kesgitlenmeli.

12. Resurslar bilen iş salyşanyňyzda synap görmek bilen ahyrsoňy synap görmegiň arasynda näme tapawut bar?

Adatça, ahyrky synanyşyk ulanylanda , ahyrky blok serişdeleri ýapmak üçin ulanyldy. Java 7, çeşmeleri boşatmak üçin synanyşygyň meňzeş , ýöne has ykjam we okalýan operatiw synanyşygyň täze görnüşini hödürledi . Synag-ahyrsoňy nähili boljakdygyny ýadymyzdan çykaralyň :
String text = "some text......";
BufferedWriter bufferedWriter = null;
try {
   bufferedWriter = new BufferedWriter(new FileWriter("someFileName"));
   bufferedWriter.write(text);
} catch (IOException e) {
   e.printStackTrace();
} finally {
   try {
       bufferedWriter.close();
   } catch (IOException e) {
       e.printStackTrace();
   }
}
Indi bu kody täzeden ýazalyň, ýöne synanyşyk çeşmelerini ulanyp :
String text = "some text......";
try(BufferedWriter bufferedWriter =new BufferedWriter(new FileWriter("someFileName"))) {
   bufferedWriter.write(text);
} catch (IOException e) {
   e.printStackTrace();
}
Näme-de bolsa aňsatlaşýar, şeýlemi? Simplönekeýleşdirmekden başga-da birnäçe nokat bar:
  1. Çeşmeler bilen synanyşykda , gabygyň içinde yglan edilen çeşmeler (ýapylar) “AutoCloseable” interfeýsini we ýeke-täk usulyny ýapmaly () .

    Closeakyn usul gutarnykly blokda ýerine ýetirilýär , ýogsam programma berlen çeşmäni nädip ýapmalydygyna nädip düşüner?

    Resourcesöne, ähtimal, çeşmeleriň ýerine ýetirilişini we ýapmak usulyny seýrek ýazarsyňyz.

  2. Blok ýerine ýetirilişiniň yzygiderliligi:

    1. blokirlemäge synanyşyň .
    2. Ahyrsoňy . _
    3. Öňki ädimlerde kadadan çykmalary saklaýan blok .
    4. Ahyrsoňy aýdyň .

    Düzgün bolşy ýaly, sanawda has pes görünýän kadadan çykmalar has ýokary görünýänleri kesýär.

Synag synanyşygy ulanylanda ahyrsoňy synanyşykda kadadan çykma ýüze çykan ýagdaýy göz öňüne getiriň . Şoňa laýyklykda belli bir tutma bloky derrew ýerine ýetirilip başlaýar , onda başga bir kadadan çykma ýazýarsyňyz (mysal üçin, ýalňyşlygy has jikme-jik beýan edýän habar bilen), we bu kadadan çykma usulyny isleýärsiňiz. Ondan soň iň soňky blokuň ýerine ýetirilişi gelýär we oňa kadadan çykma hem edilýär. Emma bu başga. Bu iki kadadan çykmanyň haýsysy ahyrsoňy zyňar? Iň soňky blok tarapyndan taşlanan kadadan çykma ! Tryöne synanyşyk çeşmeleri bilen bir nokat bar . Indi şol bir ýagdaýdaky synanyşyk çeşmeleriniň özüni alyp barşyna seredeliň . Closeakyn () usulda , ýagny ahyrky netijede çeşmeleri ýapjak bolanymyzda, synanyşyk blokunda kadadan çykma alýarys . Bu kadadan çykmalar haýsy ? Synag bloky tarapyndan zyňylan ! Iň soňunda ( ýakyn () usuldan ) kadadan çykma hasaba alynmaz. Bu äsgermezlik kadadan çykma basyşy hem diýilýär.

13. Bitwise amallar näme?

Bitwise amallary, logiki amallary we bitwise smenalary öz içine alýan bit setirlerindäki amallardyr. Logiki amallar:
  • bitwise AND - bit bahalaryny deňeşdirýär we amalda 0 (ýalan) kesgitlenen islendik bit netijede degişli biti 0 hökmünde kesgitleýär, ýagny iki bahada deňeşdirilende bit 1 (dogry) bolsa, Netije hem 1 bolar.

    - AND , &

    Mysal: 10111101 & 01100111 = 00100101

  • birneme ýa-da öňki biriniň ters işleýşi. 1-e düzülen islendik bit, netijede 1-e meňzeş biti düzýär we şoňa görä-de, deňeşdirilen bahalaryň ikisinde-de 0 bolan bolsa, netijede bit hem 0 bolar.

    - OR , |

    Mysal: 10100101 | 01100011 = 11100111

  • tersine NOTOK - bir bahada ulanylýar, bitleri süýşürýär (tersine). 1agny, 1 bolan bitler 0 bolar; we 0 bolanlar 1 bolar.

    Bellendi - NOTOK , ~

    Mysal: ~ 10100101 = 01011010

  • bitwise eksklýuziw OR - bit bahalaryny deňeşdirýär we iki bahada bit 1-e deň bolsa, netije 0 bolar, iki bahada-da bit 0 bolsa, netije 0 bolar. netijäniň 1-e deň bolmagy üçin bitleriň diňe biri 1-e, ikinjisi 0-a deň bolmaly.

    - XOR , ^ diýlip atlandyrylýar

    Mysal: 10100101 ^ 01100011 = 11000110

Bitwise smena - >> ýa-da << bahanyň bitlerini görkezilen san boýunça görkezilen ugra süýşüriň. Boş ýerler nol bilen doldurylýar. Mysal üçin:
  1. 01100011 >> 4 = 00000110
  2. 01100011 << 3 = 00011000
Ters otrisatel san üýtgedilende kadadan çykma hem bar. .Adyňyzda bolsa, birinji bit alamat üçin jogapkärdir we bu bit 1-e deň bolsa, san negatiwdir. Negativearamaz san göçürseňiz, boş ýerler indi nollar bilen doldurylmaz, belgi birneme saklamaly bolany üçin. Mysal üçin: 10100010 >> 2 = 11101000 Şol bir wagtyň özünde, Java-da goşmaça gol çekilmedik sag smena operatory bar >>> Bu operator, meňzeş bolsa >> üýtgän mahaly boş ýerler 0 bilen doldurylýar, tapawudy ýok san negatiw ýa-da polo positiveiteldir. Mysal üçin: 10100010 >>> 2 = 00101000 Bitli amallar barada has giňişleýin maglumaty şu ýerden okaň . Söhbetdeşlik soraglarynyň we jogaplarynyň derňewi.  2-nji bölümJava-da bitwise smenalary ulanmagyň mysallary hökmünde, açar üçin ýörite içerki hash koduny kesgitlemek üçin ulanylýan HashMap-yň hash ()Söhbetdeşlik soraglarynyň we jogaplarynyň derňewi.  2-nji bölüm usulyny berip bilersiňiz: Bu usul size has azaltmak üçin HashMap-da maglumatlary deň paýlamaga mümkinçilik berýär. çaknyşyklaryň sany.

14. Java-da haýsy üýtgewsiz synplar bar?

Üýtgemez , asyl parametrleriniň üýtgemegine ýol bermeýän obýektdir. Belli bir görnüşdäki täze obýektleri, üýtgetmek isleýän parametrleriňizi yzyna gaýtaryp berýän usullar bolup biler. Käbir üýtgewsiz zatlar:
  • Java-da iň meşhur üýtgewsiz obýekt String;
  • Adaty görnüşleri gurşap alýan sapak sapaklarynyň mysallary: Boolean, Character, Byte, Short, Integer, Long, Double, Float;
  • köplenç LARGE sanlary üçin ulanylýan obýektler - BigInteger we BigDecimal;
  • Stacktraces-de birlik bolan obýekt (mysal üçin, kadadan çykma stacktrace) StackTraceElement;
  • Faýl synpynyň obýekti - faýllary üýtgedip biler, ýöne şol bir wagtyň özünde üýtgewsizdir;
  • UUID - köplenç elementler üçin özboluşly id hökmünde ulanylýar;
  • java.time paketiniň ähli synp obýektleri;
  • Locerli - geografiki, syýasy ýa-da medeni sebiti kesgitlemek üçin ulanylýar.

15. Üýtgemeýän jisimiň adaty zatlardan artykmaçlyklary näme?

  1. Şeýle zatlar köp sapakly gurşawda ulanylanda howpsuzdyr . Olary ulanmak bilen, sapak ýaryş şertleri sebäpli maglumatlary ýitirmek barada alada etmeli däl. Ordinaryönekeý zatlar bilen işlemekden tapawutlylykda: bu ýagdaýda gaty ünsli pikirlenmeli we obýekti paralel gurşawda ulanmagyň mehanizmlerini işläp düzmeli bolarsyňyz.
  2. Üýtgedip bolmaýan obýektler kartada gowy düwmelerdir, sebäbi üýtgäp bilýän obýekti ulansaňyz we obýektiň ýagdaýyny üýtgetseňiz, HashMap ulanylanda bulaşyk bolup biler: obýekt henizem bar, egerKey () ulansaňyz , bolmazlygy mümkin tapylýar.
  3. Üýtgemeýän zatlar, programma işleýän wagtynda hiç haçan üýtgedilmeli üýtgewsiz (hemişelik) maglumatlary saklamak üçin ajaýyp.
  4. “Şowsuzlyga atom” - üýtgewsiz bir zat kadadan çykma etse, henizem islenmeýän (döwülen) ýagdaýda galmaz.
  5. Bu synplary synagdan geçirmek aňsat.
  6. Göçürme konstruktory we klony durmuşa geçirmek ýaly goşmaça mehanizmler zerur däl.

OOP hakda soraglar

Söhbetdeşlik soraglarynyň we jogaplarynyň derňewi.  2-nji bölüm

16. Umuman, OOP-nyň artykmaçlyklary we prosessual programmirleme bilen deňeşdirilende haýsy artykmaçlyklary bar?

Şeýlelikde, OOP-nyň artykmaçlyklary:
  1. Çylşyrymly programmalar prosessual programmirlemekden has aňsat, sebäbi hemme zat ownuk modullara - biri-biri bilen täsirleşýän obýektlere bölünýär we netijede programmirlemek obýektleriň arasyndaky gatnaşyklara girýär.
  2. OOP ulanyp ýazylan programmalary üýtgetmek has aňsat (dizaýn düşünjeleri ýerine ýetirilýänçä).
  3. Ondaky maglumatlar we amallar ýeke-täk birligi emele getirýändigi sebäpli, programmanyň hemme ýerinde hapalanmaýar (köplenç prosessual programmirleme bilen bolýar).
  4. Maglumat bukjasy ulanyjydan iň möhüm maglumatlary goraýar.
  5. Şol bir kody dürli maglumatlar bilen gaýtadan ulanmak mümkin, sebäbi synplar köp obýekt döretmäge mümkinçilik berýär, olaryň hersiniň özüne mahsus aýratynlyklary bar.
  6. Miras we polimorfizm size bar bolan kody gaýtadan ulanmaga we giňeltmäge mümkinçilik berýär (şuňa meňzeş funksiýany köpeltmegiň ýerine).
  7. Prosessual çemeleşmeden has aňsat programma giňelmesi.
  8. OOP çemeleşmesi durmuşa geçiriş jikme-jikliklerinden abstrakt etmäge mümkinçilik berýär.

17. OOP-da haýsy kemçilikleriň bardygyny bize aýdyň

Gynansagam, olar hem bar:
  1. OOP hiç zat ýazmazdan ozal özleşdirilmeli köp teoretiki bilimleri talap edýär.Söhbetdeşlik soraglarynyň we jogaplarynyň derňewi.  2-5-nji bölüm
  2. OOP ideýalaryna düşünmek we iş ýüzünde ulanmak beýle bir aňsat däl (ýüregiňizde birneme filosof bolmaly).
  3. OOP ulanylanda ulgamyň has çylşyrymly guramaçylygy sebäpli programma üpjünçiliginiň öndürijiligi birneme peselýär.
  4. OOP çemeleşmesi has köp ýady talap edýär, sebäbi hemme zat adaty üýtgeýänlerden has köp ýat tutýan synplardan, interfeýslerden, usullardan durýar.
  5. Başlangyç derňew üçin zerur wagt prosessualdan has köp.

18. Statik we dinamiki polimorfizm näme

Polimorfizm obýektlere şol bir synp ýa-da interfeýs üçin başgaça hereket etmäge mümkinçilik berýär. Polimorfizmiň iki görnüşi bar, olar ir we giç baglanyşdyryjy hem diýilýär . Statik polimorfizm ýa-da has irki baglanyşyk:
  • jemlenen wagtynda ýüze çykýar (programmanyň ömrüniň başynda);
  • jemlenen wagtynda haýsy usuly ýerine ýetirmelidigini çözýär;
  • Usuly artykmaç ýüklemek statiki polimorfizmiň mysalydyr;
  • irki baglanyşyk hususy, statiki we terminal usullaryny öz içine alýar;
  • miras irki baglanyşyk bilen baglanyşykly däl;
  • Statik polimorfizm belli bir obýektleri öz içine almaýar, ýöne üýtgeýän adyň çep tarapynda görkezilen synp hakda maglumat.
Dinamiki polimorfizm ýa-da giç baglanyşyk:
  • iş wagtynda ýüze çykýar (programma işleýän wagtynda);
  • dinamiki polimorfizm usulyň iş döwründe haýsy anyk durmuşa geçiriljekdigini çözýär;
  • usuly ýok etmek dinamiki polimorfizmiň mysalydyr;
  • giç baglamak, belli bir obýektiň bellenilmegi, görnüşine salgylanma ýa-da superklass;
  • miras dinamiki polimorfizm bilen baglanyşyklydyr.
Bu makalada ir we giç baglanyşmagyň arasyndaky tapawutlar barada has köp okap bilersiňiz .

19. OOP-da abstraksiýa ýörelgesini kesgitläň

OOP-da abstraksiýa, möhüm däl jikme-jiklikleri hasaba almazdan, obýektiň möhüm aýratynlyklarynyň toplumyny görkezmegiň usulydyr. Oagny, OOP çemeleşmesi bilen bir programma düzülende, durmuşa geçirilişiniň jikme-jikliklerine göz aýlamazdan, umuman modellere üns berýärsiňiz. Java-da interfeýsler abstraksiýa üçin jogapkärdir . Mysal üçin, enjamyňyz bar we bu interfeýs bolar. We onuň bilen dürli täsirleşmeler - mysal üçin, hereketlendirijini işe girizmek, dişli gutyny ulanmak - bular ýerine ýetiriş jikme-jikliklerine girmän ulanýan funksiýalarymyz. Galyberse-de, awtoulag süren wagtyňyzda, dişli gutynyň maksadyny nädip ýerine ýetirýändigi ýa-da açaryň hereketlendirijini nädip başlaýandygy ýa-da ruluň tigirleri nädip öwürýändigi hakda pikir etmeýärsiňiz. Bu funksiýanyň biriniň ýerine ýetirilmegi çalşylsa-da (mysal üçin hereketlendiriji), muny duýman bilersiňiz. Bu siziň üçin möhüm däl: durmuşa geçirmegiň jikme-jikliklerine girmeýärsiňiz. Hereketiň amala aşyrylmagy siziň üçin möhümdir. Aslynda, bu durmuşa geçiriş jikme-jikliklerinden abstraksiýa. Ine, şu gün durarys: dowam etmeli!Söhbetdeşlik soraglarynyň we jogaplarynyň derňewi.  2-nji bölüm
Tapgyryň beýleki materiallary:
Teswirler
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION