Gần đây, tôi có ý tưởng muốn chia sẻ kinh nghiệm với tất cả các bạn, những người đang gặp khó khăn trong việc tìm kiếm công việc lập trình về Java. Tôi hy vọng rằng mình có thể giúp đỡ bằng cách chia sẻ 10 câu hỏi Java thường gặp khi đi phỏng vấn
Đây là một điều rất khó nếu bạn không chắc chắn về bản thân hoặc trình độ thông thạo của bạn trong Java. Hãy hạ thấp số điểm của bạn xuống một chút. Sau này, bạn có thể sẽ nhận được câu hỏi theo mức độ bạn tự đánh giá. Do đó, bạn sẽ tránh được những câu hỏi quá khó mà rất có thể sẽ không thể trả lời được.
Ở đây bạn nên biết về những cái quan trọng nhất:
Hãy tìm hiểu về các collection này càng nhiều càng tốt, bởi vì bạn sẽ bị hỏi nhiều câu hỏi về chúng
Một số đặc điểm của Java là Hướng đối tượng, Độc lập nền tảng, Thông dịch, Đa luồng (Multi-thread), Robust (mạnh mẽ), Portable (khả chuyển).
Đây là một câu hỏi rất phổ biến được yêu cầu để xác định mức độ nắm vững của bạn với các khái niệm cơ bản. Đây là những method mà mọi object đều có:
Object
class, trong java.lang
package, được xếp hạng gần như top thứ hạng trong class. Mỗi class sẽ là một hậu duệ, trực tiếp hoặc gián tiếp, của Object
class. Mỗi class bạn sử dụng hoặc kế thừa các instance method của Object
. Bạn vốn không cần sử dụng bất kỳ phương pháp nào trong số này, nhưng nếu bạn chọn làm như vậy thì sẽ cần ghi đè chúng bằng các code cụ thể cho class của bạn. Các phương thức được kế thừa từ Object
.được thảo luận trong phần này là:
protected Object clone() throws CloneNotSupportedException
public boolean equals(Object obj)
protected void finalize() throws Throwable
Được gọi bởi garbage collector trên một object khi garbagecollection
xác định rằng không có thêm reference đến object.
public final Class getClass()
public int hashCode()
public String toString()
Return một chuỗi đại diện của object.
Các phương thức notify
, notifyAll
,và wait
của Object đều đóng vai trò đồng bộ hóa các hoạt động của các luồng chạy độc lập của thread trong một chương trình. Có năm method sau:
public final void notify()
public final void notifyAll()
public final void wait()
public final void wait(long timeout)
public final void wait(long timeout, int nanos)
Classloader
..HashMap
key object khác. Đây là lý do tại sao String là object được sử dụng nhiều nhất của các HashMap
keyĐây là câu hỏi yêu thích của tôi.
final keyword được sử dụng trong một số ngữ cảnh để xác định một thực thể chỉ có thể được gán một lần.
The Java finally
block là một khối được sử dụng để thực thi mã quan trọng, chẳng hạn như đóng kết nối, luồng, vv The Java finally
block luôn được thực thi, cho dù là có ngoại lệ hay không.
Đây là một method mà GarbageCollector
luôn gọi ngay trước khi xóa / hủy object, nó đủ điều kiện để Garbage Collection thực hiện hoạt động dọn dẹp.
Vấn đề Diamond Problem phản ánh tại sao chúng ta không được phép làm nhiều inheritance trong Java. Nếu hai class có cùng một superclass được chia sẻ với một phương thức cụ thể, nó sẽ ghi đè lên cả hai lớp con. Sau đó, nếu bạn quyết định kế thừa từ hai subClasses
đó, thì ngôn ngữ đó không thể quyết định cái nào bạn muốn gọi.
Chúng tôi gọi vấn đề này là Diamond Problem. Nó được đặt tên từ hình trên.
Tôi nghĩ đây là một câu hỏi khá khó. Bạn cần phải thực hiện một số sửa đổi trên class của mình để đạt được tính không thay đổi:
Một singleton là một class chỉ cho phép một instance riêng của nó được tạo ra và cho phép truy cập vào instance được tạo ra đó. Nó chứa các static variable có thể chứa các instance duy nhất và riêng tư của chính nó. Nó được sử dụng trong các trường hợp khi người dùng muốn hạn chế sự instantiation (khởi tạo) của một class với chỉ một object. Điều này là hữu ích khi một object duy nhất được yêu cầu để phối hợp các hành động trên một hệ thống.
Đây là câu hỏi quan trọng nhất mà bạn phải biết nếu làm về Java EE hoặc Spring. Bạn có thể xem thêm tại bài viết khác của tôi: Dependency Injection là gì?
Nguồn: Sưu tầm từ internet via dzone