JavaRush /Blog Jawa /Random-JV /Analisis pitakonan lan wangsulan saka wawancara kanggo pa...

Analisis pitakonan lan wangsulan saka wawancara kanggo pangembang Jawa. Bagean 3

Diterbitake ing grup
Hello! Kaya mokal sinau mabur montor mabur tanpa latihan khusus, uga ora mungkin dadi pangembang Jawa tanpa ngentekake pirang-pirang jam sinau dhasar teori sing dibutuhake. Dina iki kita bakal ngupayakake persis iki: kita bakal terus nganalisa 250+ pitakonan wawancara kanggo pangembang Jawa lan, kanthi mangkono, wangsulane. Punika bagean pisanan lan kapindho analisis. Ya, mesthi, sampeyan bisa dadi pangembang Jawa sing apik tanpa kabeh pitakonan kasebut. Nanging, yen sampeyan duwe pangerten sing apik babagan seluk-beluk basa Jawa, sampeyan bakal menehi keuntungan, dadi calon sing luwih disenengi ing mripate majikan sampeyan.Analisis pitakonan lan wangsulan saka wawancara kanggo pangembang Jawa.  Bagean 3 - 1

20. Unsur basa apa wae kang dadi tanggung jawabe enkapsulasi?

Nalika kita ngelingi, enkapsulasi ndhelikake rincian implementasine saka kelas. Sing, nalika kelas kita digunakake externally, isi internal lan logika ora ketok. Lan apa unsur basa sing tanggung jawab kanggo iki? Alami, akses modifiers ! Kita menehi tandha apa sing kudu didhelikake nganggo modifier pribadi . Contone, lapangan pribadi saka kelas utawa sawetara cara internal sing mbantu ngleksanakake fungsi internal tartamtu. Lan kanggo apa kita arep kanggo nyedhiyani akses external kanggo, kita nambah akses umum modifier . Contone, cara tanggung jawab kanggo nyedhiyani sawetara fungsi (ing kang akeh cara pribadi bisa digunakake) utawa getter lan setter padha kanggo ngakses kothak pribadi saka kelas. Oh, lan kita uga duwe modifiers standar lan dilindhungi , kang bisa digunakake kanggo konfigurasi luwih fleksibel lan tartamtu saka akses kanggo bagean milih saka kelas.

21. Unsur basa apa wae kang dadi tanggung jawabe warisan?

Warisan minangka mekanisme sing ngidini sampeyan nggawe kelas adhedhasar kelas liyane. Ing Jawa, tembung kunci extends digunakake kanggo tujuan iki . Contone, kita duwe kucing kelas tartamtu , lan kita pengin nggawe penerus - Singa . Ing kode bakal katon kaya iki:
public class Lion extends Cat
Lan iki tegese kelas Singa marisi kabeh metode lan variabel saka kelas Cat , kajaba sing statis. Uga, unsur basa sing tanggung jawab kanggo warisan kalebu super . Iki minangka referensi sing padha karo iki , nanging nalika iki nuduhake obyek sing diarani, super nuduhake obyek induk saiki. Biasane super digunakake:
  1. Kanggo nelpon konstruktor superclass: contone, kelas Cat duwe jeneng variabel internal sing kudu initialized ing konstruktor. Ing konstruktor kelas Lion bakal katon kaya iki:

    public Lion(final String name) {
       super(name);
    }
  2. Kanggo ngakses kolom lan metode induk: contone, ing kelas Cat kita duwe lapangan umur sing diinisialisasi :

    public class Cat {
       int age = 10;
Ing wektu sing padha, kita duwe lapangan initialized padha ing Lion :
public class Lion extends Cat {
   int age = 15;
Lan yen kita pengin ngakses variabel umur obyek induk saka obyek Singa , kita kudu nindakake iki liwat super :
super.name

22. Apa wae unsur basa kang nduweni kalungguhan polimorfemis?

Polimorfisme minangka kemampuan obyek saka siji teken kanggo njupuk pirang-pirang wujud (multimplementation). Kita bisa ngomong kanthi aman manawa ing Jawa ngleksanakake lan ngluwihiAnalisis pitakonan lan wangsulan saka wawancara kanggo pangembang Jawa.  Bagean 3 - 2 tembung kunci tanggung jawab kanggo polimorfisme . ngleksanakake - nalika kita nggawe antarmuka, kita ngleksanakake salah siji saka wangun bisa ing sawetara kelas, nanging ora mung wangun, iku? Ayo elinga kaya apa implementasine :
public class Cat implements Animal
Lan ing kelas Cat kita kudu ngleksanakake kabeh cara abstrak presented ing antarmuka Animal . Padha dadi kanggo warisan: ing kelas turunan kita bisa ngatasi implementasine wis ana saka cara. Contone: sawetara keturunan -> sawetara overrides beda saka cara sing padha. Ya, superclass kasebut abstrak lan duwe metode tartamtu sing kudu ditindakake kanthi cara khusus kanggo saben turunane. Sing, kita bisa ngomong sing cara bakal njupuk akeh formulir. Uga, @Override anotasi bisa mbantu kita karo iki , kang diselehake ing ndhuwur cara dipun ginakaken lan nuduhake yen kita arep kanggo ngleksanakake utawa override (yen implementasine wis ana ing superclass) siji utawa liyane cara saka superclass utawa antarmuka. Iku opsional lan digunakake kanggo nggampangake ndeteksi kesalahan. Kanthi anotasi iki, sampeyan nuduhake compiler sing pengin override / ngleksanakake superclass / cara antarmuka, lan iku bakal mesthekake yen sampeyan ora nggawe kesalahane ing cara teken.

23. Apa iku SOLID? Menehi conto

SOLID minangka akronim kanggo Five Basic Design Principles kanggo OOP, digawe dening Robert Martin. S - Prinsip tanggung jawab tunggal - prinsip tanggung jawab tunggal, sing nyatakake yen kelas kudu mung siji tujuan lan tujuan siji. Yaiku, sampeyan ora kudu nggawe kelas sing nindakake kabeh. Ing kasus iki, sampeyan bisa ngasilake antipattern "Obyek gaib". Yen sampeyan duwe obyek Cat , kudu ngemot cara sing mung sesambungan karo fungsi internal, lan dudu logika bisnis sing ora cocog karo conto iki. Contone, sawetara jinis nyimpen obyek saka jinis iki nang endi wae. Fungsi eksternal iki (relatif kanggo Cat ) kudu ditransfer menyang kelas liyane, sawetara layanan sing tugase nyedhiyakake logika bisnis kanggo obyek saka jinis iki. O - Prinsip Open-closed - prinsip mbukak / nutup. Tegese entitas piranti lunak (kelas, antarmuka) kudu mbukak kanggo ekstensi, nanging ditutup kanggo modifikasi. Contone, kita mbutuhake fungsi sing padha karo fungsi kelas Cat sing wis ana , nanging rada beda. Tinimbang ngganti fungsi kelas Cat , ngilangi panggonan sing wis digunakake, kita nggunakake warisan utawa komposisi . Akibaté, kita entuk gol kanthi fungsi sing diowahi saka kelas Cat , nanging ing wektu sing padha kita ora ngganti utawa ngilangi apa-apa. L - prinsip substitusi Liskov - prinsip substitusi Barbara Liskov. Prinsip kasebut nyatakake yen fungsi sing nggunakake jinis dhasar kudu bisa nggunakake subtipe saka jinis dhasar tanpa ngerti. Contone, kelas Kucing kita kudu diijolake karo turunane, ujare Singa , tanpa ngganti prilaku kasebut. Logika umum (prilaku) tetep padha, nanging rincian implementasine fungsi kasebut utawa owah-owahan. I - Prinsip pamisahan antarmuka - prinsip pamisahan antarmuka. Prinsip iki nyatakake yen luwih apik duwe akeh antarmuka khusus (fokus sempit) tinimbang siji universal. Contone, pangguna nindakake sawetara antarmuka, sing mung mbutuhake metode iki, nanging antarmuka iki duwe sangang cara liyane sing ora ana hubungane karo logika metode sing dikarepake. Ing kasus iki, pangguna kudu ngetrapake sepuluh metode antarmuka, sangang sing ora perlu kanggo dheweke! Nanging, luwih becik nggawe sepuluh antarmuka sing beda-beda sing bisa ditindakake yen perlu. Ya, utawa ora sepuluh, nanging sawetara, sing bakal duwe cara sing raket karo tujuan umum antarmuka. D - Prinsip Inversi Dependensi- prinsip inversi dependensi. Prinsip kasebut nyatakake yen modul ing tingkat sing luwih dhuwur ora kudu gumantung marang modul ing tingkat sing luwih murah. Prinsip iki uga diterangake minangka "abstraksi ora kudu gumantung ing rincian, rincian kudu gumantung ing abstraksi." Yaiku, kita kudu mbangun logika kanthi ngrujuk menyang antarmuka, lan mung banjur ngirim obyek tartamtu menyang fungsi kasebut, kelas sing ngetrapake antarmuka sing dibutuhake. Contone, yen kita duwe antarmuka Cat lan sawetara implementasine, ngomong, Lion lan HomeCat , kita mbangun logika interaksi khusus karo jinis antarmuka Cat , lan mung banjur ngganti implementasine tartamtu saka Lion utawa HomeCat , nanging ora kosok balene.

24. Apa kelas, obyek, antarmuka?

Minangka kita elinga, Jawa minangka basa OOP. Yaiku, program Java dibangun ing interaksi antarane obyek. Pranyata program kasebut kaya semut, ing ngendi saben semut minangka obyek. Analisis pitakonan lan wangsulan saka wawancara kanggo pangembang Jawa.  Bagean 3 - 3Obyek yaiku sawetara data klompok sing ngemot macem-macem cara (fungsi) kanggo sesambungan karo data internal iki. Lan kelas minangka instruksi, template kanggo nggawe obyek. Tegese, bisa uga akeh obyek sing dibangun miturut instruksi sing padha, diisi karo nilai data sing beda utawa padha. Kanggo menehi conto saka urip, kita bisa ngomong yen kelas minangka gambar bangunan, lan obyek minangka bangunan sing digawe khusus adhedhasar gambar iki. Antarmuka minangka analog saka kelas kanthi bedane obyek ora bisa digawe nggunakake. Tujuane kanggo nambah unsur abstraksi ing Jawa. Luwih tepat, kanggo nambah keluwesan ing hubungan antarane kelas lan obyek. Kanthi keluwesan, tegese polimorfisme lan abstraksi sing diterangake sadurunge, sing mbukak akeh kesempatan kanggo mbangun arsitektur internal aplikasi kasebut.

25. Kelas POJO iku opo? Wenehana tuladha kelas kasebut

Analisis pitakonan lan wangsulan saka wawancara kanggo pangembang Jawa.  Bagean 3 - 4POJO - Obyek Jawa Lawas Plain - obyek Jawa lawas sing apik: obyek prasaja saka kelas sing ora diwarisake saka kelas tartamtu lan ora ngleksanakake antarmuka layanan ngluwihi sing dibutuhake kanggo model bisnis. Ing tembung liyane , kelas POJO mung kelas tanpa syarat khusus. Siji-sijine syarat yaiku ora ana macem-macem lonceng lan peluit sing diikat menyang kerangka tartamtu. Minangka aturan, kelas kasebut ora oleh warisan saka kelas liyane (kajaba kelas POJO saka paket sing padha), aja ngleksanakake antarmuka - kadhangkala pangecualian digawe kanggo antarmuka panandha saka perpustakaan standar kayata Serializable utawa Cloneable - aja nggunakake anotasi. lan ora gumantung ing perpustakaan pihak katelu. Nanging aku nyathet yen POJO bisa duwe metode kanthi logika bisnis lan konstruktor apa wae. Yen sampeyan ngidini anotasi sing ora nggawe owah-owahan ing semantik kelas (tanpa tujuan obyek lan logika operasi ora bakal diganti), POJO uga bisa kalebu entitas JPA Entitas lan obyek DTO deserialized saka XML utawa JSON , aturan sing kasebut ing anotasi. Sampeyan uga disaranake kanggo nimpa equals lan hashCode kanggo kelas POJO , amarga iki bisa mbantu dheweke nindakake peran sing luwih apik. Contoh kelas POJO :
public class User {
   private Long id;
   private String firstName;
   private String lastName;
   private Long age;

   public User(final Long id, final String firstName, final String lastName, final long age) {
       this.id = id;
       this.firstName = firstName;
       this.lastName = lastName;
       this.age = age;
   }

   public Long getId() {
       return this.id;
   }

   public String getFirstName() {
       return this.firstName;
   }

   public String getLastName() {
       return this.lastName;
   }

   public Long getAge() {
       return this.age;
   }

   @Override
   public boolean equals(final Object o) {
       if (this == o) return true;
       if (o == null || this.getClass() != o.getClass()) return false;
       final User user = (User) o;
       return Objects.equals(this.id, user.id) &&
               Objects.equals(this.firstName, user.firstName) &&
               Objects.equals(this.lastName, user.lastName) &&
               Objects.equals(this.age, user.age);
   }

   @Override
   public int hashCode() {
       return Objects.hash(this.id, this.firstName, this.lastName, this.age);
   }
}

26. Unsur apa wae sing bisa diduweni kelas?

Kelas bisa ngemot unsur ing ngisor iki:
  • lapangan kelas;
  • kolom kelas statis;
  • pamblokiran initialization;
  • blok initialization statis;
  • konstruktor (kosong tansah ditetepake minangka standar);
  • cara;
  • cara statis;
  • macem-macem anotasi (sing bisa digantung ing ndhuwur kelas kasebut utawa komponene);
  • generik ;
  • warisan saka kelas liyane ( ngluwihi ) utawa implementasine saka antarmuka ( ngleksanakake ).

27. Terangna pusaka ing basa Jawa. Apa keuntungan nggunakake tembung kunci super?

Ing ndhuwur aku wis ngomong babagan warisan lan tembung kunci super ing Jawa. Ayo kula sebutno sawetara poin sing luwih penting:
  1. Sampeyan mung bisa oleh warisan siji kelas: ora ana sawetara warisan ing Jawa (nanging karo tekane saka cara standar ing Jawa 8, statement iki bakal dadi kontroversial banget).
  2. Cara lan lapangan pribadi uga diwarisake, mung ora bakal entuk akses saka ahli waris (nanging yen kita, contone, duwe lapangan pribadi lan ana getter lan setter umum utawa dilindhungi , lapangan kasebut bisa digarap. liwat wong-wong mau).
  3. kelas pungkasan ora diwarisake.
  4. cara final ora overridden (nanging padha bisa dipun warisaken lan overloaded).
  5. cara statis lan variabel ora dipun warisaken (amarga disambungake ora kanggo obyek, nanging kanggo kelas).
  6. Nalika marisi saka kelas abstrak, implementasine metode abstrak dibutuhake, utawa kelas saiki uga kudu diumumake abstrak.
  7. Yen ana konstruktor non-standar ing tiyang sepah, padha kudu ditindhes ing kelas anak (nanging @Override ora ditulis liwat wong).
  8. Cara overridden ing turunan bisa ditambah karo modifier akses: pribadi -> standar -> dilindhungi -> umum .
  9. Cara overridden ing turunan bisa mbatesi pangecualian sing ditulis, contone: Exception -> IOException -> FileNotFoundException.
Analisis pitakonan lan wangsulan saka wawancara kanggo pangembang Jawa.  Bagean 3 - 5

28. Apa sing diarani metode teken? Wenehana tuladha tandha tangan sing bener lan salah

Tandha saka metode yaiku jeneng metode ditambah jinis paramèter sing mlebu (lan urutan paramèter penting). Tandha metode ora kalebu nilai bali utawa pangecualian sing dibuwang. Tuladha tandha tangan sing bener:
doSomething(int, double, double)
Conto tandha tangan sing salah:
void doSomething(int firstArg, int secondArg) throws Exception
Tandha metode, digabungake karo jinis bali lan dhaptar pengecualian sing dibuwang, diarani kontrak metode . Sing kabeh kanggo dina iki. Ketemu maneh!Analisis pitakonan lan wangsulan saka wawancara kanggo pangembang Jawa.  Bagean 3 - 6
Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION