JavaRush /Java Blog /Random-ID /Rehat kopi #151. Implementasi Antrian di Java. 10 Pertany...

Rehat kopi #151. Implementasi Antrian di Java. 10 Pertanyaan yang Harus Dimiliki untuk Setiap Wawancara Kerja untuk Posisi Pengembang Backend Java

Dipublikasikan di grup Random-ID

10 Pertanyaan yang Harus Dimiliki untuk Setiap Wawancara Kerja untuk Posisi Pengembang Backend Java

Sumber: Medium Penulis artikel berbagi pengalaman pribadinya melewati beberapa wawancara untuk posisi Java Backend Developer. Rehat kopi #151.  Implementasi Antrian di Java.  10 pertanyaan yang harus dimiliki untuk setiap wawancara untuk posisi Pengembang Backend Java - 1Wawancara seringkali sulit. Oleh karena itu, ada baiknya untuk mengetahui pertanyaan-pertanyaan sebelum melakukan wawancara. Karena saya telah melalui sejumlah wawancara selama beberapa bulan terakhir, kini saya dapat berbagi dengan Anda beberapa pertanyaan yang paling sering saya temui. Saya melamar posisi sebagai backend Java developer dengan pengalaman 1-3 tahun.

1. Java dan fitur-fiturnya

Pewawancara biasanya akan menanyakan versi terbaru Java yang Anda gunakan beserta fitur-fiturnya. Saya sebagian besar menggunakan Java 8 dan ditanyai pertanyaan tentang aliran API, ekspresi lambda, antarmuka fungsional, dan sebagainya. Pewawancara biasanya bertanya tentang fitur dan aplikasi berdasarkan fitur tersebut.

2. Kerja internal HashMap

Sebagian besar wawancara yang saya hadiri menanyakan pertanyaan ini. Setelah menjelaskan cara kerjanya, beberapa bertanya tentang ukuran default HashMap, yang lain bertanya lebih lanjut tentang koleksi Java.

3. Kesalahan dan pengecualian

Perbedaan antara Error dan Exception adalah pertanyaan yang sangat umum ditanyakan dalam wawancara. Juga ditanyakan pengecualian apa yang dicentang dan tidak dicentang.

4. Multithread

Multithreading adalah konsep yang sangat penting untuk wawancara, biasanya pertanyaan diajukan tentang kelas Thread, Runnable, perbedaan di antara keduanya dan kasus penggunaan keduanya. Saya juga menyarankan Anda untuk mempelajari kerangka Executor.

5. String dan kekekalan

Sebagian besar pewawancara bertanya tentang kekekalan di kelas string, dan terkadang bertanya tentang pembuat string dan buffer string (jika Anda mengatakan itu adalah string alternatif yang bisa berubah). Terkadang mereka bertanya bagaimana cara membuat kelas yang tidak dapat diubah.

6. Pengumpulan sampah

Pengumpulan sampah di Jawa merupakan topik yang sangat penting untuk persiapan wawancara. Terkadang muncul pertanyaan tentang siklus hidup pengumpulan sampah dan berbagai metode pengumpulan sampah.

7. Pembanding dan Pembanding di Java

Pertanyaan yang sering diajukan adalah kapan menggunakan Comparator dan Comparable di Java dan apa perbedaan di antara keduanya.

8. Pola Desain Java

Ketika berbicara tentang pola desain Java, pertanyaan biasanya dimulai dengan pola berbeda yang digunakan dalam proyek saat ini. Terkadang pertanyaan diajukan tentang kapan harus menggunakan masing-masingnya. Juga ditanya tentang membuat kelas yang tidak dapat diubah di Java.

9. Final, Akhirnya dan Finalisasi

Perbedaan antara kata kunci final,final, dan finalize merupakan pertanyaan yang sangat umum ditanyakan dalam wawancara. Sebagai pertanyaan tambahan, mereka menanyakan tentang opsi untuk menggunakan setiap kata kunci.

10. Serialisasi dan Deserialisasi di Java

Serialisasi dan deserialisasi adalah topik yang sangat penting untuk mempersiapkan wawancara. Biasanya ditanya soal use case, kadang ditanya soal hibernasi dan JPA. Mudah-mudahan, jika Anda akan segera menghadapi wawancara untuk posisi Pengembang Sisi Server Java, mempersiapkan pertanyaan yang disebutkan di sini akan membantu Anda.

Menerapkan Antrian di Java

Sumber: Faun.pub Berkat publikasi ini, Anda akan mempelajari cara mengimplementasikan Antrian di Java. Rehat kopi #151.  Implementasi Antrian di Java.  10 pertanyaan yang harus dimiliki untuk setiap wawancara untuk posisi Pengembang Backend Java - 2

Apa itu antrian?

Antrian adalah suatu struktur data linier berupa rangkaian akses elemen sesuai dengan prinsip “masuk pertama, keluar pertama”. Artinya elemen yang dimasukkan terlebih dahulu akan dihilangkan terlebih dahulu. Artinya, elemen dihapus sesuai urutan penyisipannya. Antrian terdiri dari dua bagian: Depan (depan, tempat elemen dihilangkan) dan Belakang (belakang, tempat elemen dimasukkan). Operasi Antrian Umum: Operasi berikut ini biasanya digunakan dalam antrian:
  • Enqueue - Menambahkan elemen dari akhir antrian.
  • Dequeue - Menghapus elemen dari kepala antrian.
  • Front/Peek - mengembalikan nilai elemen di depan antrian, tanpa mengecualikan (menghapus) elemen dari antrian.
  • IsEmpty - memeriksa apakah antrian kosong.
  • IsFull - memeriksa apakah antrian sudah penuh.
  • Tampilan - Mencetak semua item dalam antrian.

Implementasi kode:

public class Example {
public static void main(String[] args) {
    Queue myQueue = new Queue();
    myQueue.enQueue(3);
    myQueue.enQueue(2);
    myQueue.enQueue(1);
    myQueue.display();
    myQueue.deQueue();
    myQueue.peak();
}
}
class Queue {
  int queueLength = 3;
  int items[] = new int[queueLength];
  int front = -1;
  int back = -1;
  boolean isFull(){
      if(back == queueLength - 1){
          return true;
      } else {
          return false;
      }
  }
  boolean isEmpty(){
      if(front == -1 && back == -1){
          return true;
      } else {
          return false;
      }
  }
   void enQueue(int itemValue) {
      if(isFull()){
          System.out.println("Queue is full");
      } else if(front == -1 && back == -1){
          front = back = 0;
          items[back] = itemValue;
      } else{
          back++;
          items[back] = itemValue;
      }
  }
   void deQueue(){
      if(isEmpty()){
          System.out.println("Queue is empty. Nothing to dequeue");
      } else if (front == back){
          front = back = -1;
      } else {
          front++;
      }
  }
  void display(){
      int i;
      if(isEmpty()){
          System.out.println("Queue is empty");
      } else {
          for(i = front; i <= back; i++){
              System.out.println(items[i]);
          }
      }
  }
  void peak(){
      System.out.println("Front value is: " + items[front]);
  }
}

Penjelasan:

  • Pertama kita membuat variabel dan parameternya. Kami menggunakan 3 sebagai jumlah maksimum elemen yang dapat diantrekan dalam array. Kita atur indeks awal bagian depan (Front) dan belakang (Back) menjadi -1.

  • Selanjutnya kita akan mendefinisikan fungsionalitas isEmpty dan isFull .

  • Metode isEmpty() cukup sederhana, untuk metode isFull() jumlah maksimum elemen yang diperbolehkan dalam sebuah array adalah 3, tetapi tiga elemen dalam array tidak dilambangkan dengan indeks 3 tetapi dengan 2 karena indeks pertama adalah 0. Jadi panjang maksimumnya dikurangi 1 memberi kita indeks 2, yang merupakan sel ketiga dalam array. Ketika semua sel dimasukkan dalam antrean dengan nilai hingga sel ketiga, array sudah penuh.

  • enQueue - jika array sudah penuh, kita mendapat pesan bahwa array sudah penuh. Jika bagian Depan dan Belakang adalah -1, maka elemen tersebut ditetapkan ke sel pertama pada indeks 0 - jika tidak, nilai akan dimasukkan dan posisi belakang akan bertambah.

  • deQueue - jika array kosong, kami menerima pesan yang sesuai. Jika bagian Depan bertemu dengan bagian Belakang, maka kita reset indeksnya kembali ke -1. Jika dua kondisi terakhir tidak berlaku, maka Front ditingkatkan.

  • display - jika array tidak kosong, kami mengulangi dan mencetak semua elemen.

  • peak - Ini hanya mencetak nilai elemen utama.

Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION