Bộ câu hỏi phỏng vấn Java thường gặp nhất là những câu hỏi nào? Nếu bạn đang chuẩn bị phỏng vấn xin việc cho các vị trí java core, java oop, java developer, lập trình viên fresher java,... mà còn đang băn khoăn lo lắng thì bài viết này dành cho bạn. Đọc ngay bài viết của Tanca dưới đây nhé.
Bộ câu hỏi phỏng vấn Java 2023 và cách trả lời
Dưới đây là tập hợp những câu hỏi phỏng vấn java được nhiều nhà tuyển dụng sử dụng nhất, bạn có thể tham khảo từ đó thêm tự tin hơn trong các cuộc phỏng vấn sắp tới nhé.
Sự khác nhau giữa JDK, JRE và JVM trong ngôn ngữ lập trình là gì?
JVM
JVM (viết tắt của Java Virtual Machine) là một thiết bị trừu tượng (ảo) có thể giúp máy tính chạy các chương trình Java. Nó cung cấp một môi trường thời gian chạy nơi Java Bytecode có thể được thực thi.
JRE
JRE (Java Runtime Environment) được dùng để cung cấp 1 môi trường thời gian chạy. Nó là một triển khai JVM. JRE bao gồm một tập hợp các thư viện và các tệp khác được JVM sử dụng khi chạy.
Việc triển khai JVM cũng được xuất bản bởi các công ty khác ngoài Sun Micro Systems.
JDK
JDK (viết tắt của Java Development Kit) chứa JRE và Development Tool.
Xem thêm: Bộ câu hỏi phỏng vấn Android
Giải thích phương thức main() trong chương trình Java
Phương thức main() trong chương trình Java là điểm thực hiện chương trình hoặc điểm vào khi thực hiện một quy trình trong chương trình Java. Phương thức chính này sẽ kết thúc khi chương trình kết thúc, đây là điều kiện để các phương thức khác thực thi.
Xem thêm: Bộ câu hỏi phỏng vấn PHP
Câu hỏi phỏng vấn Java intern: Lập trình hướng đối tượng là gì?
Lập trình hướng đối tượng (OOP) là 1 phương pháp lập trình máy tính được tổ chức thiết kế phần mềm xoay quanh dữ liệu hoặc đối tượng để thao tác hơn chức năng và logic để thao tác với chúng.
Câu hỏi phỏng vấn Junior Java: Các nguyên lý cơ bản lập trình hướng đối tượng
Encapsulation:
Nguyên tắc này nói rằng tất cả thông tin quan trọng được chứa trong đối tượng và chỉ thông tin được chọn mới được hiển thị. Việc triển khai và trạng thái của từng đối tượng là riêng tư trong lớp được chỉ định.
Các đối tượng khác không có quyền truy cập vào lớp này hoặc quyền thực hiện thay đổi. Họ chỉ có thể gọi một danh sách các hàm hoặc phương thức công khai. Tính năng ẩn dữ liệu này giúp bảo mật chương trình tốt hơn và tránh làm hỏng dữ liệu ngoài ý muốn.
Abstraction – Tính trừu tượng:
Các đối tượng chỉ tiết lộ các cơ chế bên trong liên quan đến việc sử dụng các đối tượng khác, ẩn mã triển khai dư thừa. Một lớp dẫn xuất có thể mở rộng chức năng của nó.
Khái niệm này có thể giúp các nhà phát triển dễ dàng thực hiện các thay đổi hoặc bổ sung bổ sung theo thời gian.
Kế thừa – Inheritance:
Các lớp có thể sử dụng lại mã từ các lớp khác. Các mối quan hệ và các lớp con có thể được chỉ định giữa các đối tượng, cho phép các nhà phát triển sử dụng lại logic chung trong khi vẫn duy trì 1 hệ thống duy nhất.
Thuộc tính OOP này buộc phải phân tích dữ liệu kỹ lưỡng hơn, giảm thời gian phát triển và cung cấp mức độ chính xác cao hơn.
Đa hình - Polymorphism:
Các đối tượng được thiết kế để chia sẻ những hành vi và có thể gồm nhiều dạng. Chương trình xác định ý nghĩa hoặc cách sử dụng cần thiết cho mỗi lần thực thi đối tượng đó từ lớp cha, giảm nhu cầu sao chép mã.
Sau đó, một lớp con được tạo ra để mở rộng chức năng của lớp cha. Tính đa hình cho phép các loại đối tượng khác nhau đi qua cùng một giao diện.
Xem thêm: Bộ câu hỏi phỏng vấn Javascript
Java không phải hướng đối tượng 100% là vì sao?
Java không hoàn toàn là một ngôn ngữ hướng đối tượng vì Java cũng sử dụng các kiểu dữ liệu khác như byte, char, float,...
Tại sao Java lại độc lập nền tảng?
Java độc lập với nền tảng là do nó sử dụng JVM, một Máy ảo cung cấp cách thực thi mã Java độc lập với nền tảng.
Câu hỏi phỏng vấn Java Spring: Spring có bao nhiêu mô-đun khác nhau?
Spring có khoảng 20 mô-đun và đây là thông tin rất quan trọng cần biết trong các câu hỏi phỏng vấn Spring Java. Tất cả đều được chia thành các thùng chứa (container) riêng biệt.
Các vùng chứa như: vùng chứa gốc, vùng chứa web, vùng chứa truy cập dữ liệu, vùng chứa khía cạnh và thiết bị cũng như vùng chứa thử nghiệm. Ngoài ra còn có một số container nhỏ hơn.
Constructors trong Java là gì?
Constructors (Hàm ảo) trong Java là dùng để khởi tạo và trả về các đối tượng của một lớp. Thông thường, các hàm tạo sẽ có cùng tên với lớp mà chúng được định nghĩa.
Các lớp wrapper trong Java là gì?
Lớp wrapper trong Java là lớp đóng gói các kiểu bằng cách cung cấp cơ chế chuyển đổi dữ liệu nguyên thủy thành kiểu đối tượng và ngược lại.
Tại sao không nên dùng con trỏ trong Java?
Đây là một trong các câu hỏi phỏng vấn Java Core được nhà tuyển dụng sử dụng nhiều nhất. Đơn giản chỉ vì con trỏ khá phức tạp và nguy hiểm.
Câu hỏi phỏng vấn Java Fresher: Bạn biết gì về trình biên dịch JIT trong Java
Trình biên dịch Java JIT, còn được gọi là Just-In-Time - là một kỹ thuật để biên dịch các mã byte có chức năng tương tự cùng một lúc, do đó thời gian được rút ngắn.
Nêu định nghĩa một class
Class đại diện cho các thuộc tính và phương thức chung dành cho những đối tượng class. Class trong Java là một kiểu dữ liệu được tạo bởi lập trình viên.
Hãy nêu sự khác biệt giữa biến local và biến instance
Biến local:
- Được khai báo trong một hàm tạo, trong một khối hoặc trong các phương thức.
- Được tạo trong các phương thức, hàm tạo và khối. Bị hủy ở cuối phương thức, hàm tạo và khối.
- Được lưu trữ trên stack
- Không sử dụng công cụ sửa đổi truy cập khi khai báo
- Phải được khởi tạo mặc định trước khi sử dụng
Biến instance:
- Được khai báo trong một lớp, ngoài một phương thức, hàm tạo và khối
- Được lưu trữ trong bộ nhớ heap
- Được tạo khi một đối tượng được tạo bằng nút "mới" và bị hủy khi đối tượng bị hủy
- Được sử dụng bởi một phương thức, hàm tạo, khối, nhưng phải được sử dụng bởi một đối tượng cụ thể
- Nó có thể được gọi trực tiếp bằng tên khi được sử dụng trong lớp
Có thể tạo constructor final không?
Không, constructor không thể là final.
Từ khóa final trong Java là gì?
Từ khóa final trong Java là từ khóa dùng giới hạn số lượng người sử dụng. Người lập trình có thể dùng trong nhiều ngữ cảnh: phương thức, biến, lớp.
Từ khóa static trong Java là gì?
Static trong Java là một từ khóa được sử dụng để quản lý và truy cập bộ nhớ trực tiếp bởi một lớp khi không cần khởi tạo.
Các câu hỏi phỏng vấn Java Spring Boot: RAD model là gì?
Quá trình RAD hay Rapid Application Development là ứng dụng của mô hình thác nước (waterfall model); nhằm mục đích phát triển phần mềm trong thời gian ngắn.
Mô hình SDLC RAD bao gồm các bước sau:
- Business Modeling
- Data Modeling
- Process Modeling
- Application Generation
- Testing and Turnover
100 câu hỏi phỏng vấn Java khác
Khác biệt giữa equals() và == trong Java
Equals() là phương thức so sánh hai đối tượng, nhưng chỉ so sánh giá trị của chúng. So sánh bằng() true trả về true, false trả về false.
== là so sánh hai đối tượng trỏ đến cùng một vị trí bộ nhớ. Trong phép toán == true trả về true, false trả về false.
Khác biệt giữa bộ nhớ Stack và Heap
Về kích thước của vùng bộ nhớ
- Bộ nhớ Stack: có kích thước cố định tùy theo hệ điều hành
- Bộ nhớ heap: có kích thước cố định, có thể tăng giảm theo nhu cầu
Về đặc điểm của vùng ký ức
- Bộ nhớ Stack: Bộ nhớ do hệ điều hành quản lý, dữ liệu được lưu trữ sẽ tự động hủy sau khi chức năng hoàn thành nhiệm vụ.
- Bộ nhớ heap: Bộ nhớ được quản lý bởi lập trình viên và dữ liệu sẽ không bị hủy sau khi chức năng được thực thi và lập trình viên phải hủy bộ nhớ.
Lỗi trong vùng nhớ
- Bộ nhớ Stack: có khả năng vượt quá dung lượng bộ nhớ vì dung lượng bộ nhớ ngăn xếp bị hạn chế.
- Bộ nhớ heap: Cũng có khả năng bị tràn bộ nhớ nếu bạn liên tục cấp phát bộ nhớ mà không thường xuyên giải phóng bộ nhớ.
Các loại phạm vi truy cập Java
Có bốn phạm vi truy cập trong Java: public, private, default và protected.
- Public: có sẵn mọi lúc, mọi nơi
- Private: Chỉ khả dụng trong lớp học
- Default: Có thể truy cập từ lớp khai báo, các lớp trong cùng gói với lớp khai báo
- Protected: có trong lớp khai báo, các lớp con của lớp khai báo, các lớp cùng gói với lớp khai báo
Thế nào là final?
Final là những thuộc tính mà giá trị của chúng không thể thay đổi được. Các phương thức cuối cùng không thể bị ghi đè trong các lớp con và các lớp cuối cùng không thể kế thừa.
Phương thức instance | Phương thức static |
Một phương thức không được khai báo với từ khóa tĩnh được gọi là một phương thức instance. | Một phương thức được khai báo với từ khóa static được gọi là một phương thức tĩnh. |
Để gọi một phương thức thể hiện, bạn phải tạo một đối tượng. | Không cần tạo đối tượng, bạn cũng có thể gọi một phương thức tĩnh thông qua class. |
Các biến static và không tĩnh có sẵn trực tiếp trong phương thức thể hiện. | Các biến không tĩnh không thể được truy cập trực tiếp trong các phương thức tĩnh (hoặc khối static). |
Ví dụ: public void msg(){...}. | Ví dụ: public static int cube(int n){ return n*n*n;} |
Có bắt buộc phải khai báo constructor trong class?
Không bắt buộc phải khai báo một hàm tạo trong một lớp. Nếu không được khai báo, lớp sẽ sử dụng hàm tạo mặc định.
Kết luận
Trên đây là bộ câu hỏi phỏng vấn Java hay nhất mà chúng tôi đã giúp bạn tổng hợp. Hy vọng với những kiến thức này có thể giúp bạn thêm tự tin hơn trong buổi phỏng vấn sắp tới. Cảm ơn bạn đã dành thời gian đọc bài viết của Tanca.