Top 50 câu hỏi và trả lời phỏng vấn Java ( Phần 4)

Đăng bởi: Admin | Lượt xem: 1689 | Chuyên mục: Java

Hướng dẫn này bao gồm các chủ đề JAVA như định nghĩa Java cơ bản, khái niệm OOP,Access specifiers, Collections, Exceptions, Threads, Serialization,...với các ví dụ để bạn sẵn sàng đối mặt với bất kỳ cuộc phỏng vấn JAVA nào một cách tự tin.


Trong hướng dẫn này, chúng tôi đã trình bày gần 50+ câu hỏi phỏng vấn Java cốt lõi quan trọng cho những người mới và ứng viên có kinh nghiệm.

Bài đăng này trên Câu hỏi phỏng vấn JAVA được chuẩn bị để giúp bạn hiểu các khái niệm cơ bản về lập trình Java cho mục đích phỏng vấn. Tất cả các khái niệm JAVA quan trọng được giải thích ở đây với các ví dụ để bạn dễ hiểu.

Câu hỏi phỏng vấn Java phổ biến nhất

Dưới đây là danh sách đầy đủ các câu hỏi phỏng vấn lập trình Java cơ bản và nâng cao quan trọng nhất và thường được hỏi với các câu trả lời chi tiết.

Q # 30) Giải thích Priority Queue.

Trả lời:

Priority Queue: Hàng đợi ưu tiên cũng có những tính chất giống như hàng đợi đó là chèn phần tử vào phía cuối và lấy ra từ phía đầu. Nhưng có điểm khác đó là thứ tự các phần tử trong hàng đợi ưu tiên phụ thuộc vào dộ ưu tiên của phần tử đó.còn hàng đợi bình thường thì tuân theo tính chất FIFO (vào trước ra trước).

Phần tử với độ ưu tiên cao nhất sẽ được xếp lên đầu hàng đợi và phần tử với độ ưu tiên thấp nhất sẽ được chuyển xuống cuối.

Do vạy, khi bạn chèn một phần tử vào cuối hàng đợi ưu tiên, no có thể được chuyển lên đầu tiên nếu độ ưu tiên của nó là cao nhất.

Q # 31) Ngoại lệ có nghĩa là gì?

Trả lời: ngoại lệ là một sự kiện làm gián đoạn luồng bình thường của chương trình. Nó là một đối tượng được ném ra tại runtime.

Khi một lỗi xảy ra trong một phương thức, phương thức này tạo ra một đối tượng và đưa nó vào hệ thống runtime. Các đối tượng, được gọi là đối tượng ngoại lệ , có chứa thông tin về lỗi, bao gồm loại lỗi và trạng thái của chương trình khi xảy ra lỗi. Việc tạo một đối tượng ngoại lệ và đưa nó vào hệ thống runtime được gọi là ném một ngoại lệ

Ví dụ để xử lý Ngoại lệ:

try{

    //Risky codes are surrounded by this block

   }catch(Exception e){

    //Exceptions are caught in catch block

   }

Q # 32) Các loại ngoại lệ (Exception) trong java?

Trả lời: Có hai loại Ngoại lệ

  1. Checked Exception:

Là loại exception xảy ra trong lúc compile time, nó cũng có thể được gọi là compile time exceptions. Loại exception này không thể bỏ qua được trong quá trình compile, bắt buộc ta phải handle nó.

Các lớp extends từ lớp Throwable ngoại trừ RuntimeException và Error được gọi là checked exception.

Ví dụ: IOException, FileNotFoundException, NoSuchFieldException, ….

  1. Unchecked Exception:

Là loại exception xảy ra tại thời điểm thực thi chương trình, nó cũng có thể gọi là runtime exceptions đó là programming bugs, lỗi logic của chương trình… Loại exception này được bỏ qua trong quá trình compile, không bắt buộc ta phải handle nó.

Các lớp extends từ RuntimeException được gọi là unchecked exception.

Ví dụ: NullPointerException, NumberFormatException, ArrayIndexOutOfBoundsException, DivideByZeroException, …

Q # 33) Các cách để xử lý các trường hợp ngoại lệ là gì?

Trả lời: Hai cách để xử lý ngoại lệ được giải thích bên dưới:

a) Sử dụng try / catch:

Một mã rủi ro được bao quanh bởi khối try. Nếu một ngoại lệ xảy ra, thì nó bị bắt bởi khối catch được theo sau bởi khối try.

Thí dụ:

class Manipulation{

    public static void main(String[] args){

        add();

    }

    Public void add(){

        try{

            addition();

        }catch(Exception e){

            e.printStacktrace();

        }

    }

}

b) Bằng cách khai báo từ khóa throws:

Khi kết thúc phương thức, chúng ta có thể khai báo ngoại lệ bằng cách sử dụng từ khóa throws.

Thí dụ:

class Manipulation{

    public static void main(String[] args){

        add();

    }

    public void add() throws Exception{

        addition();

    }

}

Q # 34) Những ưu điểm của xử lý Ngoại lệ là gì?

Trả lời: Những ưu điểm:

  • Luồng thông thường của việc thực thi sẽ không bị dừng nếu ngoại lệ được xử lý
  • Có thể xác định vấn đề gây ra ngoại lệ

 Q # 35) Các từ khóa xử lý ngoại lệ trong Java là gì?

Trả lời:

a) Try:

Khi một đoạn mã có khả năng xảy ra ngoại lệ được đặt trong khối “try”. Ngoại lệ xảy ra trong khối “try” được bắt bởi khối “catch”. Try có thể được theo sau bằng catch (hoặc) finally (hoặc) cả hai. Nhưng bắt buộc phải có một trong hai khối

b) Catch:

Khối catch được theo sau bởi khối try. Trường hợp xảy ra ngoại lệ , ngoại lệ được bắt ở đây.

c) finally:

Khối finally được theo sau bởi khối try (hoặc) khối catch. Khối này luôn được thực thi bắt bất kể có xảy ra ngoại lệ hay không

Q # 36) Giải thích về Exception Propagation.

Trả lời: Ngoại lệ trước tiên được ném ra từ phương thức nằm ở đầu ngăn xếp. Nếu nó không có ngoại lệ, phương thức sẽ được loại bỏ và chuyển sang phương thức trước đó và tiếp tục như vậy đến khi bắt được ngoại lệ hoặc chạy hết chương trình

Thí dụ:

public class Manipulation{

    public static void main(String[] args){

        add();

    }

    public void add(){

        addition();

    }

Từ ví dụ trên, ngăn xếp trông như dưới đây:

Ví dụ ngăn xếp           

Nếu một ngoại lệ xảy ra trong addition () không được bắt, nó chuyển sang add () . Sau đó, nó được chuyển đến phương thức main () và cuối cùng sẽ dừng luồng thực thi.

Q # 37) Từ khóa final cùng trong Java là gì?

Câu trả lời:

Biến final:  Một khi biến được khai báo là final, thì giá trị của biến không thể thay đổi, nó giống như một hằng số.

Thí dụ:

final int = 12;

Phương thức final:  Nếu có từ khóa final trong phương thức thì phương thức không thể bị ghi đè. Nếu một phương thức của lớp cha được đánh dấu là final, thì nó không thể bị ghi đè bởi lớp con.

Lớp final:  Nếu một lớp được khai báo là final, thì lớp đó không thể được các lớp khác kế thừa (extends )

Q # 38) Thread là gì?

Trả lời: Trong Java, một luồng thực thi được gọi là một Thread. Mỗi chương trình java có ít nhất một luồng được gọi là luồng chính(main thread ), luồng chính được tạo bởi JVM. Người dùng có thể định nghĩa các luồng của riêng mình bằng cách mở rộng lớp Thread (hoặc) triển khai Runnable interface. Threads được thực hiện đồng thời.

Thí dụ:

public static void main(String[] args){
    //main thread starts here

}

Q # 39) Làm thế nào để bạn tạo một Thread trong Java?

Trả lời: Có hai cách để tạo một Thread

a) Mở rộng lớp Thread:  Mở rộng lớp Thread và ghi đè phương thức run. Các Thread có sẵn trong gói java.lang.thread.

Thí dụ:

Public class Addition extends Thread {

    public void run () {
    //.......
    }

}

Nhược điểm của việc sử dụng lớp Thread là chúng ta không thể mở rộng bất kỳ lớp nào khác vì chúng ta đã mở rộng lớp Thread. Chúng ta có thể quá tải phương thức run () trong lớp.

b) Thực hiện giao diện Runnable:  Một cách khác là thực hiện giao diện runnable. Vì vậy, chúng ta nên cung cấp việc triển khai cho phương thức run () được xác định trong interface.

Thí dụ:

Public class Addition implements Runnable {

    public void run () {

    }

}
vncoder logo

Theo dõi VnCoder trên Facebook, để cập nhật những bài viết, tin tức và khoá học mới nhất!



Khóa học liên quan

Khóa học: Java

Tổng hợp Bài tập Java có lời giải
Số bài học:
Lượt xem: 18003
Đăng bởi: Admin
Chuyên mục: Java

Lập trình Java cơ bản
Số bài học:
Lượt xem: 40695
Đăng bởi: Admin
Chuyên mục: Java