Logo

Top 101 các câu hỏi phỏng vấn Java thường gặp có đáp án

Lượt xem: 469
Ngày đăng: 14/03/2024

Tổng hợp các câu hỏi phỏng vấn Java thường gặp, câu hỏi phỏng vấn java core, lập trình java từ cơ bản đến nâng cao và gợi ý trả lời chuẩn nhất.

Top 101 các câu hỏi phỏng vấn Java thường gặp có đáp án

➤➤➤ Xem thêm: 1001 câu hỏi phỏng vấn thường gặp và cách trả lời hay nhất - Kinh nghiệm phỏng vấn ViecLamVui

Các câu hỏi phỏng vấn Java cơ bản

Sau đây là các câu hỏi phỏng vấn Java cơ bản kèm gợi ý câu trả lời chi tiết nhất.

Trình biên dịch JIT là gì?

Thuật ngữ "trình biên dịch" dùng để chỉ trình dịch từ tập lệnh của một máy ảo Java (JVM) tới tập lệnh của một CPU cụ thể, Trình biên dịch JIT (Just-In-Time) được sử dụng để tăng hiệu suất biên dịch chương trình, trình JIT biên dịch từng phần của byte code có chức năng giống nhau tại cùng một thời điểm, do đó sẽ giảm được thời gian biên dịch. 

Tính chất "viết một lần chạy nhiều nơi" của java là gì?

Java code được biên dịch thành một byte code, là ngôn ngữ trung gian giữa mã nguồn và mã máy. Byte code này không phải là nền tảng cụ thể và do đó có thể được thông dịch cho bất kỳ nền tảng nào.

JDK, JRE và JVM là gì?

JDK là viết tắt của Java Development Kit – Bộ công cụ phát triển Java. JDK là một bộ công cụ phát triển phần mềm được dùng để phát triển ứng dụng trong Java. 

JRE là viết tắt của Java Runtime Environment – Môi trường thực thi Java. JRE bao gồm JVM, thư viện và các thành phần bổ sung để chạy các ứng dụng viết bằng ngôn ngữ Java. 

JVM là viết tắt của Java Virtual Machine – Máy ảo Java. JVM là máy ảo được sử dụng để chạy các chương trình Java. Cách hoạt động của JVM: Khi chương trình Java được chạy, trình biên dịch sẽ dịch Java code thành bytecode và sau đó JVM sẽ thực hiện nhiệm vụ của mình: thông dịch bytecode thành mã máy cho máy tính thực hiện lệnh.

Thế nào là tính trừu tượng?

Tính trừu tượng là ẩn các chi tiết triển khai và chỉ hiển thị các tính năng với người dùng. Tính chất này cho phép loại bỏ các tính chất phức tạp của đối tượng, chỉ cần đưa ra các tính chất cần thiết trong lập trình giúp tập trung vào những cốt lõi của đối tượng. Nó được thể hiện thông qua interface và abstract class.

Thế nào là tính kế thừa?

Tính thừa kế là khả năng tái sử dụng lại thuộc tính và phương thức của một lớp. Thể hiện thông qua từ khóa extend.

Thế nào là static?

Những hàm, phương thức có từ khóa static sẽ thuộc về lớp có thể được truy cập trực tiếp từ Class mà không cần phải tạo đối tượng.

Từ khóa static trong Java là gì?

Static trong Java là từ khóa dùng để quản lý bộ nhớ và truy cập trực tiếp thông qua lớp khi không cần khởi tạo. 

Thế nào là final?

Những thuộc tính final sẽ không thể thay đổi giá trị của nó Những phương thức final sẽ không thể overide ở lớp con Những class final sẽ không thể kế thừa được.

Từ khóa final trong Java là gì?

Từ khóa final trong Java là từ khóa được dùng để hạn chế số lượng người dùng. Lập trình viên có thể sử dụng ở nhiều ngữ cảnh: phương thức, biến, lớp.

Từ khóa super trong Java

Super trong Java là một biến tham chiếu, dùng để tham chiếu đến đối tượng của lớp cha gần nhất một cách trực tiếp.

Thế nào là lập trình hướng đối tượng?

Lập trình hướng đối tượng là một phương pháp lập trình dựa trên khái niệm về lớp và đối tượng. Nó tập trung vào các đối tượng thao tác hơn là logic để thao tác chúng, giúp code dễ quản lý, tái sử dụng được và dễ bảo trì.

Thế nào là tính đa hình?

Tính đa hình là khi một hành động có thể được thực hiện theo nhiều cách khác nhau. Nó được thể hiện thông qua override và overload.

Thế nào là lớp?

Một class đại diện cho 1 loại đối tượng. Nó có thể được hiểu giống như 1 bản định nghĩa của đối tượng.

Các tính chất của hướng đối tượng là gì?

Lập trình hướng đối tượng bao gồm 4 tính chất:

  • Tính đóng gói
  • Tính kế thừa
  • Tính trừu tượng
  • Tính đa hình

Classloader trong java là gì?

Classloader là một hệ thống con của JVM được sử dụng để tải các lớp và các interface. Có rất nhiều loại Classloader ví dụ: Bootstrap classloader, Extension classloader, System classloader, Plugin classloader…

Câu hỏi phỏng vấn Java nâng cao

Sau đây là các câu hỏi phỏng vấn Java nâng cao kèm gợi ý trả lời khá chi tiết vô cùng hữu ích dành cho các lập trình viên Java.

Có mấy loại access modifier? Phân biệt sự khác nhau giữa chúng?

Có 4 loại access modifier là: private, protected, default, public. Trong đó:

  • Private: Chỉ có thể truy cập trong cùng class.
  • Default: Có thể truy cập trong cùng class và cùng package.
  • Protected: Có thể truy cập trong cùng class, package và ngoài package bởi lớp con.
  • Public: Có thể truy cập ở bất cứ đâu.

Platform là gì?

Bất cứ môi trường phần cứng hoặc phần mềm nào mà trong đó có một chương trình chạy, thì được hiểu như là một Platform. Với môi trường runtime riêng cho mình (JRE) và API, Java được gọi là Platform.

Phân biệt override và overload?

Overide là việc lớp con ghi đè phương thức của lớp cha. Overload là việc một class sử dụng được cùng một phương thức nhưng khác nhau biến truyền vào hàm.

Constructors trong Java là gì?

Constructors (Hàm ảo) trong Java là một phương thức được sử dụng để khởi tạo, trả về các đối tượng của lớp. Thông thường, một Constructors sẽ trùng tên với lớp mà nó được định nghĩa. 

Tại sao không sử dụng con trỏ trong Java?

Con trỏ không được sử dụng trong Java vì con trỏ khá phức tạp và không an toàn. 

Package trong Java là gì? Liệt kê những ưu điểm của các package

Package trong Java là một nhóm các lớp (class), giao diện (interface) và các package con tương tự. Package thường được chia thành 2 loại:

  • Package được dựng sẵn
  • Package do người dùng định nghĩa

Ưu điểm của các package:

  • Tổ chức file (class, interface) theo một hệ thống để dễ dàng phân loại file.
  • Phân quyền truy cập giúp xem các class thuộc package nào khi được gọi ở phần access modifier.
  • Dễ dàng chọn lọc khi import. Dùng lệnh import java.sql khi import tất cả các class. Dùng lệnh import.util.regex khi sử dụng class nằm trong package regex.

Các loại phạm vi truy cập trong Java là gì?

Có 4 phạm vi truy cập trong Java là public, private, default và protected. 

  • Public: Có thể truy cập mọi lúc mọi nơi
  • Private: Chỉ có thể truy cập bên trong lớp
  • Default: Có thể truy cập từ trong lớp khai báo, các lớp cùng một gói với lớp khai báo
  • Protected: Có thể truy cập trong lớp khai báo, các lớp con của lớp khai báo, các lớp cùng một gói với lớp khai báo

Constructor là gì?

Constructor trong java là một dạng đặc biệt của phương thức được sử dụng để khởi tạo các đối tượng.

Java Constructor được gọi tại thời điểm tạo đối tượng. Nó khởi tạo các giá trị để cung cấp dữ liệu cho các đối tượng, đó là lý do tại sao nó được gọi là constructor.

Trình biên dịch JIT trong Java là gì?

Trình biên dịch JIT trong Java hay còn được biết đến với tên gọi Just-In-Time – là một kỹ thuật biên dịch các phần mã byte có các chức năng tương tự trong cùng một thời gian, qua đó giảm thời gian biên dịch cần thiết.

Sự khác biệt giữa mảng và ArrayList là gì?

  • Array (Mảng) là cấu trúc dữ liệu có kích thước cố định.
  • ArrayList là lớp collection có thể thay đổi kích thước.

Sự khác biệt giữa từ khóa break và continue

  • Từ khóa break dùng để thoát ra khỏi vòng lặp ngay lập tức và chuyển sang câu lệnh tiếp theo, ở ngoài vòng lặp vừa kết thúc.
  • Từ khóa continue được dùng để chỉ việc vòng lặp kế tiếp sẽ được thực hiện. 

Tính đa hình là gì?

Polymorphism – Tính đa hình. Các đối tượng được thiết kế để chia sẻ các hành vi và chúng có thể có nhiều dạng. Chương trình sẽ xác định ý nghĩa hoặc cách sử dụng nào là cần thiết cho mỗi lần thực thi đối tượng đó từ lớp cha, giúp 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.

Sự khác nhau giữa phương thức static và phương thức instance?

Phương thức static Phương thức instance
1. Một phương thức được khai báo với từ khóa static được gọi là phương thức static. Một phương thức không được khai báo với từ khóa static được gọi là phương thức instance.
2. Không cần tạo đối tượng cũng gọi được phương thức static thông qua class. Phải tạo đối tượng để gọi phương thức instance.
3. Biến non-static không được truy cập trực tiếp trong phương thức static (hoặc khối static). Biến static và non-static được truy cập trực tiếp trong phương thức instance.
4. Ví dụ: public static int cube(int n){ return n*n*n;} Ví dụ: public void msg(){...}.

Tại sao không thể ghi đè phương thức static?

Bởi vì phương thức static là một phần của lớp và nó bị ràng buộc với lớp, trong khi phương thức instance là bị ràng buộc với đối tượng, static được lưu trong vùng nhớ Class và instance được lưu trong bộ nhớ heap.

Khác biệt giữa constructor và phương thức trong Java

Constructor Phương thức
Được sử dụng để khởi tạo trạng thái của đối tượng. Được sử dụng để thể hiện hành động của đối tượng.
Không có kiểu trả về. Có kiểu trả về
Construction được gọi ngầm Phương thức được gọi tường minh.
JIT tạo ra constructor mặc định nếu bạn không có constructor nào. Phương thức không được tạo ra bởi JIT.
Tên của constructor phải giống tên lớp. Tên phương thức có thể giống hoặc khác tên lớp.

Collection trong Java là gì, liệt kê các interface và class của nó

  • Collection trong Java là khuôn khổ cung cấp kiến trúc lưu trữ và thao tác tới nhóm đối tượng. Bạn có thể thực hiện tất cả các hoạt động như tìm kiếm, chèn, phân loại,...trên một dữ liệu nhờ Java Collection. 
  • Các interface của Java Collection: Set, List, Queue, Deque,...
  • Các class của Java Collection: ArrayList, Vector, LinkedList, HashSet, PriorityQueue,...

1001 CÂU HỎI PHỎNG VẤN

Tổng hợp các câu hỏi phỏng vấn Java thường gặp, câu hỏi phỏng vấn java core, lập trình java từ cơ bản đến nâng cao và gợi ý trả lời chuẩn nhất.

Trên đây là 101 câu hỏi phỏng vấn Java thường gặp và gợi ý trả lời ViecLamVui - chuyên trang tìm việc làm miễn phí - gửi đến bạn. Hy vọng tài liệu trên có thể hỗ trợ các bạn thật hiệu quả.

#CauHoiPhongVanJava #ViecLamVui

Bạn có thể đăng tin tuyển dụng miễn phí, tìm việc làm miễn phí các vị trí công việcViệc Làm IT. Bài viết thuộc danh mụcBlog Việc Làm IT trên ViecLamVui