200 Câu hỏi phỏng vấn Java (Phần 11)

Phỏng vấn vẫn là vấn đề rất nhiều bạn ra mới ra trường khá sợ và thiếu tự tin, một phần chủ yếu do thiếu khá nhiều kiến thức nền tảng, một phần là bạn chưa có sự chuẩn bị kỹ càng. Việc đọc qua những câu phỏng vấn là một cách khá hay, giúp bạn trau dồi lại kiến thức của mình cũng như làm quen dần với các câu hỏi bạn sẽ gặp trong cuộc phỏng vấn.

Chương này chúng ta cùng tìm hiểu về 10 câu hỏi phỏng vấn Java tiếp theo.

Điểm khác nhau giữa các thành phần Swing và AWT?

Các thành phần AWT là nặng (heavy-weight), trong khi các thành phần Swing là gọn nhẹ (lightweight). Các thành phần nặng phụ thuộc vào bộ công cụ cửa sổ nội bộ (Local Windowing Toolkit). Ví dụ, java.awt.Button là một thành phần nặng, khi nó đang chạy trên nền tảng Java cho nền tảng Unix, nó ánh xạ tới Motif Button thực sự.

Điểm khác nhau giữa Constructor và các phương thức khác?

Constructor phải có cùng tên với tên lớp và không thể trả về một giá trị. Chúng chỉ được gọi trong khi các phương thức thông thường có thể được gọi nhiều lần.

Có bất kỳ giới hạn nào khi sử dụng Tính kế thừa (Inheritance)?

Có, khi tính kế thừa là kế thừa mọi thứ từ lớp cha và cả Interface, nhưng đôi khi nó có thể tạo ra đột biến (error-prone) với việc ghi đè động và nạp chồng động trong một số tình huống.

Khi nào ArrayStoreException được ném?

Khi sao chép các phần tử giữa các mảng khác nhau, nếu tham số source hoặc tham số đích đến không là các mảng hoặc kiểu của chúng là không tương thích, thì khi đó một ArrayStoreException sẽ được ném.

Bạn có thể gọi một Constructor này từ Constructor khác nến một lớp có nhiều Constructor không?

Có, sử dụng cú pháp this().

Phương thức sleep() và wait() khác nhau ở điểm nào?

Ví dụ, sleep(2000); làm Thread đợi đúng 2 giây. Trong khi wait(2000); làm thời gian Thread chờ có thể lên tới 2 giây. Một Thread có thể dừng việc chờ đợi sớm hơn nếu nó nhận một lời gọi notify() hoặc notifyAll(). Phương thức wait() được định nghĩa trong lớp Object và phương thức sleep() được định nghĩa trong lớp Thread.

ArithmeticException được ném khi nào?

ArithmeticException được ném khi chia số nguyên cho số 0 hoặc lấy phần dư của phép chia cho số 0. Nó không bao giờ được ném trong các phép toán về số thực.

Một biến là transient (tạm thời) là gì?

Một biến transient là một biến mà không thể được xếp theo thứ tự trong Serialization và nó được khởi tạo bởi giá trị mặc định của nó trong Deserialization.

Synchronization (Đồng bộ hóa) là gì?

Synchronization là khả năng điều khiển truy cập của nhiều Thread tới nguồn đã chia sẻ. Từ khóa synchronized trong Java cung cấp locking để đảm bảo sự truy cập tương hỗ mang tính loại trừ của nguồn đã chia sẻ và ngăn cản Data Race (Tranh đoạt dữ liệu).

Collection API là gì?

Collection API là một tập hợp các lớp và Interface mà hỗ trợ các hoạt động trên các Collection của đối tượng.

Bình luận