kinh nghiệm phỏng vấn java là một trong những keyword được search nhiều nhất trên google về chủ đề kinh nghiệm phỏng vấn java Trong bài viết này blogvieclam.vn sẽ viết bài Tổng hợp kinh nghiệm phỏng vấn java mới nhất 2020.
Tổng hợp kinh nghiệm phỏng vấn java mới nhất 2020.
1. Trên thang điểm 10 – Bạn nghiên cứu mình được bao nhiêu điểm?
Đây là một điều rất khó nếu bạn k 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 đủ sức sẽ nhận được câu hỏi theo cấp độ bạn tự phân tích. cho nên, bạn sẽ tránh được những câu hỏi quá khó mà rất đủ nội lực sẽ k thể trả lời được.
Những việc sử dụng hấp dẫn
- Freelance/Remote Developer (PHP, Java, JavaScript, C#)TopDev’s ClientHo Chi Minh, Ha NoiNegotiable
PHPJavaJavaScriptC#
- Senior/Intermediate Java Developer (CSS, HTML5, JavaScript, MySQL, JQuery)Code Engine StudioDa NangUp to $2,000
CSSHTML5JavaJavaScriptMySQL
- Java Developer/Application Management hỗ trợ (J2EE, JavaScript)QR Retail tự động hóaHo Chi Minh$500 – $1,500
J2EEJavaJavaScript
2. Bạn biết về những loại Collection nào?
Ở đây bạn nên biết về những cái cần thiết nhất:
- ArrayList
- LinkedList
- HashMap
- HashSet
Hãy nghiên cứ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
3. Liệt kê 5 đặc điểm bất kỳ của Java?
Một số đặc điểm của Java là Hướng phân khúc, Độc lập nền móng, Thông dịch, Đa luồng (Multi-thread), Robust (mạnh mẽ), Portable (khả chuyển).
4. Object Class có những Method nào?
Đây là một câu hỏi rất thông dụng được yêu cầu để định hình cấp độ 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 hầu 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 k cần dùng bất kỳ công thức nào trong số này, nhưng nếu bạn lựa 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 công thức được kế thừa từ Object
.được trao đổi trong 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)
lý giải một số object không giống có “bằng” với object này hay khôngprotected void finalize() throws Throwable
Được gọi bởi garbage collector trên một object khi garbagecollection
dựng lại rằng k có thêm reference đến object.
public final Class getClass()
Returns the runtime class của 1 object.public int hashCode()
Return một trị giá hash code value cho objectpublic 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 làm 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)
5. tại sao String Object không thể thay đổi (Immutable) trong Java?
- String pool là có thể bởi vì String là bất biến trong Java. Bằng hướng dẫn này, Java Runtime tiết kiệm rất nhiều khoảng trống trong Java heap space, bởi vì các String variable khác nhau đủ nội lực tham chiếu đến cùng một biến String variable trong string pool. Nếu String chẳng phải là bất biến, thì việc thực hiện chuỗi sẽ k diễn ra được, bởi vì nếu bất kỳ variable nào refresh giá trị, nó sẽ cũng gây ảnh hưởng lên các variable không giống.
- Nếu String chẳng phải là bất biến, thì nó sẽ gây ra một mối đe dọa bảo mật nghiêm trọng cho vận dụng. ví dụ, tên user và mật khẩu cơ sở dữ liệu được chuyển thành String để có được gắn kết cơ sở dữ liệu, máy chủ lập trình trong socket và các chi tiết của portal được chuyển thành String. Vì Chuỗi k thể refresh nên k thể refresh các giá trị này. Nếu k, bất kỳ tin tặc nào cũng có thể thay đổi giá trị được tham chiếu để gây ra các vấn đề bảo mật trong vận dụng.
- Vì String là bất biến, nó cũng an toàn cho multithreading, và một cá thể String đơn đủ nội lực được share qua các thread khác nhau. Điều này giúp tránh việc dùng đồng bộ hóa cho thread safety.
- Các chuỗi được dùng trong Java classloader, và tính bất biến bảo đảm rằng class đúng sẽ được load bởi
Classloader
.. - Vì String là bất biế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 cần phải tính lại. Điều này sử dụng cho nó trở thành một ứng cử viên háo hức để sử dụng key trong map, và quá trình giải quyết của nó cũng nhanh hơn các
HashMap
key object không giống. Đây 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 biệt giữa Final, Finally, và Finalize là gì?
Đây là câu hỏi yêu like của tôi.
final keyword được sử dụng trong một số ngữ cảnh để định hình một thực thể chỉ đủ sức được gán một lần.
The Java finally
block là một khối được sử dụng để thực thi mã cần thiết, chẳng hạn giống 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.
7. vấn đề Diamond Problem là gì?
chủ đề Diamond Problem phản ánh tại sao chúng ta không được phép sử dụng nhiều inheritance trong Java. Nếu hai class có cùng một superclass được share với một cô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 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 sao để bạn đủ sức sử dụng cho một class không thể thay đổi?
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 k thay đổi:
- Khai báo lớp học là final để không thể mở rộng.
- Đặt toàn bộ các trường ở chế độ riêng tư để không cho phép truy cập trực tiếp.
- không phân phối phương pháp setter cho biến
- Đặt all các trường có thể refresh final để trị giá của nó chỉ đủ sức được gán một lần.
- Khởi tạo all các trường thông qua một hàm constructor.
- Thực hiện clone các object trong các cô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 tạo ra và cho phép truy cập vào instance được xây dựng đó. Nó chứa các static variable đủ sức 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 user muốn giới hạn 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 nền móng.
10. Dependency Injection là gì?
Đây là câu hỏi cần thiết nhất mà bạn phải biết nếu làm về Java EE hoặc Spring. Bạn đủ nội lực xem thêm tại post khác của tôi: Dependency Injection là gì?
nguồn: https://techtalk.vn/