Skip to content
Phần mềm trọn đời

Blog Cá Nhân | Kiến Thức Công Nghệ | Thủ Thuật

  • Trang chủ
    • Về chúng tôi
    • Bản quyền & Khiếu nại
    • Miễn trừ trách nhiệm
    • Quy định sử dụng
  • Kiến thức
  • Windows
  • Office
  • Game
  • Thủ thuật công nghệ
  • Hình ảnh
  • Trắc nghiệm
    • Đáp án Quiz
    • Phát triển Phần mềm và Dữ liệu Quiz
    • Hạ tầng Mạng và Quản trị Hệ thống Quiz
  • Liên hệ
  • Sitemap
  • Or check our Popular Categories...
    01680168 đổi thành đầu số gì0x0 0x01 vạn bằng bao nhiêu km1 vạn là bao nhiêu100% Full disk14/414/4 là ngày gì14/4 là ngày gì ai tặng quà cho ai
  • Trang chủ
    • Về chúng tôi
    • Bản quyền & Khiếu nại
    • Miễn trừ trách nhiệm
    • Quy định sử dụng
  • Kiến thức
  • Windows
  • Office
  • Game
  • Thủ thuật công nghệ
  • Hình ảnh
  • Trắc nghiệm
    • Đáp án Quiz
    • Phát triển Phần mềm và Dữ liệu Quiz
    • Hạ tầng Mạng và Quản trị Hệ thống Quiz
  • Liên hệ
  • Sitemap
Phần mềm trọn đời

Blog Cá Nhân | Kiến Thức Công Nghệ | Thủ Thuật

  • Or check our Popular Categories...
    01680168 đổi thành đầu số gì0x0 0x01 vạn bằng bao nhiêu km1 vạn là bao nhiêu100% Full disk14/414/4 là ngày gì14/4 là ngày gì ai tặng quà cho ai
Trang chủ » Trắc nghiệm online » Phát triển Phần mềm và Dữ liệu Quiz » 200+ câu hỏi trắc nghiệm Lập trình java (Có đáp án)

Phát triển Phần mềm và Dữ liệu Quiz

200+ câu hỏi trắc nghiệm Lập trình java (Có đáp án)

Ngày cập nhật: 12/07/2025

⚠️ Vui lòng đọc kỹ phần lưu ý và tuyên bố miễn trừ trách nhiệm trước khi bắt đầu: Bộ câu hỏi và đáp án trong bài trắc nghiệm này chỉ mang tính chất tham khảo, nhằm hỗ trợ quá trình học tập và ôn luyện. Đây KHÔNG PHẢI là đề thi chính thức và không đại diện cho bất kỳ tài liệu chuẩn hóa hay kỳ thi cấp chứng chỉ nào từ các cơ quan giáo dục hoặc tổ chức cấp chứng chỉ chuyên ngành. Website không chịu trách nhiệm về tính chính xác của nội dung cũng như bất kỳ quyết định nào được đưa ra dựa trên kết quả từ bài trắc nghiệm.

Khởi động hành trình khám phá cùng với bộ 200+ câu hỏi trắc nghiệm Lập trình java (Có đáp án). Bộ câu hỏi này được xây dựng để hỗ trợ bạn luyện tập kiến thức một cách chủ động và hiệu quả. Hãy lựa chọn một bộ trắc nghiệm bên dưới để bắt đầu quá trình luyện tập. Chúc bạn ôn tập hiệu quả và tiếp thu được nhiều kiến thức bổ ích!.

1. Trong Java, từ khóa ‘final’ có thể được sử dụng để chỉ định điều gì?

A. Một biến là hằng số, một phương thức không thể bị ghi đè, hoặc một lớp không thể bị kế thừa.
B. Một biến là hằng số, một phương thức chỉ có thể được gọi bởi lớp con, hoặc một lớp không thể bị ghi đè.
C. Một biến là hằng số, một phương thức không thể được truy cập từ bên ngoài lớp, hoặc một lớp không thể kế thừa từ lớp khác.
D. Một biến là hằng số, một phương thức không thể bị ghi đè, hoặc một lớp không thể kế thừa các lớp khác.

2. Đâu là một ví dụ về ‘Unchecked Exception’ trong Java?

A. NullPointerException
B. IOException
C. FileNotFoundException
D. ClassNotFoundException

3. Trong Java, ‘Autoboxing’ và ‘Unboxing’ có nghĩa là gì?

A. Autoboxing là tự động chuyển đổi kiểu nguyên thủy thành đối tượng Wrapper, Unboxing là tự động chuyển đổi đối tượng Wrapper thành kiểu nguyên thủy.
B. Autoboxing là tự động chuyển đổi đối tượng Wrapper thành kiểu nguyên thủy, Unboxing là tự động chuyển đổi kiểu nguyên thủy thành đối tượng Wrapper.
C. Cả hai đều là các cơ chế để xử lý ngoại lệ.
D. Cả hai đều liên quan đến quản lý bộ nhớ.

4. Trong Java, từ khóa ‘volatile’ được sử dụng cho biến để làm gì?

A. Đảm bảo rằng mọi luồng đều đọc giá trị mới nhất của biến từ bộ nhớ chính, chứ không phải từ cache của CPU.
B. Ngăn chặn việc ghi đè lên biến.
C. Đảm bảo tính bất biến của biến.
D. Tăng tốc độ truy cập biến.

5. Trong Java, ‘Thread Synchronization’ (Đồng bộ hóa luồng) được sử dụng để làm gì?

A. Ngăn chặn nhiều luồng cùng truy cập và sửa đổi một tài nguyên dùng chung tại cùng một thời điểm, tránh xung đột dữ liệu.
B. Tăng số lượng luồng có thể chạy đồng thời.
C. Tự động tạo ra các luồng mới khi cần thiết.
D. Đảm bảo các luồng thực thi theo đúng thứ tự mà chúng được khởi tạo.

6. Trong Java, ‘Wrapper classes’ được sử dụng để làm gì?

A. Chuyển đổi giữa các kiểu dữ liệu nguyên thủy và các đối tượng tương ứng.
B. Tạo các lớp trừu tượng.
C. Đảm bảo tính bất biến của các đối tượng.
D. Quản lý đa luồng.

7. Trong Java, ‘Generics’ được giới thiệu để làm gì?

A. Cung cấp kiểu an toàn (type safety) tại thời điểm biên dịch và cho phép lập trình viên định nghĩa các kiểu dữ liệu tùy chỉnh mà không cần chỉ định kiểu cụ thể.
B. Tăng tốc độ thực thi của các vòng lặp.
C. Quản lý bộ nhớ tự động.
D. Xử lý đa luồng.

8. Phương thức ‘equals()’ của đối tượng String trong Java so sánh điều gì?

A. Chuỗi ký tự của hai đối tượng String.
B. Tham chiếu bộ nhớ của hai đối tượng String.
C. Độ dài của hai đối tượng String.
D. Tên của lớp mà đối tượng String thuộc về.

9. Đâu là sự khác biệt chính giữa ‘abstract class’ và ‘interface’ trong Java?

A. Abstract class có thể có các phương thức được triển khai và biến instance, trong khi interface chỉ có thể khai báo các phương thức trừu tượng và hằng số.
B. Interface có thể có các phương thức được triển khai và biến instance, trong khi abstract class chỉ có thể khai báo các phương thức trừu tượng.
C. Abstract class có thể kế thừa từ nhiều lớp, trong khi interface chỉ có thể kế thừa từ một interface.
D. Interface có thể sử dụng từ khóa ‘new’ để tạo đối tượng, trong khi abstract class thì không.

10. Đâu là cú pháp đúng để khai báo một phương thức tĩnh (static method) trong Java?

A. public static void myMethod()
B. static public void myMethod()
C. void public static myMethod()
D. public void static myMethod()

11. Trong Java, ‘Checked Exceptions’ là gì?

A. Các ngoại lệ mà trình biên dịch yêu cầu lập trình viên phải xử lý hoặc khai báo (throw).
B. Các ngoại lệ chỉ xảy ra trong quá trình thực thi và không cần xử lý.
C. Các ngoại lệ phát sinh do lỗi cú pháp trong mã.
D. Các ngoại lệ chỉ liên quan đến vấn đề bộ nhớ.

12. Đâu là một ví dụ về ‘Single Responsibility Principle’ (Nguyên tắc Trách nhiệm Đơn lẻ) trong thiết kế phần mềm?

A. Một lớp chỉ nên có một lý do để thay đổi.
B. Các lớp con nên có thể thay thế cho các lớp cha của chúng.
C. Các module nên mở cho việc mở rộng nhưng đóng cho việc sửa đổi.
D. Giảm sự phụ thuộc giữa các module.

13. Phương thức ‘length()’ của lớp String trong Java trả về giá trị gì?

A. Số lượng ký tự trong chuỗi.
B. Số lượng từ trong chuỗi.
C. Số lượng byte mà chuỗi chiếm dụng trong bộ nhớ.
D. Số lượng khoảng trắng trong chuỗi.

14. Điều gì xảy ra khi bạn gọi phương thức ‘notify()’ trên một đối tượng trong Java?

A. Một luồng đang chờ đợi trên đối tượng đó sẽ được đánh thức và có thể tiếp tục thực thi.
B. Tất cả các luồng đang chờ đợi trên đối tượng đó sẽ được đánh thức.
C. Luồng hiện tại sẽ bị dừng lại.
D. Đối tượng sẽ được giải phóng khỏi bộ nhớ.

15. Câu lệnh nào sau đây sẽ tạo ra một đối tượng mới của lớp ‘MyClass’ trong Java?

A. MyClass obj = new MyClass();
B. MyClass obj = new();
C. MyClass obj = MyClass.newInstance();
D. MyClass obj = MyClass;

16. Lớp ‘ArrayList’ trong Java có đặc điểm gì so với mảng thông thường?

A. ArrayList có thể thay đổi kích thước động, trong khi mảng có kích thước cố định.
B. ArrayList có kích thước cố định, trong khi mảng có thể thay đổi kích thước động.
C. ArrayList chỉ lưu trữ các kiểu dữ liệu nguyên thủy, trong khi mảng lưu trữ đối tượng.
D. ArrayList không cho phép truy cập phần tử bằng chỉ số, trong khi mảng thì có.

17. Lớp ‘HashMap’ trong Java có đặc điểm gì?

A. Lưu trữ các cặp key-value, với mỗi key là duy nhất, và không đảm bảo thứ tự.
B. Lưu trữ các cặp key-value, cho phép key trùng lặp, và đảm bảo thứ tự insertion.
C. Lưu trữ các cặp key-value, với mỗi key là duy nhất, và đảm bảo thứ tự alphabetical của key.
D. Lưu trữ các giá trị duy nhất, không theo thứ tự.

18. Trong Java, ‘Checked Exceptions’ thuộc về lớp nào?

A. Lớp ‘Exception’ nhưng không phải là ‘RuntimeException’.
B. Lớp ‘RuntimeException’.
C. Lớp ‘Error’.
D. Lớp ‘Throwable’.

19. Lớp ‘TreeMap’ trong Java có đặc điểm gì?

A. Lưu trữ các cặp key-value, với key duy nhất và được sắp xếp theo thứ tự của key.
B. Lưu trữ các cặp key-value, với key duy nhất và không đảm bảo thứ tự.
C. Lưu trữ các cặp key-value, cho phép key trùng lặp và được sắp xếp theo thứ tự của key.
D. Lưu trữ các giá trị duy nhất và được sắp xếp.

20. Lớp ‘LinkedList’ trong Java khác với ‘ArrayList’ ở điểm nào?

A. LinkedList hiệu quả hơn cho việc thêm/xóa phần tử ở giữa danh sách, trong khi ArrayList hiệu quả hơn cho truy cập ngẫu nhiên.
B. ArrayList hiệu quả hơn cho việc thêm/xóa phần tử ở giữa danh sách, trong khi LinkedList hiệu quả hơn cho truy cập ngẫu nhiên.
C. LinkedList lưu trữ các phần tử theo thứ tự, còn ArrayList thì không.
D. ArrayList chỉ lưu trữ các đối tượng, còn LinkedList chỉ lưu trữ các kiểu nguyên thủy.

21. Phương thức ‘equals()’ trong Java được sử dụng để làm gì?

A. So sánh nội dung của hai đối tượng để xác định xem chúng có tương đương hay không.
B. So sánh địa chỉ bộ nhớ của hai đối tượng để xác định xem chúng có cùng một đối tượng hay không.
C. Chuyển đổi một đối tượng thành một chuỗi ký tự.
D. Kiểm tra xem một đối tượng có phải là null hay không.

22. Lớp ‘HashSet’ trong Java có đặc điểm gì?

A. Lưu trữ các phần tử duy nhất, không theo thứ tự và không cho phép các phần tử null.
B. Lưu trữ các phần tử duy nhất, theo thứ tự và cho phép một phần tử null.
C. Lưu trữ các phần tử có thể trùng lặp, theo thứ tự và cho phép nhiều phần tử null.
D. Lưu trữ các phần tử duy nhất, không theo thứ tự và cho phép nhiều phần tử null.

23. Đâu là một ví dụ về ‘Interface Segregation Principle’ (Nguyên tắc Phân tách Interface) trong thiết kế phần mềm?

A. Thay vì có một interface lớn, hãy chia nhỏ thành các interface nhỏ hơn, cụ thể hơn để các client chỉ cần phụ thuộc vào những gì chúng cần.
B. Một lớp chỉ nên có một lý do để thay đổi.
C. Các lớp con nên có thể thay thế cho các lớp cha của chúng.
D. Giảm sự phụ thuộc giữa các module.

24. Trong Java, từ khóa ‘super’ được sử dụng để làm gì?

A. Tham chiếu đến phương thức hoặc biến của lớp cha trực tiếp.
B. Tham chiếu đến phương thức hoặc biến của lớp hiện tại.
C. Tham chiếu đến lớp cha trừu tượng.
D. Tham chiếu đến lớp con của lớp hiện tại.

25. Trong Java, một ‘Constructor’ (Hàm tạo) được sử dụng để làm gì?

A. Khởi tạo trạng thái ban đầu của một đối tượng khi nó được tạo ra.
B. Đóng gói dữ liệu và phương thức vào một đơn vị.
C. Kiểm soát quyền truy cập vào các thành phần của lớp.
D. Xử lý các ngoại lệ trong chương trình.

26. Trong lập trình Java, ‘Serialization’ dùng để làm gì?

A. Chuyển đổi trạng thái của một đối tượng thành một chuỗi byte để lưu trữ hoặc truyền đi.
B. Chuyển đổi một chuỗi byte thành một đối tượng Java.
C. Chuyển đổi mã nguồn Java thành mã máy.
D. Kiểm tra lỗi cú pháp trong mã nguồn Java.

27. Trong Java, ‘Encapsulation’ (Đóng gói) là một khái niệm thuộc về:

A. Lập trình hướng đối tượng (OOP).
B. Lập trình hướng thủ tục (Procedural Programming).
C. Lập trình hàm (Functional Programming).
D. Lập trình song song (Parallel Programming).

28. Phương thức ‘substring()’ của lớp String trong Java dùng để làm gì?

A. Trích xuất một phần của chuỗi, bắt đầu từ một chỉ số và kết thúc tại một chỉ số khác (hoặc đến cuối chuỗi).
B. Ghép hai chuỗi lại với nhau.
C. Tìm kiếm một chuỗi con bên trong một chuỗi lớn hơn.
D. Thay thế một phần của chuỗi bằng một chuỗi khác.

29. Đâu là một ví dụ về kiểu dữ liệu nguyên thủy (primitive data type) trong Java?

A. int
B. String
C. Object
D. ArrayList

30. Trong Java, đâu là cách đúng để so sánh hai chuỗi có giá trị bằng nhau?

A. Sử dụng phương thức ‘.equals()’.
B. Sử dụng toán tử ‘==’.
C. Sử dụng toán tử ‘equals’.
D. Sử dụng phương thức ‘.equalsIgnoreCase()’.

31. Phương thức ‘charAt()’ của lớp String trong Java được sử dụng để làm gì?

A. Trả về ký tự tại một chỉ số (index) cụ thể trong chuỗi.
B. Kiểm tra xem một chuỗi có chứa một ký tự cụ thể hay không.
C. Trả về độ dài của chuỗi.
D. Chuyển đổi chuỗi thành một mảng các ký tự.

32. Trong Java, ‘Garbage Collection’ có nhiệm vụ gì?

A. Tự động giải phóng bộ nhớ không còn được sử dụng bởi các đối tượng.
B. Quản lý việc cấp phát bộ nhớ cho các đối tượng mới.
C. Tối ưu hóa hiệu suất của các luồng (threads).
D. Kiểm soát việc truy cập vào các tài nguyên hệ thống.

33. Trong Java, ‘Exception Handling’ có vai trò gì?

A. Xử lý các tình huống lỗi phát sinh trong quá trình thực thi chương trình một cách có kiểm soát.
B. Tăng tốc độ thực thi của chương trình.
C. Quản lý việc sử dụng bộ nhớ của chương trình.
D. Tự động sửa lỗi cú pháp trong mã nguồn.

34. Đâu là cách đúng để khai báo một biến kiểu mảng trong Java?

A. int[] myArray;
B. int myArray[];
C. myArray int[];
D. int[] myArray[]

35. Cơ chế nào trong Java cho phép một lớp kế thừa từ nhiều lớp cha?

A. Java không hỗ trợ kế thừa đa lớp trực tiếp, nhưng cho phép một lớp triển khai nhiều interface.
B. Java hỗ trợ kế thừa đa lớp thông qua từ khóa ‘implements’.
C. Java hỗ trợ kế thừa đa lớp thông qua từ khóa ‘extends’.
D. Java cho phép một lớp kế thừa từ nhiều lớp cha bằng cách định nghĩa chúng trong cùng một khối mã.

36. Lớp nào trong Java được sử dụng để đọc dữ liệu từ một tệp tin văn bản?

A. BufferedReader
B. FileWriter
C. FileOutputStream
D. PrintWriter

37. Trong Java, ‘Abstract Method’ là gì?

A. Một phương thức chỉ có khai báo mà không có phần thân (implementation), phải được định nghĩa trong lớp con kế thừa lớp trừu tượng.
B. Một phương thức chỉ có thể được gọi bởi lớp cha.
C. Một phương thức không thể bị ghi đè bởi lớp con.
D. Một phương thức chỉ có thể được truy cập từ bên trong lớp.

38. Trong Java, ‘Polymorphism’ (Đa hình) có nghĩa là gì?

A. Khả năng một đối tượng có thể đảm nhận nhiều hình thái khác nhau, thường thông qua kế thừa và ghi đè phương thức.
B. Khả năng một lớp kế thừa từ nhiều lớp.
C. Khả năng một đối tượng truy cập vào các thành phần riêng tư của lớp khác.
D. Khả năng một chương trình chạy trên nhiều hệ điều hành khác nhau.

39. Trong Java, ‘finally’ block được sử dụng với ‘try-catch’ để làm gì?

A. Đảm bảo một khối mã được thực thi bất kể có ngoại lệ xảy ra hay không.
B. Chỉ thực thi khi có ngoại lệ xảy ra.
C. Chỉ thực thi khi không có ngoại lệ xảy ra.
D. Báo hiệu kết thúc của khối try-catch.

40. Trong ngữ cảnh đa luồng (multithreading) của Java, ‘Deadlock’ xảy ra khi nào?

A. Hai hoặc nhiều luồng bị khóa vĩnh viễn, mỗi luồng đang chờ đợi tài nguyên mà luồng khác đang giữ.
B. Một luồng bị dừng hoạt động do lỗi trong mã.
C. Một luồng cố gắng truy cập vào một tài nguyên đã bị đóng.
D. Hai luồng cố gắng ghi vào cùng một tệp tin cùng lúc.

41. Trong Java, đâu là sự khác biệt chính giữa `ArrayList` và `LinkedList`?

A. `ArrayList` sử dụng mảng để lưu trữ phần tử, còn `LinkedList` sử dụng danh sách liên kết đôi.
B. `ArrayList` có thời gian truy cập phần tử ngẫu nhiên nhanh hơn, còn `LinkedList` có thời gian thêm/xóa phần tử ở giữa nhanh hơn.
C. `ArrayList` không cho phép chứa các phần tử null, còn `LinkedList` cho phép.
D. Cả hai đều có hiệu suất như nhau cho mọi thao tác.

42. Xem xét đoạn mã Java sau:
“`java
public class Example {
public static void main(String[] args) {
int x = 10;
int y = x++;
System.out.println(“x: ” + x + “, y: ” + y);
}
}
“`
Đầu ra của đoạn mã này là gì?

A. x: 11, y: 10
B. x: 10, y: 11
C. x: 11, y: 11
D. x: 10, y: 10

43. Xem xét đoạn mã Java sau:
“`java
public class Test {
public static void main(String[] args) {
int sum = 0;
for (int i = 1; i <= 5; i++) {
sum += i;
}
System.out.println(sum);
}
}
“`
Đầu ra của đoạn mã này là gì?

A. 15
B. 10
C. 12
D. 20

44. Trong Java, từ khóa ‘this’ được sử dụng để làm gì?

A. Tham chiếu đến thể hiện (instance) hiện tại của lớp.
B. Tham chiếu đến lớp cha (superclass).
C. Tạo một thể hiện mới của lớp.
D. Gọi một phương thức tĩnh của lớp.

45. Trong Java, `String` là một kiểu dữ liệu nguyên thủy hay là một đối tượng?

A. Là một đối tượng (Object).
B. Là một kiểu dữ liệu nguyên thủy (primitive type).
C. Vừa là đối tượng, vừa là kiểu nguyên thủy.
D. Tùy thuộc vào cách khai báo.

46. Trong Java, `interface` có thể:

A. Chứa các phương thức trừu tượng (public abstract) và các hằng số (public static final).
B. Chứa các phương thức đã triển khai (concrete methods).
C. Chứa các thuộc tính có thể thay đổi giá trị.
D. Kế thừa từ một lớp cụ thể.

47. Trong Java, từ khóa ‘super’ được sử dụng để làm gì?

A. Truy cập các thành viên (thuộc tính và phương thức) của lớp cha (superclass).
B. Truy cập các thành viên của chính lớp hiện tại.
C. Tạo một thể hiện mới của lớp cha.
D. Gọi hàm tạo mặc định của lớp cha.

48. Trong Java, từ khóa ‘final’ có thể được áp dụng cho biến, phương thức và lớp. Khi áp dụng cho biến, điều gì sẽ xảy ra?

A. Biến đó sẽ trở thành một hằng số, không thể thay đổi giá trị sau khi được gán.
B. Biến đó sẽ có thể thay đổi giá trị bao nhiêu lần tùy ý.
C. Biến đó sẽ chỉ được gán giá trị một lần trong quá trình khởi tạo lớp.
D. Biến đó sẽ tự động được khởi tạo với giá trị null.

49. Trong Java, `public static void main(String[] args)` là gì?

A. Điểm vào (entry point) của một ứng dụng Java.
B. Một phương thức dùng để khởi tạo lớp.
C. Một phương thức dùng để định nghĩa các biến.
D. Một phương thức dùng để xử lý ngoại lệ.

50. Xem xét đoạn mã Java sau:
“`java
public class Test {
public static void main(String[] args) {
int[] arr = {10, 20, 30, 40, 50};
for (int num : arr) {
System.out.print(num + ” “);
}
}
}
“`
Đầu ra của đoạn mã này là gì?

A. 10 20 30 40 50
B. 10, 20, 30, 40, 50
C. 5 4 3 2 1
D. Lỗi biên dịch

51. Trong Java, một lớp có thể triển khai (implement) bao nhiêu `interface`?

A. Nhiều interface
B. Chỉ một interface
C. Tối đa hai interface
D. Không giới hạn, miễn là không có xung đột về tên phương thức.

52. Trong lập trình Java, khái niệm ‘Abstraction’ (Trừu tượng hóa) đề cập đến điều gì?

A. Quá trình ẩn đi các chi tiết triển khai phức tạp và chỉ hiển thị các chức năng cần thiết.
B. Khả năng một đối tượng có thể có nhiều hình thức.
C. Quá trình định nghĩa một lớp dựa trên một lớp khác.
D. Khả năng đóng gói dữ liệu và phương thức vào một đơn vị duy nhất.

53. Xem xét đoạn mã Java sau:
“`java
public class Test {
public static void main(String[] args) {
int i = 1;
int j = ++i + i++;
System.out.println(“i = ” + i + “, j = ” + j);
}
}
“`
Đầu ra của đoạn mã này là gì?

A. i = 3, j = 5
B. i = 3, j = 4
C. i = 2, j = 4
D. i = 2, j = 3

54. Trong Java, từ khóa ‘static’ khi áp dụng cho một biến lớp (class variable) có nghĩa là gì?

A. Biến đó thuộc về lớp chứ không phải thuộc về một thể hiện (instance) cụ thể nào của lớp đó.
B. Biến đó sẽ được khởi tạo mỗi khi một đối tượng mới của lớp được tạo.
C. Biến đó chỉ có thể được truy cập từ bên trong lớp.
D. Biến đó sẽ là một hằng số, không thể thay đổi giá trị.

55. Xem xét đoạn mã Java sau:
“`java
public class Test {
public static void main(String[] args) {
for (int i = 0; i < 3; i++) {
System.out.print(i + " ");
}
}
}
“`
Đầu ra của đoạn mã này là gì?

A. 0 1 2
B. 1 2 3
C. 0 1 2 3
D. Lỗi biên dịch

56. Xem xét đoạn mã Java sau:
“`java
public class Test {
public static void main(String[] args) {
int a = 5;
int b = 2;
System.out.println(a / b);
}
}
“`
Đầu ra của đoạn mã này là gì?

A. 2.5
B. 2
C. 3
D. Lỗi chia cho 0

57. Xem xét đoạn mã Java sau:
“`java
public class Test {
public static void main(String[] args) {
int x = 10;
int y = x;
y = 20;
System.out.println(“x = ” + x);
System.out.println(“y = ” + y);
}
}
“`
Đầu ra của đoạn mã này là gì?

A. x = 10
y = 20
B. x = 20
y = 20
C. x = 10
y = 10
D. x = 20
y = 10

58. Trong Java, đâu là cách khai báo một lớp trừu tượng (abstract class)?

A. Sử dụng từ khóa `abstract` trước từ khóa `class`.
B. Sử dụng từ khóa `virtual` trước từ khóa `class`.
C. Sử dụng từ khóa `interface` trước từ khóa `class`.
D. Không có cách đặc biệt, mọi lớp đều có thể là trừu tượng.

59. Trong Java, khái niệm ‘Interface Segregation Principle’ (Nguyên tắc phân tách giao diện) đề xuất điều gì?

A. Nên tạo các giao diện nhỏ, cụ thể thay vì một giao diện lớn, chung chung.
B. Một lớp nên kế thừa từ nhiều lớp.
C. Các lớp con nên ẩn đi các thành viên của lớp cha.
D. Giao diện nên có các phương thức đã triển khai.

60. Trong Java, phương thức `charAt(int index)` của lớp `String` dùng để làm gì?

A. Trả về ký tự tại vị trí chỉ số được chỉ định.
B. Trả về một chuỗi con bắt đầu từ chỉ số được chỉ định.
C. Trả về mã ASCII của ký tự tại chỉ số được chỉ định.
D. Trả về độ dài của chuỗi.

61. Trong Java, đâu là sự khác biệt giữa `==` và `.equals()` khi so sánh hai chuỗi?

A. `==` so sánh tham chiếu đối tượng, còn `.equals()` so sánh nội dung chuỗi.
B. `==` so sánh nội dung chuỗi, còn `.equals()` so sánh tham chiếu đối tượng.
C. Cả hai đều so sánh nội dung chuỗi.
D. Cả hai đều so sánh tham chiếu đối tượng.

62. Trong Java, khái niệm ‘Encapsulation’ (Đóng gói) có ý nghĩa gì?

A. Gom dữ liệu (thuộc tính) và các phương thức xử lý dữ liệu đó vào trong một lớp duy nhất.
B. Khả năng một đối tượng có thể có nhiều hình thức.
C. Quá trình ẩn đi các chi tiết triển khai phức tạp.
D. Khả năng tạo các lớp con từ một lớp cha.

63. Xem xét đoạn mã Java sau:
“`java
public class Test {
public static void main(String[] args) {
String s = “abc”;
s = s + “d”;
System.out.println(s);
}
}
“`
Đầu ra của đoạn mã này là gì?

A. abcd
B. abc
C. abc + d
D. Lỗi biên dịch

64. Xem xét đoạn mã Java sau:
“`java
public class Test {
public static void main(String[] args) {
int i = 0;
while (i < 3) {
System.out.print(i + " ");
i++;
}
}
}
“`
Đầu ra của đoạn mã này là gì?

A. 0 1 2
B. 1 2 3
C. 0 1 2 3
D. Lỗi biên dịch

65. Xem xét đoạn mã Java sau:
“`java
public class Test {
public static void main(String[] args) {
String s1 = “Java”;
String s2 = s1;
s1 = s1.concat(” Programming”);
System.out.println(s1);
System.out.println(s2);
}
}
“`
Đầu ra của đoạn mã này là gì?

A. Java Programming
Java
B. Java Programming
Java Programming
C. Java
Java
D. Java
Java Programming

66. Trong Java, phương thức `hashCode()` và `equals()` có mối quan hệ như thế nào?

A. Nếu hai đối tượng bằng nhau theo `equals()`, thì `hashCode()` của chúng phải trả về cùng một giá trị.
B. Nếu hai đối tượng có cùng `hashCode()`, thì chúng chắc chắn bằng nhau theo `equals()`.
C. Việc ghi đè `equals()` không yêu cầu ghi đè `hashCode()`.
D. Chỉ cần ghi đè `hashCode()` là đủ để đảm bảo tính đúng đắn của các Collection dựa trên băm.

67. Trong Java, `abstract method` (phương thức trừu tượng) là gì?

A. Một phương thức chỉ có khai báo mà không có phần thân (implementation).
B. Một phương thức có thể được gọi trực tiếp từ lớp trừu tượng.
C. Một phương thức có thể được ghi đè bởi bất kỳ lớp nào.
D. Một phương thức luôn trả về giá trị null.

68. Đâu là cách khai báo và khởi tạo một mảng số nguyên có 5 phần tử trong Java?

A. int[] numbers = new int[5];
B. int numbers[5];
C. int numbers = new int(5);
D. int numbers[] = {5};

69. Xem xét đoạn mã Java sau:
“`java
public class Test {
public static void main(String[] args) {
int a = 10;
int b = 3;
System.out.println(a % b);
}
}
“`
Đầu ra của đoạn mã này là gì?

A. 1
B. 3
C. 3.33
D. 0

70. Xem xét đoạn mã Java sau:
“`java
public class Test {
public static void main(String[] args) {
int count = 0;
do {
System.out.print(count + ” “);
count++;
} while (count < 3);
}
}
“`
Đầu ra của đoạn mã này là gì?

A. 0 1 2
B. 1 2 3
C. 0 1 2 3
D. Lỗi biên dịch

71. Xem xét đoạn mã Java sau:
“`java
public class Test {
public static void main(String[] args) {
String str = “Hello”;
System.out.println(str.length());
}
}
“`
Đầu ra của đoạn mã này là gì?

A. 5
B. 6
C. Hello
D. Lỗi biên dịch

72. Trong Java, từ khóa ‘volatile’ được sử dụng cho mục đích gì?

A. Đảm bảo rằng một biến được truy cập trực tiếp từ bộ nhớ chính, không bị ảnh hưởng bởi bộ nhớ cache của từng luồng.
B. Chỉ định một biến là hằng số.
C. Đảm bảo rằng một phương thức là bất biến (immutable).
D. Cho phép một biến được truy cập từ bất kỳ đâu.

73. Đâu là cách đúng để khai báo và khởi tạo một đối tượng `ArrayList` chứa các chuỗi trong Java?

A. ArrayList list = new ArrayList();
B. ArrayList list = new ArrayList();
C. ArrayList list = new ArrayList();
D. List list = new ArrayList();

74. Trong Java, đâu là sự khác biệt giữa `throw` và `throws`?

A. `throw` dùng để ném ra một ngoại lệ, còn `throws` dùng để khai báo rằng một phương thức có thể ném ra ngoại lệ.
B. `throw` khai báo ngoại lệ, còn `throws` ném ra ngoại lệ.
C. Cả hai đều dùng để ném ra ngoại lệ.
D. Cả hai đều dùng để khai báo ngoại lệ.

75. Trong Java, ‘Polymorphism’ (Đa hình) cho phép:

A. Một đối tượng có thể có nhiều hình thức hoặc hành vi khác nhau.
B. Một lớp có thể kế thừa từ nhiều lớp cha.
C. Các lớp con có thể ẩn đi hoàn toàn các thành viên của lớp cha.
D. Một lớp có thể đóng gói dữ liệu và phương thức thành một đơn vị.

76. Xem xét đoạn mã Java sau:
“`java
public class Test {
public static void main(String[] args) {
String str1 = “Hello”;
String str2 = new String(“Hello”);
System.out.println(str1 == str2);
}
}
“`
Đầu ra của đoạn mã này là gì và tại sao?

A. true, vì cả hai chuỗi đều có nội dung giống nhau.
B. false, vì ‘str1’ tham chiếu đến một đối tượng trong String pool, còn ‘str2’ tham chiếu đến một đối tượng mới trong heap.
C. true, vì Java tự động tối ưu hóa việc so sánh chuỗi.
D. false, vì phép so sánh ‘==’ chỉ dùng cho các kiểu dữ liệu nguyên thủy.

77. Xem xét đoạn mã Java sau:
“`java
public class Test {
public static void main(String[] args) {
int a = 10;
if (a > 5) {
System.out.println(“A”);
} else if (a > 15) {
System.out.println(“B”);
} else {
System.out.println(“C”);
}
}
}
“`
Đầu ra của đoạn mã này là gì?

A. A
B. B
C. C
D. Không có đầu ra

78. Trong Java, ‘Inheritance’ (Kế thừa) cho phép một lớp:

A. Kế thừa các thuộc tính và phương thức từ một lớp cha.
B. Đóng gói dữ liệu và phương thức.
C. Có nhiều hình thức khác nhau.
D. Ẩn đi các chi tiết triển khai phức tạp.

79. Xem xét đoạn mã Java sau:
“`java
public class Test {
public static void main(String[] args) {
String s = “abc”;
s = s.concat(“def”);
System.out.println(s);
}
}
“`
Đầu ra của đoạn mã này là gì?

A. abcdef
B. abc
C. abc.concat(“def”)
D. Lỗi biên dịch

80. Khi sử dụng `try-catch-finally` trong Java, khối nào luôn được thực thi, bất kể có ngoại lệ xảy ra hay không?

A. Khối `finally`
B. Khối `try`
C. Khối `catch`
D. Khối nào có ngoại lệ xảy ra

81. Cơ chế nào trong Java cho phép bạn tạo một lớp có thể định nghĩa các hành vi mà không cần cung cấp triển khai cụ thể, để các lớp con thực hiện?

A. Final Class
B. Abstract Class
C. Static Class
D. Private Class

82. Trong Java, từ khóa ‘static’ khi áp dụng cho một biến lớp (class variable) có ý nghĩa gì?

A. Biến đó thuộc về đối tượng cụ thể của lớp.
B. Biến đó được chia sẻ bởi tất cả các đối tượng của lớp đó.
C. Biến đó chỉ có thể được truy cập bên trong phương thức của lớp.
D. Biến đó sẽ được giải phóng ngay lập tức sau khi phương thức kết thúc.

83. Trong Java, khi bạn tạo một lớp con kế thừa từ một lớp cha, constructor của lớp con sẽ tự động gọi constructor nào của lớp cha?

A. Constructor có tham số đầu tiên của lớp cha.
B. Constructor không có tham số (default constructor) của lớp cha.
C. Constructor có nhiều tham số nhất của lớp cha.
D. Constructor được gọi tường minh bằng ‘super()’.

84. API Java nào cung cấp các lớp để tạo và thao tác với các cấu trúc dữ liệu như List, Set, và Map?

A. java.io
B. java.net
C. java.util
D. java.lang

85. Trong Java, khi bạn ghi đè (override) một phương thức của lớp cha, phương thức ghi đè có thể thay đổi gì?

A. Tên phương thức.
B. Kiểu trả về của phương thức (miễn là tương thích).
C. Danh sách tham số của phương thức.
D. Tất cả các phương án trên.

86. Phương thức ‘main’ trong Java có signature (chữ ký) bắt buộc là gì để có thể chạy một ứng dụng Java?

A. public static void start(String[] args)
B. public static void main(String args[])
C. public static void main(String… args)
D. public void main(String[] args)

87. Trong Java, khái niệm nào cho phép một lớp kế thừa các thuộc tính và phương thức từ một lớp khác?

A. Encapsulation (Đóng gói)
B. Polymorphism (Đa hình)
C. Inheritance (Kế thừa)
D. Abstraction (Trừu tượng hóa)

88. Trong Java, ‘Polymorphism’ (Đa hình) có nghĩa là gì?

A. Khả năng một đối tượng có thể có nhiều hình dạng.
B. Khả năng một lớp có nhiều constructor.
C. Khả năng một lớp che giấu dữ liệu của nó.
D. Khả năng một lớp kế thừa nhiều lớp.

89. Biến nào trong Java không phải là kiểu nguyên thủy và có thể đại diện cho một đối tượng?

A. int
B. boolean
C. String
D. char

90. Cấu trúc ‘for-each’ (enhanced for loop) trong Java được sử dụng để làm gì?

A. Lặp qua các phần tử của một mảng hoặc một Collection mà không cần sử dụng chỉ số.
B. Tạo một vòng lặp vô hạn.
C. Lặp theo một điều kiện cụ thể.
D. Lặp qua các lớp con của một lớp.

91. Cơ chế nào trong Java cho phép một phương thức có nhiều phiên bản với các tham số khác nhau?

A. Overriding (Ghi đè).
B. Overloading (Quá tải).
C. Encapsulation (Đóng gói).
D. Inheritance (Kế thừa).

92. Trong Java, ‘unboxing’ là quá trình gì?

A. Chuyển đổi từ kiểu wrapper sang kiểu nguyên thủy tương ứng một cách tự động.
B. Chuyển đổi từ kiểu nguyên thủy sang kiểu wrapper tương ứng một cách tự động.
C. Chuyển đổi một số nguyên thành chuỗi.
D. Tự động giải phóng bộ nhớ của đối tượng.

93. Trong Java, thuật ngữ ‘interface’ định nghĩa một tập hợp các:

A. Phương thức đã triển khai.
B. Biến hằng số.
C. Phương thức trừu tượng và hằng số.
D. Lớp con.

94. Trong Java, ‘Abstraction’ (Trừu tượng hóa) có nghĩa là gì?

A. Che giấu chi tiết triển khai và chỉ hiển thị các chức năng cần thiết.
B. Cho phép một lớp kế thừa từ nhiều lớp.
C. Cho phép một phương thức có nhiều tên.
D. Tạo ra các biến chỉ có thể đọc.

95. Lớp nào trong Java được sử dụng để tạo và thao tác với mảng động (dynamic arrays)?

A. Array
B. ArrayList
C. LinkedList
D. Vector

96. Lớp nào trong Java được sử dụng để tạo và quản lý các luồng thực thi (threads)?

A. Runnable
B. Thread
C. ExecutorService
D. Tất cả các phương án trên

97. Kiểu dữ liệu nguyên thủy nào trong Java có thể lưu trữ các số nguyên dương và âm, với kích thước 32 bit?

A. byte
B. short
C. int
D. long

98. Cấu trúc ‘try-catch-finally’ trong Java được sử dụng để xử lý loại tình huống nào?

A. Vòng lặp vô hạn.
B. Lỗi cú pháp trong mã nguồn.
C. Ngoại lệ (Exceptions).
D. Quản lý bộ nhớ (Garbage Collection).

99. API Java nào cung cấp các lớp để làm việc với các định dạng ngày tháng và thời gian?

A. java.net
B. java.awt
C. java.time
D. java.beans

100. Cơ chế nào trong Java cho phép bạn tạo một lớp mà không thể bị kế thừa?

A. abstract
B. static
C. final
D. private

101. Trong Java, từ khóa ‘this’ được sử dụng để làm gì?

A. Truy cập thành viên của lớp cha.
B. Truy cập thành viên của lớp hiện tại hoặc gọi constructor của lớp hiện tại.
C. Tạo một đối tượng mới.
D. Kết thúc thực thi của phương thức.

102. Trong Java, ‘autoboxing’ là quá trình gì?

A. Chuyển đổi từ kiểu nguyên thủy sang kiểu wrapper tương ứng một cách tự động.
B. Chuyển đổi từ kiểu wrapper sang kiểu nguyên thủy tương ứng một cách tự động.
C. Chuyển đổi một chuỗi thành số nguyên.
D. Tự động tạo một đối tượng mới.

103. Thành phần nào của Java Virtual Machine (JVM) chịu trách nhiệm quản lý bộ nhớ và thu hồi các đối tượng không còn được sử dụng?

A. Just-In-Time (JIT) Compiler
B. Garbage Collector
C. Class Loader
D. Java Native Interface (JNI)

104. Trong Java, từ khóa ‘final’ khi áp dụng cho một biến có nghĩa là gì?

A. Biến đó chỉ có thể được gán giá trị một lần duy nhất trong vòng đời của đối tượng.
B. Biến đó là một biến lớp (static variable).
C. Biến đó không thể được truy cập từ các lớp khác.
D. Biến đó sẽ tự động khởi tạo với giá trị null nếu không được gán.

105. Trong Java, từ khóa ‘private’ khi áp dụng cho một biến hoặc phương thức có nghĩa là gì?

A. Chỉ có thể truy cập từ bên trong lớp đó.
B. Có thể truy cập từ bất kỳ lớp nào.
C. Có thể truy cập từ các lớp con.
D. Có thể truy cập từ các lớp cùng gói.

106. Trong Java, một ‘Exception’ (ngoại lệ) là gì?

A. Một lỗi cú pháp mà trình biên dịch sẽ phát hiện.
B. Một sự kiện xảy ra trong quá trình thực thi chương trình, làm gián đoạn luồng thực thi bình thường.
C. Một biến toàn cục.
D. Một phương thức được định nghĩa trong interface.

107. Trong Java, từ khóa ‘volatile’ được sử dụng cho biến để đảm bảo điều gì?

A. Biến đó sẽ không bao giờ bị null.
B. Thay đổi giá trị của biến đó sẽ được nhìn thấy ngay lập tức bởi tất cả các luồng.
C. Biến đó là một biến lớp (static).
D. Biến đó có thể được khởi tạo sau.

108. Thành phần nào của JVM chịu trách nhiệm biên dịch mã bytecode thành mã máy gốc khi chương trình đang chạy?

A. Garbage Collector
B. Class Loader
C. Just-In-Time (JIT) Compiler
D. Java Native Interface (JNI)

109. Phương thức ‘equals()’ trong Java được sử dụng để:

A. Kiểm tra xem hai đối tượng có cùng địa chỉ bộ nhớ không.
B. Kiểm tra xem hai đối tượng có giá trị tương đương nhau không.
C. So sánh thứ tự của hai đối tượng.
D. Kiểm tra xem đối tượng có phải là null không.

110. Trong Java, từ khóa ‘super’ được sử dụng để làm gì?

A. Truy cập thành viên của lớp con.
B. Truy cập thành viên của lớp cha hoặc gọi constructor của lớp cha.
C. Tạo một đối tượng mới của cùng lớp.
D. Hủy bỏ một đối tượng.

111. Trong Java, một lớp có thể triển khai bao nhiêu interface?

A. Chỉ một.
B. Tối đa hai.
C. Vô số.
D. Tùy thuộc vào số lượng phương thức trừu tượng.

112. Kiểu dữ liệu nào trong Java được sử dụng để biểu diễn một ký tự duy nhất?

A. String
B. char
C. Character
D. byte

113. Trong Java, đối tượng nào thường được sử dụng để ghi dữ liệu vào một tệp tin hoặc luồng mạng?

A. Reader
B. Scanner
C. OutputStream
D. BufferedReader

114. Trong Java, một lớp trừu tượng (abstract class) có thể có những gì?

A. Chỉ các phương thức trừu tượng.
B. Chỉ các phương thức đã được triển khai.
C. Cả phương thức trừu tượng và phương thức đã được triển khai.
D. Không có constructor.

115. Khi sử dụng từ khóa ‘synchronized’ trên một phương thức, điều gì xảy ra?

A. Phương thức đó sẽ chạy nhanh hơn.
B. Chỉ một luồng (thread) có thể thực thi phương thức đó tại một thời điểm.
C. Phương thức đó sẽ tự động trở thành static.
D. Phương thức đó sẽ không bao giờ gặp lỗi ngoại lệ.

116. API Java nào thường được sử dụng để làm việc với các chuỗi ký tự?

A. java.util.ArrayList
B. java.lang.String
C. java.io.File
D. java.net.Socket

117. Trong Java, đối tượng nào được sử dụng để đọc dữ liệu từ một nguồn như tệp tin hoặc luồng mạng?

A. OutputStream
B. Writer
C. Reader
D. PrintWriter

118. API Java nào cung cấp các lớp để làm việc với các tệp tin và thư mục?

A. java.lang
B. java.util
C. java.io
D. java.nio

119. Kiểu dữ liệu nguyên thủy nào trong Java có thể lưu trữ các giá trị boolean (true hoặc false)?

A. byte
B. boolean
C. char
D. int

120. Trong Java, khái niệm ‘Encapsulation’ (Đóng gói) liên quan đến việc:

A. Che giấu dữ liệu và chỉ cho phép truy cập thông qua các phương thức công khai (public methods).
B. Cho phép một lớp kế thừa từ nhiều lớp khác.
C. Cho phép một phương thức có nhiều phiên bản.
D. Trừu tượng hóa các chi tiết triển khai phức tạp.

121. Đâu là sự khác biệt cơ bản nhất giữa ‘interface’ và ‘abstract class’ trong Java?

A. Abstract class có thể có biến final, còn interface thì không.
B. Interface có thể có phương thức khởi tạo (constructor), còn abstract class thì không.
C. Abstract class có thể có phương thức triển khai (implemented methods), còn interface (trước Java 8) chỉ có khai báo phương thức.
D. Một lớp chỉ có thể kế thừa từ một abstract class, nhưng có thể triển khai nhiều interface.

122. Đâu là một ví dụ về ‘unboxing’ trong Java?

A. Chuyển đổi `Integer` sang `int` một cách tự động.
B. Chuyển đổi `int` sang `Integer` một cách tự động.
C. Chuyển đổi `String` sang `int`.
D. Chuyển đổi `int` sang `String`.

123. Trong Java, ‘reflection’ cho phép bạn làm gì?

A. Thực thi mã Java trên các máy chủ từ xa.
B. Kiểm tra và sửa đổi hành vi của các lớp, phương thức và thuộc tính tại thời điểm chạy.
C. Tạo các giao diện người dùng đồ họa.
D. Quản lý bộ nhớ tự động.

124. Trong Java, một ‘checked exception’ cần được xử lý hoặc khai báo. Nếu bạn muốn một phương thức không cần khai báo lại ngoại lệ này, bạn sẽ làm gì?

A. Chuyển nó thành một ‘unchecked exception’ bằng cách bắt và ném lại nó dưới dạng `RuntimeException`.
B. Bỏ qua khối `catch` cho ngoại lệ đó.
C. Sử dụng từ khóa `final` cho phương thức đó.
D. Không cần làm gì, trình biên dịch sẽ tự động xử lý.

125. Trong Java, phương thức `wait()`, `notify()`, và `notifyAll()` thường được sử dụng trong ngữ cảnh nào?

A. Để xử lý ngoại lệ.
B. Để thực hiện đa luồng và đồng bộ hóa (inter-thread communication).
C. Để đọc dữ liệu từ tệp.
D. Để thực hiện ép kiểu dữ liệu.

126. Trong Java, ‘wrapper classes’ (lớp bao) như `Integer`, `Double`, `Boolean` được sử dụng để làm gì?

A. Để thay thế hoàn toàn các kiểu dữ liệu nguyên thủy.
B. Để cho phép các kiểu dữ liệu nguyên thủy được sử dụng trong các collection framework và các phép toán đối tượng.
C. Để tăng tốc độ truy cập dữ liệu.
D. Để giảm dung lượng bộ nhớ sử dụng.

127. Đâu là cách đúng để tạo một đối tượng của lớp `MyClass` có constructor mặc định trong Java?

A. MyClass obj = new MyClass();
B. MyClass obj = MyClass.newInstance();
C. MyClass obj = Object.newInstance(MyClass.class);
D. MyClass obj = MyClass.createInstance();

128. Đâu là sự khác biệt chính giữa `ArrayList` và `Vector` trong Java?

A. `ArrayList` là thread-safe, còn `Vector` thì không.
B. `Vector` có phương thức `capacityIncrement`, còn `ArrayList` thì không.
C. `Vector` chậm hơn `ArrayList` do cơ chế đồng bộ hóa.
D. Tất cả các phương án trên đều đúng.

129. Khi nói về các kiểu dữ liệu nguyên thủy (primitive types) trong Java, đâu là kiểu dữ liệu có kích thước bộ nhớ lớn nhất?

A. int
B. long
C. double
D. float

130. Java 8 giới thiệu ‘default methods’ trong interfaces. Mục đích chính của chúng là gì?

A. Để cho phép interface có thể khởi tạo.
B. Để thêm các phương thức mới vào interface mà không phá vỡ các lớp đã triển khai trước đó.
C. Để đảm bảo rằng tất cả các lớp triển khai phải có cùng một implementation.
D. Để thay thế hoàn toàn abstract classes.

131. Trong Java, ‘shallow copy’ (sao chép nông) và ‘deep copy’ (sao chép sâu) khác nhau như thế nào?

A. Shallow copy sao chép tất cả các thuộc tính, deep copy chỉ sao chép các tham chiếu.
B. Shallow copy sao chép các tham chiếu đến các đối tượng con, deep copy sao chép cả các đối tượng con đó.
C. Shallow copy chỉ hoạt động với các kiểu nguyên thủy, deep copy hoạt động với các đối tượng.
D. Shallow copy và deep copy là hai thuật ngữ cho cùng một khái niệm.

132. Trong Java, ‘Exception Handling’ là một cơ chế quan trọng. Khối mã nào sau đây được sử dụng để thực thi mã bất kể có ngoại lệ xảy ra hay không?

A. try
B. catch
C. finally
D. throw

133. Trong Java, từ khóa ‘static’ có thể áp dụng cho biến, phương thức, khối mã và lớp lồng nhau. Khi áp dụng cho một biến, nó có ý nghĩa gì?

A. Biến đó thuộc về đối tượng cụ thể.
B. Biến đó thuộc về lớp, chia sẻ bởi tất cả các đối tượng của lớp đó.
C. Biến đó chỉ có thể được truy cập từ bên trong phương thức chính (main).
D. Biến đó sẽ được khởi tạo mỗi khi một đối tượng mới được tạo.

134. Đâu là một ví dụ về ‘autoboxing’ trong Java?

A. Chuyển đổi `int` sang `Integer` một cách tự động.
B. Chuyển đổi `Integer` sang `int` một cách tự động.
C. Chuyển đổi `String` sang `int`.
D. Chuyển đổi `int` sang `String`.

135. Java 8 Stream API có các phương thức ‘flatMap’. Nó khác với ‘map’ như thế nào?

A. `map` trả về một stream của stream, còn `flatMap` làm phẳng nó thành một stream.
B. `flatMap` chỉ có thể được sử dụng với các danh sách, còn `map` có thể được sử dụng với mọi collection.
C. `map` thực hiện phép toán trên từng phần tử, còn `flatMap` thực hiện phép toán trên các tập hợp phần tử.
D. Không có sự khác biệt đáng kể giữa `map` và `flatMap`.

136. Đâu là sự khác biệt chính giữa `HashMap` và `Hashtable` trong Java Collections Framework?

A. `HashMap` cho phép key/value là null, còn `Hashtable` thì không.
B. `Hashtable` là thread-safe, còn `HashMap` thì không.
C. `HashMap` nhanh hơn `Hashtable`.
D. Tất cả các phương án trên đều đúng.

137. Trong Java, phương thức `equals()` và toán tử `==` thường bị nhầm lẫn. Sự khác biệt chính giữa chúng là gì khi so sánh các đối tượng?

A. `==` so sánh nội dung, `equals()` so sánh tham chiếu.
B. `equals()` so sánh nội dung, `==` so sánh tham chiếu.
C. Cả hai đều so sánh nội dung của đối tượng.
D. Cả hai đều so sánh tham chiếu của đối tượng.

138. Java 8 Stream API có phương thức `collect()`. Phương thức này thường được sử dụng để làm gì?

A. Để lọc các phần tử thỏa mãn điều kiện.
B. Để ánh xạ các phần tử sang một dạng khác.
C. Để gộp các phần tử của stream thành một cấu trúc dữ liệu hoặc một giá trị duy nhất.
D. Để sắp xếp các phần tử trong stream.

139. Khi sử dụng `try-with-resources` trong Java, điều gì đảm bảo tài nguyên được đóng?

A. Trình biên dịch tự động thêm khối `finally`.
B. Tài nguyên phải triển khai giao diện `AutoCloseable` hoặc `Closeable`.
C. Trình biên dịch tự động gọi phương thức `close()` trên đối tượng.
D. Tất cả các phương án trên đều đúng.

140. Java 8 giới thiệu ‘Optional’ class. Mục đích chính của ‘Optional’ là gì?

A. Để tạo ra các lớp bất biến.
B. Để giảm thiểu việc sử dụng `NullPointerException` bằng cách cung cấp một cách rõ ràng để biểu thị sự vắng mặt của một giá trị.
C. Để tăng hiệu suất của các phép toán trên chuỗi.
D. Để thực hiện đa hình một cách hiệu quả hơn.

141. Trong Java, từ khóa ‘final’ có thể được sử dụng với biến, phương thức và lớp. Khi được sử dụng với một biến, nó có ý nghĩa gì?

A. Biến đó không thể được khai báo lại.
B. Giá trị của biến không thể thay đổi sau khi được gán lần đầu.
C. Biến đó chỉ có thể được truy cập từ bên trong lớp của nó.
D. Biến đó sẽ luôn được khởi tạo bằng giá trị mặc định.

142. Trong Java, ‘serialization’ là quá trình gì?

A. Chuyển đổi một đối tượng thành một chuỗi ký tự.
B. Chuyển đổi một đối tượng thành một luồng byte để lưu trữ hoặc truyền đi.
C. Biên dịch mã Java thành mã máy.
D. Tạo một bản sao của một đối tượng.

143. Trong Java, từ khóa ‘synchronized’ được sử dụng để làm gì?

A. Tăng tốc độ thực thi của phương thức.
B. Đảm bảo chỉ một luồng (thread) có thể truy cập một đoạn mã hoặc đối tượng tại một thời điểm.
C. Khởi tạo một đối tượng mới.
D. Tạo một luồng mới trong chương trình.

144. Java 8 Stream API cung cấp các ‘terminal operations’ (hoạt động cuối) và ‘intermediate operations’ (hoạt động trung gian). Đâu là một ví dụ của ‘terminal operation’?

A. filter
B. map
C. forEach
D. sorted

145. Trong Java, ‘checked exceptions’ và ‘unchecked exceptions’ có sự khác biệt quan trọng về cách xử lý. Đâu là đặc điểm của ‘checked exceptions’?

A. Chúng là các lớp kế thừa từ ‘RuntimeException’.
B. Trình biên dịch yêu cầu chúng phải được xử lý hoặc khai báo (throw).
C. Chúng thường biểu thị lỗi do lập trình viên gây ra (ví dụ: lỗi logic).
D. Chúng không cần phải được khai báo hoặc xử lý bởi trình biên dịch.

146. Trong Java, khi sử dụng `StringBuilder` hoặc `StringBuffer` để nối các chuỗi, điều gì xảy ra nếu bạn không sử dụng chúng?

A. Chương trình sẽ biên dịch lỗi.
B. Hiệu suất sẽ giảm đáng kể do tạo ra nhiều đối tượng `String` mới.
C. Chương trình sẽ không thể thực thi.
D. Sẽ không có sự khác biệt về hiệu suất.

147. Khi triển khai một phương thức của một interface trong Java, bạn cần sử dụng từ khóa nào?

A. extend
B. implements
C. override
D. declare

148. Java 8 Stream API cho phép thực hiện các thao tác trên tập hợp dữ liệu một cách hiệu quả. Phương thức nào sau đây thường được sử dụng để lọc các phần tử trong một stream dựa trên một điều kiện?

A. map
B. filter
C. reduce
D. collect

149. Trong Java, ‘instanceof’ là một toán tử được sử dụng để làm gì?

A. Kiểm tra xem một đối tượng có phải là một thể hiện của một lớp cụ thể hay không.
B. Tạo một đối tượng mới của một lớp.
C. So sánh hai đối tượng.
D. Ép kiểu một đối tượng sang một lớp khác.

150. Khi làm việc với các lớp collection trong Java, ‘ArrayList’ và ‘LinkedList’ đều triển khai giao diện ‘List’. Điểm khác biệt chính về hiệu suất giữa hai lớp này liên quan đến hoạt động nào?

A. Truy cập phần tử theo chỉ số (get/set).
B. Thêm hoặc xóa phần tử ở đầu hoặc giữa danh sách.
C. Duyệt qua tất cả các phần tử.
D. Thêm hoặc xóa phần tử ở cuối danh sách.

151. Đâu là cách đúng để xử lý một ‘IOException’ tiềm ẩn khi đọc từ tệp trong Java?

A. Sử dụng `try-finally` để đảm bảo tệp được đóng.
B. Sử dụng `try-catch` để bắt và xử lý `IOException`.
C. Sử dụng `throws IOException` trong khai báo phương thức.
D. Tất cả các phương án trên đều có thể được sử dụng tùy theo ngữ cảnh.

152. Trong Java, khái niệm ‘polymorphism’ (đa hình) cho phép một đối tượng có thể thể hiện nhiều hình thức khác nhau. Hình thức nào sau đây là ví dụ điển hình của đa hình lúc biên dịch (compile-time polymorphism)?

A. Method overriding.
B. Method overloading.
C. Inheritance.
D. Abstraction.

153. Trong Java, khi nào thì một lớp được coi là ‘immutable’ (bất biến)?

A. Khi tất cả các phương thức của nó đều là ‘static’.
B. Khi trạng thái của đối tượng không thể thay đổi sau khi tạo.
C. Khi lớp đó không có bất kỳ phương thức nào.
D. Khi lớp đó chỉ kế thừa từ các lớp ‘abstract’.

154. Trong Java, ‘lambda expressions’ thường được sử dụng với các ‘functional interfaces’. Functional interface là gì?

A. Một interface có ít nhất hai phương thức trừu tượng.
B. Một interface có duy nhất một phương thức trừu tượng.
C. Một interface có thể triển khai tất cả các phương thức của nó.
D. Một interface không có bất kỳ phương thức nào.

155. Đâu là cách đúng để đọc dữ liệu từ một tệp văn bản trong Java sử dụng NIO.2 API?

A. Sử dụng `FileReader` và `BufferedReader`.
B. Sử dụng `Files.readAllLines()` hoặc `Files.readString()`.
C. Sử dụng `FileInputStream` và `DataInputStream`.
D. Sử dụng `Scanner` với `System.in`.

156. Trong Java, ‘Generics’ được giới thiệu để làm gì?

A. Để tạo ra các lớp trừu tượng.
B. Để cho phép các kiểu dữ liệu khác nhau được sử dụng trong cùng một cấu trúc dữ liệu mà không cần ép kiểu tường minh.
C. Để đảm bảo rằng tất cả các lớp đều có thể được khởi tạo.
D. Để tăng cường bảo mật cho các ứng dụng web.

157. Java có cơ chế ‘Garbage Collection’ (GC) để quản lý bộ nhớ. Mục đích chính của GC là gì?

A. Tự động cấp phát bộ nhớ cho các đối tượng mới.
B. Tự động giải phóng bộ nhớ của các đối tượng không còn được sử dụng.
C. Tự động tối ưu hóa hiệu suất của chương trình.
D. Tự động kiểm tra lỗi cú pháp trong mã nguồn.

158. Trong Java, ‘collections’ là một thuật ngữ dùng để chỉ nhóm các lớp và giao diện nào?

A. Các cấu trúc dữ liệu để lưu trữ và thao tác với các đối tượng.
B. Các lớp để xử lý luồng nhập/xuất.
C. Các lớp để tạo giao diện người dùng.
D. Các lớp để thực hiện đa luồng.

159. Trong Java, ‘bytecode’ là gì?

A. Mã máy dành riêng cho hệ điều hành Windows.
B. Mã trung gian được tạo ra bởi trình biên dịch Java, chạy trên Máy ảo Java (JVM).
C. Mã nguồn của chương trình Java.
D. Mã JavaScript được thực thi trên trình duyệt.

160. Java 8 đã giới thiệu các ‘lambda expressions’. Lambda expression là gì?

A. Một cách để định nghĩa các lớp trừu tượng.
B. Một khối mã có thể được truyền dưới dạng tham số hoặc được trả về như một giá trị.
C. Một phương thức yêu cầu khởi tạo một đối tượng.
D. Một cách để khai báo các biến không thay đổi.

161. Phương thức ‘hashCode()’ trong Java được sử dụng để làm gì khi làm việc với các Collection như HashMap?

A. Để đảm bảo tính duy nhất của các đối tượng.
B. Để cung cấp một giá trị số nguyên đại diện cho đối tượng, giúp tăng tốc độ tìm kiếm và lưu trữ trong các cấu trúc dữ liệu dựa trên bảng băm (hash table).
C. Để xác định thứ tự sắp xếp của các đối tượng.
D. Để kiểm tra xem hai đối tượng có cùng địa chỉ bộ nhớ hay không.

162. Đâu là cách khai báo và khởi tạo một đối tượng của lớp ‘String’ đúng trong Java?

A. String str = new String(‘Hello’);
B. String str = ‘Hello’;
C. String str = new String(); str = ‘Hello’;
D. Cả A và B đều đúng.

163. Đâu là sự khác biệt chính giữa ‘HashMap’ và ‘HashTable’ trong Java Collections Framework?

A. ‘HashMap’ là đồng bộ hóa (synchronized), còn ‘HashTable’ thì không.
B. ‘HashTable’ là đồng bộ hóa (synchronized), còn ‘HashMap’ thì không.
C. ‘HashMap’ cho phép khóa null, còn ‘HashTable’ thì không.
D. ‘HashMap’ không cho phép giá trị null, còn ‘HashTable’ thì có.

164. Đâu là cách đúng để khai báo một hằng số trong Java?

A. const int MY_CONSTANT = 10;
B. static int MY_CONSTANT = 10;
C. final int MY_CONSTANT = 10;
D. public int MY_CONSTANT = 10;

165. Đâu là cú pháp đúng để bắt một ngoại lệ cụ thể trong Java?

A. try { … } catch (Exception e)
B. try { … } catch (MySpecificException e)
C. try { … } catch MySpecificException
D. try { … } on MySpecificException e

166. Trong Java, ‘package’ là gì?

A. Một đối tượng được tạo ra từ một lớp.
B. Một nhóm các lớp, giao diện và các tài nguyên khác có liên quan, giúp tổ chức mã nguồn và tránh xung đột tên.
C. Một kiểu dữ liệu nguyên thủy.
D. Một phương thức đặc biệt để khởi tạo đối tượng.

167. Đâu là cách khai báo và khởi tạo một mảng số nguyên (integer array) đúng trong Java?

A. int arr[] = new int[5];
B. int arr[5] = {};
C. int[] arr = new int[];
D. int arr = new int[5];

168. Trong Java, từ khóa ‘this’ được sử dụng để làm gì?

A. Để tham chiếu đến lớp cha của lớp hiện tại.
B. Để tham chiếu đến đối tượng hiện tại của lớp.
C. Để gọi một phương thức static.
D. Để khai báo một biến cục bộ.

169. Trong Java, đối tượng nào được sử dụng để đọc dữ liệu từ một luồng đầu vào (input stream)?

A. OutputStream
B. Writer
C. InputStream
D. Reader

170. Trong Java, ‘StringBuilder’ và ‘StringBuffer’ có điểm gì giống nhau?

A. Cả hai đều không thể thay đổi (immutable).
B. Cả hai đều đồng bộ hóa (synchronized).
C. Cả hai đều là các lớp dùng để thao tác với chuỗi một cách hiệu quả và có thể thay đổi (mutable).
D. Cả hai đều có cùng hiệu suất.

171. Trong Java, ‘interface’ khác với ‘abstract class’ ở điểm nào?

A. Interface có thể có biến instance, abstract class thì không.
B. Interface có thể có constructor, abstract class thì không.
C. Interface chỉ có thể chứa phương thức trừu tượng (và default/static từ Java 8), không có biến instance và constructor; Abstract class có thể có cả biến instance và constructor.
D. Abstract class có thể kế thừa nhiều lớp, interface chỉ kế thừa một lớp.

172. Trong Java, ‘interface’ có thể chứa những loại thành phần nào?

A. Chỉ các phương thức trừu tượng.
B. Các phương thức trừu tượng, các hằng số (static final variables), và các phương thức mặc định/tĩnh (từ Java 8 trở đi).
C. Các biến instance và các phương thức đã được triển khai.
D. Chỉ các phương thức đã được triển khai.

173. Trong Java, ‘interface’ có thể kế thừa bao nhiêu interface khác?

A. Chỉ một interface.
B. Tối đa hai interface.
C. Không giới hạn số lượng interface.
D. Chỉ những interface không chứa phương thức mặc định.

174. Khi sử dụng từ khóa ‘throws’ trong một phương thức Java, điều đó có nghĩa là gì?

A. Phương thức đó chắc chắn sẽ ném ra một ngoại lệ.
B. Phương thức đó có thể ném ra các loại ngoại lệ được khai báo, và người gọi phương thức PHẢI xử lý chúng.
C. Phương thức đó tự xử lý tất cả các ngoại lệ có thể xảy ra.
D. Phương thức đó không bao giờ ném ra ngoại lệ.

175. Đâu là đặc điểm chính của một lớp trừu tượng (abstract class) trong Java?

A. Nó có thể được khởi tạo trực tiếp.
B. Nó có thể chứa các phương thức trừu tượng (abstract methods) mà không cần từ khóa ‘abstract’.
C. Nó có thể được kế thừa bởi các lớp khác, và các phương thức trừu tượng của nó PHẢI được triển khai bởi lớp con không trừu tượng.
D. Nó chỉ có thể chứa các phương thức đã được triển khai.

176. Trong Java, từ khóa ‘static’ khi áp dụng cho một biến lớp (class variable) có nghĩa là gì?

A. Biến đó chỉ được truy cập bởi các phương thức static.
B. Biến đó thuộc về một thể hiện (instance) cụ thể của lớp.
C. Biến đó được chia sẻ giữa tất cả các thể hiện (instances) của lớp.
D. Biến đó sẽ bị hủy ngay sau khi phương thức chứa nó kết thúc.

177. Trong Java, khái niệm ‘inheritance’ (kế thừa) cho phép một lớp:

A. Truy cập trực tiếp các biến private của lớp cha.
B. Sở hữu các thuộc tính và hành vi của lớp cha.
C. Được kế thừa bởi nhiều lớp khác nhau.
D. Thay đổi toàn bộ định nghĩa của lớp cha.

178. Trong Java, ‘wrapper classes’ (lớp bao) như ‘Integer’, ‘Double’ được sử dụng để làm gì?

A. Để làm cho các kiểu dữ liệu nguyên thủy trở nên bất biến (immutable).
B. Để biểu diễn các kiểu dữ liệu nguyên thủy như là các đối tượng, cho phép sử dụng chúng trong các Collection hoặc các API yêu cầu đối tượng.
C. Để tăng tốc độ thực thi của các phép toán số học.
D. Để ẩn đi các chi tiết triển khai của các kiểu dữ liệu nguyên thủy.

179. Trong mô hình xử lý ngoại lệ của Java, khối ‘finally’ có vai trò gì?

A. Chỉ thực thi nếu một ngoại lệ xảy ra trong khối ‘try’.
B. Chỉ thực thi nếu không có ngoại lệ nào xảy ra trong khối ‘try’.
C. Luôn thực thi, bất kể có ngoại lệ xảy ra hay không, hoặc ngoại lệ đó có được bắt hay không.
D. Chỉ thực thi nếu ngoại lệ được bắt bởi khối ‘catch’.

180. Phương thức ‘equals()’ trong Java so sánh hai đối tượng dựa trên điều gì?

A. Địa chỉ bộ nhớ của hai đối tượng.
B. Giá trị của các thuộc tính (fields) của hai đối tượng.
C. Sự tồn tại của hai đối tượng trong bộ nhớ heap.
D. Loại của hai đối tượng.

181. Đâu là cách đúng để tạo một đối tượng của lớp `ArrayList` trong Java?

A. ArrayList list = new ArrayList();
B. ArrayList list = new ArrayList();
C. ArrayList list = new ArrayList();
D. ArrayList list = new ArrayList();

182. Đâu là một ví dụ về ‘checked exception’ trong Java?

A. NullPointerException
B. ArrayIndexOutOfBoundsException
C. IOException
D. RuntimeException

183. Đâu là ý nghĩa của từ khóa ‘volatile’ khi áp dụng cho một biến trong Java?

A. Biến đó sẽ luôn được truy cập trực tiếp từ bộ nhớ chính.
B. Biến đó sẽ được ghi vào bộ nhớ cache của CPU.
C. Biến đó có thể được truy cập bởi nhiều luồng cùng lúc.
D. Biến đó sẽ được khởi tạo lại mỗi khi phương thức chứa nó được gọi.

184. Trong Java, phương thức ‘System.out.println()’ dùng để làm gì?

A. Đọc dữ liệu từ bàn phím.
B. Ghi dữ liệu ra màn hình console và tự động thêm một dòng mới.
C. Ghi dữ liệu ra file.
D. Thực hiện một phép tính toán học.

185. Khái niệm ‘encapsulation’ (đóng gói) trong Java đề cập đến việc gì?

A. Tất cả các phương thức của một lớp phải là private.
B. Gói gọn dữ liệu (thuộc tính) và các phương thức xử lý dữ liệu đó vào trong một đơn vị duy nhất (lớp), và kiểm soát quyền truy cập vào dữ liệu đó.
C. Tất cả các lớp phải được đặt trong các gói (packages).
D. Việc kế thừa tất cả các thuộc tính và phương thức từ lớp cha.

186. Trong Java, từ khóa ‘super’ được sử dụng để làm gì?

A. Để tham chiếu đến lớp cha của lớp hiện tại.
B. Để tham chiếu đến đối tượng hiện tại.
C. Để gọi hàm hủy (destructor) của lớp cha.
D. Để khai báo một phương thức không thể bị ghi đè.

187. Trong Java, từ khóa ‘instanceof’ được sử dụng để làm gì?

A. Để kiểm tra xem một đối tượng có phải là một lớp cụ thể hay không.
B. Để ép kiểu một đối tượng sang một lớp khác.
C. Để kiểm tra xem một biến có giá trị null hay không.
D. Để tạo một thể hiện mới của một lớp.

188. Đâu là cách đúng để khai báo một phương thức trả về kiểu ‘void’ trong Java?

A. public return void myMethod()
B. public myMethod() void
C. public void myMethod()
D. public myMethod() {}

189. Đâu là ý nghĩa của từ khóa ‘synchronized’ khi áp dụng cho một phương thức trong Java?

A. Phương thức đó sẽ chạy nhanh hơn.
B. Phương thức đó chỉ có thể được gọi bởi một thread tại một thời điểm, đảm bảo an toàn cho các hoạt động đa luồng.
C. Phương thức đó sẽ luôn trả về cùng một kết quả.
D. Phương thức đó không thể bị ghi đè.

190. Trong Java, phương thức ‘finalize()’ được gọi khi nào?

A. Ngay khi đối tượng không còn được tham chiếu.
B. Khi đối tượng chuẩn bị bị thu gom rác bởi Garbage Collector.
C. Khi đối tượng được tạo ra.
D. Khi phương thức ‘System.gc()’ được gọi.

191. Trong Java, khái niệm ‘polymorphism’ (đa hình) cho phép một đối tượng có thể:

A. Thay đổi kiểu dữ liệu của nó trong quá trình thực thi.
B. Thực hiện hành vi khác nhau dựa trên kiểu thực tế của nó tại thời điểm chạy.
C. Sở hữu nhiều tên khác nhau.
D. Chỉ được kế thừa bởi một lớp duy nhất.

192. Đâu là ý nghĩa của từ khóa ‘throw’ trong Java?

A. Để khai báo rằng một phương thức có thể ném ra ngoại lệ.
B. Để bắt và xử lý một ngoại lệ.
C. Để chủ động ném ra một đối tượng ngoại lệ.
D. Để chỉ định loại ngoại lệ mà một phương thức không thể ném ra.

193. Đâu là cách đúng để khai báo một biến kiểu ‘boolean’ trong Java?

A. boolean flag = ‘true’;
B. boolean flag = 1;
C. boolean flag = true;
D. Boolean flag = new Boolean(true);

194. Điểm khác biệt quan trọng nhất giữa ‘ArrayList’ và ‘LinkedList’ trong Java là gì?

A. ‘ArrayList’ sử dụng mảng để lưu trữ, ‘LinkedList’ sử dụng danh sách liên kết.
B. ‘LinkedList’ hiệu quả hơn cho việc truy cập phần tử theo chỉ số, còn ‘ArrayList’ hiệu quả hơn cho việc thêm/xóa phần tử ở giữa.
C. ‘ArrayList’ không cho phép các phần tử null, còn ‘LinkedList’ thì có.
D. ‘ArrayList’ đồng bộ hóa, còn ‘LinkedList’ thì không.

195. Đâu là một ví dụ về cách sử dụng ‘try-with-resources’ trong Java để đảm bảo tài nguyên được đóng đúng cách?

A. try (BufferedReader br = new BufferedReader(new FileReader(“file.txt”))) { … }
B. try { BufferedReader br = new BufferedReader(new FileReader(“file.txt”)); … } finally { br.close(); }
C. BufferedReader br = new BufferedReader(new FileReader(“file.txt”)); try { … }
D. try { … } catch (IOException e) { br.close(); }

196. Trong Java, ‘Garbage Collection’ (Thu gom rác) là quá trình gì?

A. Quá trình dịch mã Java thành mã máy.
B. Quá trình tự động giải phóng bộ nhớ của các đối tượng không còn được tham chiếu bởi bất kỳ phần nào của chương trình.
C. Quá trình kiểm tra lỗi cú pháp trong mã nguồn.
D. Quá trình biên dịch mã Java thành bytecode.

197. Trong Java, từ khóa ‘final’ được sử dụng cho biến có ý nghĩa gì?

A. Biến đó có thể được gán lại giá trị nhiều lần.
B. Biến đó sẽ trở thành một biến instance.
C. Giá trị của biến đó không thể thay đổi sau khi được gán lần đầu.
D. Biến đó chỉ có thể truy cập từ bên trong lớp của nó.

198. Đâu là một ví dụ về ‘unchecked exception’ trong Java?

A. FileNotFoundException
B. IOException
C. ArithmeticException
D. ClassNotFoundException

199. Khái niệm ‘abstraction’ (trừu tượng hóa) trong Java chủ yếu nhằm mục đích gì?

A. Che giấu hoàn toàn mã nguồn của lớp.
B. Tập trung vào các thuộc tính cần thiết và ẩn đi các chi tiết phức tạp, không cần thiết đối với người dùng.
C. Tạo ra các lớp có thể kế thừa lẫn nhau.
D. Đảm bảo tính đồng bộ hóa trong các ứng dụng đa luồng.

200. Đâu là cách đúng để tạo một Constructor trong Java?

A. Phải có từ khóa ‘constructor’.
B. Phải có tên trùng với tên lớp và không có kiểu trả về (kể cả ‘void’).
C. Phải luôn có ít nhất một tham số.
D. Phải luôn trả về một giá trị.

Số câu đã làm: 0/0
Thời gian còn lại: 00:00:00
  • Đã làm
  • Chưa làm
  • Cần kiểm tra lại

Về Phần Mềm Trọn Đời

Phần Mềm Trọn Đời - Blog cá nhân, chuyên chia sẻ kiến thức về công nghệ, thủ thuật công nghệ, game PC, Mobile, thủ thuật Game, đồ họa, video,…

Gmail: info.phanmemtrondoi@gmail.com

Địa chỉ: 123 Đ Nguyễn Văn Tăng, Long Thạnh Mỹ, Thủ Đức, Hồ Chí Minh 700000, Việt Nam

Giờ làm việc: T2-CN: 09:00 – 17:00

Social

  • LinkedIn
  • Pinterest
  • Tumblr
  • Gravatar
  • Vimeo

Miễn Trừ Trách Nhiệm

Các thông tin trên trang web này chỉ dành cho mục đích tham khảo và tra cứu.

Phần Mềm Trọn Đời không chịu trách nhiệm dưới bất kỳ hình thức nào đối với các thiệt hại, dù là trực tiếp hay gián tiếp, phát sinh từ việc sử dụng hoặc làm theo các nội dung trên trang web.

Phần Mềm Trọn Đời được xây dựng nhằm mục đích thử nghiệm, hỗ trợ học tập và nghiên cứu.

Bộ câu hỏi và đáp án trên trang Trắc nghiệm chỉ mang tính chất tham khảo, nhằm hỗ trợ quá trình học tập và ôn luyện. KHÔNG PHẢI là đề thi chính thức và không đại diện cho bất kỳ tài liệu chuẩn hóa hay kỳ thi cấp chứng chỉ nào từ các cơ quan giáo dục hoặc tổ chức cấp chứng chỉ chuyên ngành. Website không chịu trách nhiệm về tính chính xác của câu hỏi, đáp án cũng như bất kỳ quyết định nào được đưa ra dựa trên kết quả từ bài trắc nghiệm.

Chịu Trách Nhiệm Nội Dung

Blogger Công Nghệ: Phần Mềm Trọn Đời

Mọi vấn đề liên quan đến bản quyền nội dung vui lòng liên hệ qua Gmail: info.phanmemtrondoi@gmail.com

Website Cùng Hệ Thống

All Thing Share - Sharing | Knowledge | Technology | Tips | Pets | Life Tài Liệu Trọn Đời - Thư Viện Tài Liệu Học Tập Miễn Phí Kiến Thức Live - Tin Tức | Kiến Thức Cuộc Sống | Công Nghệ All Thing Pet – We Love Pets Trending New 24h - Cập Nhật Xu Hướng | Trend | News 24h
Copyright © 2025 Phần Mềm Trọn Đời

Bạn ơi!!! Để xem được kết quả, bạn vui lòng làm nhiệm vụ nhỏ xíu này nha

HƯỚNG DẪN TÌM MẬT KHẨU

Đang tải nhiệm vụ...

Bước 1: Mở tab mới và truy cập Google.com. Sau đó tìm kiếm chính xác từ khóa sau:

Bước 2: Tìm và click vào kết quả có trang web giống như hình ảnh dưới đây:

Hướng dẫn tìm kiếm

Bước 3: Kéo xuống cuối trang đó để tìm mật khẩu như hình ảnh hướng dẫn:

Hướng dẫn lấy mật khẩu

Nếu tìm không thấy mã bạn có thể Đổi nhiệm vụ để lấy mã khác nhé.