Những câu hỏi phỏng vấn java là một trong những từ khóa được tìm kiếm nhiều nhất trên google về chủ đề
những câu hỏi phỏng vấn java. Trong bài viết này, coder.com.vn sẽ viết bài Top những câu hỏi phỏng vấn java thường gặp nhất 2020
1. Trên thang điểm 10 – Bạn bình chọn mình được bao nhiêu điểm?
Đây là một điều cực kì khó nếu như bạn không hứa hẹn chắn về bản thân hoặc năng lực thông thạo của bạn tại Java. Hãy hạ thấp số điểm của bạn xuống một tí. Sau này, bạn có thể sẽ thu được câu hỏi theo cấp độ bạn tự đánh giá. do đó, bạn sẽ làm giảm được các câu hỏi quá khó mà cực kì có khả năng sẽ chẳng thể trả lời được.
3. Liệt kê 5. đặc điểm bất kỳ của Java?
Một vài đặc điểm của Java là Hướng đối tượng mục tiêu, Độc lập nền tảng, Thông dịch, Đa luồng (Multi-thread), Robust (mạnh mẽ), Portable (khả chuyển).
Xem thêm: Stored Procedure là gì? Cách viết và sử dụng Stored Procedures hiện nay?
4 Object Class có những Method nào?
Đây là một câu hỏi cực kì phổ biến được đòi hỏi để lựa chọn mức độ tóm vững của bạn với những khái niệm cơ bản. đây chính là các 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 tại 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 dùng hoặc kế thừa những instance method của Object
. Bạn vốn không nhất thiết dùng bất cứ giải pháp nào tại 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. những phương thức được kế thừa từ Object
.được Bàn bạc tại phần này là:
protected Object clone() throws CloneNotSupportedException
tạo và trả về một bản sao của object này.public boolean equals(Object obj)
Cho biết một vài object khác có “bằng” với object này nữa khôngprotected void finalize() throws Throwable
Được gọi bởi garbage collector trên một object khi garbagecollection
lựa chọn rằng không hề có thêm reference đến object.
public final Class getClass()
Returns the runtime class của 1 object.public int hashCode()
Return một giá trị hash code value cho objectpublic String toString()
Return một chuỗi biểu hiện của object.
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 tại 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)
5. Vì sao String Object không thể thay đổi (Immutable) trong Java?
- String pool là có khả năng bởi vì String là bình ổn trong Java. bằng việc này, Java Runtime tiết kiệm cực kì nhiều chỗ trống trong Java heap space, bởi vì những String variable không giống nhau có thể tham chiếu đến cùng một biến String variable trong string pool. nếu String không phải là bình ổn, thì việc hành động chuỗi sẽ không diễn ra được, bởi vì nếu như bất cứ variable nào thay đổi giá trị, nó sẽ cũng gây tác động lên những variable khác.
- Nếu String không phải là bình ổn, thì nó sẽ dẫn tới một mối đe dọa bảo mật nghiêm trọng cho ứng dụng. chẳng hạn như, tên người dùng và mật khẩu cơ sở dữ liệu được chuyển thành String để sở hữu kết nối cơ sở dữ liệu, máy chủ lập trình tại socket và những chi tiết của portal được chuyển thành String. Vì Chuỗi chẳng thể thay đổi nên không thể thay đổi các giá trị này. nếu không, bất kỳ tin tặc nào cũng có khả năng thay đổi giá trị được tham chiếu để dẫn đến các vấn đề bảo mật trong áp dụng.
- Vì String là ổn định, nó cũng an toàn cho multithreading, , một cá thể String đơn có thể được share qua các thread khác nhau. việc làm này giúp làm giảm việc dùng đồng bộ hóa cho thread safety.
- những chuỗi được dùng trong Java classloader, và tính bình ổn cam kết rằng class đúng sẽ được load bởi
Classloader
.. - Vì String là bình ổn, nên hashcode của nó được lưu vào bộ nhớ cache tại thời điểm tạo và không nhất thiết phải tính lại. việc làm này làm cho nó trở thành một ứng cử viên tuyệt vời để làm key tại map, , các bước xử lý của nó cũng nhanh hơn các
HashMap
key object khác. đây chính là lý do tại sao String là object được dùng nhiều nhất của cácHashMap
key
6 Sự khác nhau giữa Final, Finally, , Finalize là gì?
Đây là câu hỏi ham muốn của tôi.
final từ khóa được dùng trong một số ngữ cảnh để chọn lựa một thực thể chỉ có khả năng đượ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, ví dụ đóng liên kết chặt chẽ, 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 khiếu nại để Garbage Collection thực hiện hoạt động dọn dẹp.
7. Vấn đề Diamond Problem là gì?
Vấn đề Diamond Problem phản ánh vì sao chúng ta không được phép làm nhiều inheritance trong Java. nếu như hai class có cùng một superclass được chia sẻ với một phương thức chi tiết, nó sẽ ghi đè lên cả hai lớp con. Sau đó, nếu bạn quyết định kế thừa từ hai subClasses
đấy, thì ngôn ngữ đấy không thể quyết định cái nào bạn mong 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.
8. Làm thế nào bạn có thể giúp cho một class chẳng thể thay đổi?
Tôi nghĩ đây chính 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 cho được tính không thay đổi:
- Khai báo lớp học là final để chẳng thể mở rộng rãi.
- Đặt tổng cộng các trường ở chế độ riêng tư để không cho phép truy xuất trực tiếp.
- Không cung cấp phương thức setter cho biến
- Đặt tất cả những trường có khả năng điều chỉnh final để giá trị của nó chỉ có khả năng được gán một lần.
- Khởi tạo tất cả những trường thông qua một hàm constructor.
- hành động clone các object tại những phương thức getter để trả về một bản sao thay vì trả về object reference.
9 Singleton có nghĩa là gì?
Một singleton là một class chỉ cho phép một instance riêng của nó được sản sinh ra và cho phép truy xuất vào instance được tạo ra đó. Nó chứa những static variable có khả năng chứa các instance duy nhất và riêng tư của chính nó. Nó được sử dụng tại các trường hợp khi người dùng muốn làm giảm sự instantiation (khởi tạo) của một class với chỉ một object. điều này là có ích khi một object duy nhất được yêu cầu để phối hợp các thực hiện trên một hệ thống.
Xem thêm: SQL Injection là gì? Hướng dẫn cách kiểm tra SQL Injection mới nhất 2020
10. Dependency Injection là gì?
Đây chính 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ó khả năng xem thêm trong bài viết khác của tôi: Dependency Injection là gì?
Nguồn: https://techtalk.vn/