wayground logo

Free Printable Worksheets

Font size

S
M
L
XL
Worksheets

Câu hỏi trắc nghiệm Lập trình Java

Total questions: 85

Worksheet time: 50mins

Name
Class
Date
1.

Tính đóng gói trong Java là gì?

a)

Cho phép một lớp kế thừa từ một lớp khác.

b)

Ẩn chi tiết triển khai bên trong và chỉ cung cấp giao diện công khai.

c)

Cho phép một phương thức có nhiều hình thức khác nhau.

d)

Tạo ra các đối tượng từ một lớp trừu tượng.

2.

Đâu là cách sử dụng tính đóng gói đúng trong Java?

a)

public class Student { public String name; public int age; }

b)

public class Student { private String name; private int age; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } }

c)

public class Student { private String name; public int age; }

d)

public class Student { public String name; private int age; }

3.

Tính đóng gói có thể được cải thiện bằng cách nào?

a)

Sử dụng các thuộc tính public để truy cập trực tiếp.

b)

Kết hợp các thuộc tính private với các phương thức getter/setter công khai.

c)

Sử dụng từ khóa static cho tất cả các thuộc tính.

d)

Loại bỏ các phương thức setter để ngăn sửa đổi dữ liệu.

4.

Đâu là cách sử dụng tính đóng gói đúng trong Java?

a)

class Employee { public String name; public double salary; }

b)

class Employee { private String name; private double salary; public String getName() { return name; } public void setName(String name) { this.name = name; } public double getSalary() { return salary; } public void setSalary(double salary) { this.salary = salary; } }

c)

class Employee { private String name; public double salary; }

d)

class Employee { public String name; private double salary; }

5.

Trong Java, để đảm bảo tính đóng gói, các thuộc tính của lớp nên được khai báo với từ khóa ________, và truy cập thông qua các phương thức getter/setter.

a)

public

b)

private

c)

protected

d)

static

6.

o tính đóng gói, các thuộc tính của lớp nên được khai báo với từ khóa ________, và truy cập thông qua các phương thức getter/setter.

a)

public

b)

private

c)

protected

d)

static

7.

Từ khóa nào trong Java được sử dụng để thực hiện kế thừa?

a)

implements

b)

extends

c)

super

d)

this

8.

Trong Java, một lớp có thể kế thừa bao nhiêu lớp cha trực tiếp?

a)

Không giới hạn số lượng lớp cha.

b)

Chỉ một lớp cha.

c)

Tối đa hai lớp cha.

d)

Không thể kế thừa lớp cha nào.

9.

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

a)

Tham chiếu đến đối tượng hiện tại của lớp.

b)

Gọi hàm tạo hoặc phương thức của lớp cha.

c)

Ngăn lớp con kế thừa từ lớp cha.

d)

Tạo một đối tượng mới từ lớp cha.

10.

Trong Java, từ khóa ________ được sử dụng để cho phép một lớp con kế thừa các thuộc tính và phương thức của lớp cha.

a)

implements

b)

extends

c)

super

d)

this

11.

Trong Java, để một lớp con có thể gọi hàm tạo của lớp cha, từ khóa ________ được sử dụng.

a)

this

b)

super

c)

extends

d)

new

12.

Trong Java, từ khóa final khi áp dụng cho một lớp có ý nghĩa gì?

a)

Lớp không thể chứa các phương thức trừu tượng.

b)

Lớp không thể được kế thừa bởi lớp khác.

c)

Lớp chỉ có thể chứa các phương thức tĩnh.

d)

Lớp không thể khởi tạo đối tượng.

13.

Đa hình trong Java có thể được thể hiện qua cách nào?

a)

Sử dụng từ khóa private để ẩn dữ liệu.

b)

Ghi đè (override) một phương thức trong lớp con.

c)

Tạo nhiều hàm tạo trong cùng một lớp.

d)

Sử dụng từ khóa final để ngăn ghi đè.

14.

Đoạn code sau có lỗi gì? class Animal { void sound() { System.out.println("Some sound"); } } class Dog extends Animal { void Sound() { System.out.println("Bark"); } }

a)

Không có lỗi, code chạy bình thường.

b)

Phương thức Sound trong lớp Dog không ghi đè được phương thức sound trong lớp Animal.

c)

Lớp Dog không thể kế thừa từ lớp Animal.

d)

Cần sử dụng từ khóa abstract trong lớp Animal.

15.

Đoạn code sau có lỗi gì? class Person { public void introduce() { System.out.println("I am a person"); } } class Student extends Person { public void Introduce() { System.out.println("I am a student"); } }

a)

Không có lỗi, code chạy bình thường.

b)

Phương thức Introduce trong lớp Student không ghi đè phương thức introduce trong lớp Person.

c)

Lớp Student không thể kế thừa từ lớp Person.

d)

Phương thức introduce cần được khai báo là abstract.

16.

Đâu là khai báo hợp lệ cho một phương thức ghi đè trong Java?

a)

Phương thức có cùng tên, cùng danh sách tham số, và cùng kiểu trả về với phương thức trong lớp cha.

b)

Phương thức có cùng tên nhưng danh sách tham số khác với phương thức trong lớp cha.

c)

Phương thức có cùng tên nhưng kiểu trả về khác với phương thức trong lớp cha.

d)

Phương thức được khai báo là static trong lớp cha.

17.

Trong Java, annotation @Override có vai trò gì?

a)

Đánh dấu một phương thức là phương thức tĩnh của lớp.

b)

Chỉ định rằng một phương thức ghi đè phương thức của lớp cha hoặc giao diện.

c)

Ngăn chặn một phương thức bị ghi đè trong lớp con.

d)

Đảm bảo phương thức chỉ được gọi trong cùng một gói.

18.

Lớp trừu tượng trong Java có đặc điểm gì?

a)

Không thể khởi tạo đối tượng trực tiếp.

b)

Có thể chứa các phương thức không trừu tượng.

c)

Có thể được kế thừa bởi các lớp khác.

d)

Tất cả các đáp án trên.

19.

Trong Java, giao diện khác với lớp trừu tượng ở điểm nào?

a)

Giao diện chỉ chứa các phương thức trừu tượng hoặc hằng số.

b)

Một lớp có thể triển khai nhiều giao diện nhưng chỉ kế thừa một lớp trừu tượng.

c)

Giao diện không thể được triển khai bởi các lớp.

d)

Cả A và B đều đúng.

20.

Đâu là cách sử dụng tính trừu tượng đúng trong Java?

a)

Sử dụng lớp trừu tượng hoặc giao diện để định nghĩa các phương thức mà không cần triển khai.

b)

Sử dụng từ khóa private để ẩn các thuộc tính của lớp.

c)

Sử dụng từ khóa final để ngăn ghi đè phương thức.

d)

Tạo nhiều hàm tạo trong cùng một lớp.

21.

Đâu là khai báo hợp lệ cho một phương thức trong giao diện Java (từ Java 8 trở đi)?

a)

public void method();

b)

default void method() { System.out.println("Default"); }

c)

static void method() { System.out.println("Static"); }

d)

Tất cả các đáp án trên.

22.

Trong Java, từ khóa default trong giao diện được sử dụng để làm gì?

a)

Khai báo một phương thức trừu tượng mà lớp triển khai phải cung cấp.

b)

Cung cấp một triển khai mặc định cho phương thức trong giao diện.

c)

Ngăn chặn lớp triển khai ghi đè phương thức trong giao diện.

d)

Đảm bảo phương

23.

Đoạn code sau có hợp lệ không? abstract class Vehicle { abstract void drive(); } class Truck extends Vehicle { void drive() { System.out.println("Driving truck"); } } public class Main { public static void main(String[] args) { Vehicle v = new Truck(); v.drive(); } }

a)

Hợp lệ, in ra: Driving truck

b)

Lỗi biên dịch vì lớp Truck không triển khai phương thức drive.

c)

Lỗi biên dịch vì lớp Vehicle không thể khởi tạo đối tượng.

d)

Lỗi runtime vì tham chiếu Vehicle không thể gọi phương thức drive.

24.

Đâu là khai báo hợp lệ cho một phương thức trong một lớp trừu tượng?

a)

abstract void method();

b)

void method() { System.out.println("Implemented"); }

c)

static void method() { System.out.println("Static"); }

d)

Tất cả các đáp án trên.

25.

Trong Java, một phương thức được khai báo với từ khóa ________ trong một lớp trừu tượng không có thân và buộc lớp con phải triển khai.

a)

final

b)

abstract

c)

static

d)

default

26.

Trong Java, để đánh dấu một phương thức trong giao diện có triển khai mặc định, từ khóa ________ được sử dụng (từ Java 8).

a)

abstract

b)

default

c)

static

d)

final

27.

Trong Java Collections Framework, giao diện Collection là gì?

a)

Một lớp trừu tượng cung cấp các phương thức để quản lý danh sách đối tượng.

b)

Một giao diện gốc định nghĩa các phương thức cơ bản để thao tác với tập hợp đối tượng.

c)

Một giao diện chỉ hỗ trợ các thao tác trên Map.

d)

Một lớp cụ thể để lưu trữ các cặp khóa-giá trị.

28.

Điểm khác biệt chính giữa List và Set trong Java Collections là gì?

a)

List không cho phép phần tử trùng lặp, còn Set thì cho phép.

b)

List duy trì thứ

29.

Điểm khác biệt chính giữa List và Set trong Java Collections là gì?

a)

List không cho phép phần tử trùng lặp, còn Set thì cho phép.

b)

List duy trì thứ tự phần tử, còn Set không duy trì thứ tự.

c)

List cho phép phần tử trùng lặp và duy trì thứ tự, còn Set không cho phép trùng lặp.

d)

List chỉ lưu trữ các phần tử kiểu số, còn Set lưu trữ các chuỗi.

30.

Đoạn code sau có kết quả gì? import java.util.ArrayList; import java.util.List; class Main { public static void main(String[] args) { List names = new ArrayList<>(); names.add("Alice"); names.add("Bob"); names.add("Alice"); System.out.println(names.size()); } }

a)

In ra: 2

b)

In ra: 3

c)

Lỗi biên dịch vì ArrayList không thể chứa chuỗi.

d)

Lỗi runtime vì ArrayList không cho phép phần tử trùng lặp.

31.

Trong Java, lớp HashMap có đặc điểm gì?

a)

Duy trì thứ tự chèn của các cặp khóa-giá trị.

b)

Không cho phép khóa trùng lặp và không đảm bảo thứ tự.

c)

Chỉ cho phép giá trị là các đối tượng kiểu số.

d)

Là một triển khai của giao diện List.

32.

Đoạn code sau có lỗi gì? import java.util.HashSet; import java.util.Set; class Main { public static void main(String[] args) { Set set = new HashSet<>(); set.add("Apple"); set.add("Banana"); set.add("Apple"); System.out.println(set.size()); } }

a)

Không có lỗi, in ra: 3

b)

Không có lỗi, in ra: 2

c)

Lỗi biên dịch vì HashSet không thể chứa chuỗi.

d)

Lỗi runtime vì HashSet không hỗ trợ phương thức size().

33.

Trong Java, giao diện Queue được sử dụng để làm gì?

a)

Lưu trữ các cặp khóa-giá trị theo thứ tự tự nhiên.

b)

Đại diện cho một tập hợp không cho phép phần tử trùng lặp.

c)

Hỗ trợ các thao tác theo mô hình FIFO hoặc ưu tiên.

d)

Cung cấp truy cập ngẫu nhiên tới các phần tử theo chỉ số.

34.

Đoạn code sau có kết quả gì? import java.util.HashMap; import java.util.Map; class Main { public static void main(String[] args) { Map map = new HashMap<>(); map.put(1, "One"); map.put(2, "Two"); map.put(1, "First"); System.out.println(map.get(1)); } }

a)

In ra: One

b)

In ra: First

c)

Lỗi biên dịch vì HashMap không thể chứa khóa kiểu Integer .

d)

Lỗi runtime vì khóa 1 bị trùng lặp.

35.

Trong Java, lớp TreeSet có đặc điểm gì so với HashSet ?

a)

TreeSet không cho phép phần tử null , còn HashSet thì cho phép.

b)

TreeSet duy trì thứ tự tự nhiên hoặc tùy chỉnh, còn HashSet không đảm bảo thứ tự.

c)

TreeSet cho phép phần tử trùng lặp, còn HashSet thì không.

d)

TreeSet chỉ lưu trữ các phần tử kiểu số.

36.

Đoạn code sau có hợp lệ không? import java.util.ArrayList; import java.util.List; class Person { private String name; public Person(String name) { this.name = name; } public String getName() { return name; } } class Main { public static void main(String[] args) { List people = new ArrayList<>(); people.add(new Person("Alice")); people.add(new Person("Bob")); System.out.println(people.get(0).getName()); } }

a)

Hợp lệ, in ra: Alice

b)

Lỗi biên dịch vì ArrayList không thể chứa đối tượng Person .

c)

Lỗi runtime vì ArrayList không hỗ trợ phương thức get() .

d)

Lỗi runtime vì Person không triển khai giao diện Comparable .

37.

Trong Java, khi nào nên sử dụng LinkedList thay vì ArrayList ?

a)

Khi cần truy cập ngẫu nhiên nhanh theo chỉ số.

b)

Khi cần thêm/xóa phần tử thường xuyên ở đầu hoặc giữa danh sách.

c)

Khi cần lưu trữ các cặp khóa-giá trị.

d)

Khi cần duy trì thứ tự tự nhiên của các phần tử.

38.

Trong Java Collections Framework, giao diện ________ là giao diện gốc định nghĩa các phương thức cơ bản như add(), remove(), và size() dể thao tác với tập hợp đối tượng.

a)

List

b)

Set

c)

Map

d)

Collection

39.

Trong Java Collections, lớp ________ là một triển khai của giao diện List, sử dụng mảng động để lưu trữ phần tử và hiệu quả cho truy cập ngẫu nhiên.

a)

ArrayList

b)

LinkedList

c)

HashSet

d)

TreeSet

40.

Trong Java Collections, giao diện ________ được sử dụng để lưu trữ các cặp khóa-giá trị, trong đó mỗi khóa là duy nhất.

a)

List

b)

Set

c)

Map

d)

Queue

41.

Trong Java Collections, lớp ________ là một triển khai của giao diện Set, không cho phép phần tử trùng lặp và duy trì thứ tự tự nhiên của các phần tử.

a)

HashSet

b)

TreeSet

c)

LinkedHashSet

d)

ArrayList

42.

Trong Java Collections, lớp ________ là một triển khai của giao diện Map, duy trì thứ tự chèn của các cặp khóa-giá trị.

a)

HashMap

b)

TreeMap

c)

LinkedHashMap

d)

Hashtable

43.

Trong Java Collections, lớp ________ là một triển khai của giao diện List, sử dụng danh sách liên kết đôi và hiệu quả cho thêm/xóa phần tử ở đầu hoặc giữa.

a)

ArrayList

b)

LinkedList

c)

HashSet

d)

TreeSet

44.

Trong Java Collections, lớp ________ là một triển khai của giao diện Set, không cho phép phần tử trùng lặp và không đảm bảo thứ tự phần tử.

a)

HashSet

b)

TreeSet

c)

LinkedHashSet

d)

ArrayList

45.

Trong Java, ngoại lệ có thể được xử lý trong OOP như thế nào?

a)

Sử dụng khối try-catch trong các phương thức.

b)

Ném ngoại lệ bằng từ khóa throws trong khai báo phương thức.

c)

Kế thừa lớp Exception để tạo ngoại lệ tùy chỉnh.

d)

Tất cả các đáp án trên.

46.

Đâu là cách sử dụng ngoại lệ tùy chỉnh đúng trong Java?

a)

Kế thừa từ lớp Exception hoặc RuntimeException.

b)

Sử dụng khối try-catch để bắt ngoại lệ tùy chỉnh.

47.

Đâu là cách sử dụng ngoại lệ tùy chỉnh đúng trong Java?

a)

Kế thừa từ lớp Exception hoặc RuntimeException.

b)

Sử dụng khối try-catch để bắt ngoại lệ tùy chỉnh.

c)

Ném ngoại lệ tùy chỉnh bằng từ khóa throw.

d)

Tất cả các đáp án trên.

48.

Trong Java, để tạo một ngoại lệ tùy chỉnh, một lớp phải kế thừa từ lớp ________ hoặc RuntimeException.

a)

Throwable

b)

Exception

c)

Error

d)

Object

49.

Trong Java, mẫu thiết kế Singleton được sử dụng để làm gì?

a)

Đảm bảo một lớp chỉ có một thể hiện duy nhất và cung cấp điểm truy cập toàn cục.

b)

Tạo ra nhiều đối tượng từ một lớp với các cấu hình khác nhau.

c)

Tự động quản lý vòng đời của các đối tượng.

d)

Ngăn chặn việc kế thừa từ một lớp.

50.

Trong Java, mẫu thiết kế Factory Method được sử dụng để làm gì?

a)

Đảm bảo một lớp chỉ có một thể hiện duy nhất.

b)

Tạo đối tượng mà không cần chỉ định chính xác lớp của đối tượng.

c)

Cho phép một đối tượng thay đổi hành vi khi trạng thái bên trong thay đổi.

d)

Cung cấp một giao diện chung để truy cập nhiều đối tượng.

51.

Trong Java, mẫu thiết kế Observer được sử dụng để làm gì?

a)

Tạo đối tượng mà không cần chỉ định chính xác lớp của đối tượng.

b)

Cho phép một đối tượng thông báo các đối tượng khác khi trạng thái của nó thay đổi.

c)

Đảm bảo một lớp chỉ có một thể hiện duy nhất.

d)

Cung cấp một giao diện chung để truy cập nhiều đối tượng.

52.

Trong Java, mẫu thiết kế Decorator được sử dụng để làm gì?

a)

Đảm bảo một lớp chỉ có một thể hiện duy nhất.

b)

Mở rộng chức năng của một đối tượng một cách linh hoạt mà không cần sửa đổi lớp gốc.

c)

Tạo đối tượng mà không cần chỉ định chính xác lớp của đối tượng.

d)

Cho phép một đối tượng thông báo các đối tượng khác khi trạng thái thay đổi.

53.

Trong Java, mẫu thiết kế (a)   đảm bảo rằng một lớp chỉ có một thể hiện duy nhất và cung cấp một điểm truy

54.

Trong Java, mẫu thiết kế ________ đảm bảo rằng một lớp chỉ có một thể hiện duy nhất và cung cấp một điểm truy cập toàn cục.

a)

Singleton

b)

Factory Method

c)

Observer

d)

Decorator

55.

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

a)

Kiểm tra xem một đối tượng có thuộc một lớp hoặc giao diện cụ thể hay không.

b)

So sánh hai đối tượng để kiểm tra xem chúng có cùng giá trị hay không.

c)

Tạo một đối tượng mới từ một lớp.

d)

Kiểm tra xem một lớp có thể kế thừa từ một lớp khác hay không.

56.

Lớp nội tại (Inner Class) trong Java có đặc điểm gì?

a)

Có thể truy cập các thành viên private của lớp bao quanh.

b)

Phải được khai báo là static để tồn tại độc lập.

c)

Không thể chứa các phương thức instance.

d)

Không thể được sử dụng trong các lớp con của lớp bao quanh.

57.

Lớp anonymous trong Java được sử dụng như thế nào?

a)

Là một lớp tĩnh được khai báo bên trong một lớp khác.

b)

Là một lớp không có tên, thường được sử dụng để triển khai giao diện hoặc ghi đè phương thức một lần.

c)

Là một lớp trừu tượng không thể khởi tạo đối tượng.

d)

Là một lớp chỉ có thể chứa các phương thức tĩnh.

58.

Trong Java, từ khóa volatile được sử dụng trong ngữ cảnh OOP để làm gì?

a)

Đảm bảo rằng giá trị của một biến được đồng bộ hóa giữa các luồng.

b)

Ngăn chặn một biến bị thay đổi sau khi khởi tạo.

c)

Cho phép một biến chỉ được truy cập trong cùng một lớp.

d)

Đánh dấu một biến là thuộc tính tĩnh của lớp.

59.

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

a)

Ngăn chặn một biến được ghi đè trong lớp con.

b)

Đánh dấu một biến không được tuần tự hóa khi lưu đối tượng.

c)

Đảm bảo một biến chỉ được truy cập trong cùng một lớp.

d)

Cho phép một biến được chia sẻ giữa các luồng.

60.

Trong Java, enum được sử dụng trong OOP như thế nào?

a)

Là một lớp trừu tượng không thể khởi tạo trực tiếp.

b)

Là một kiểu dữ liệu đặc biệt để định nghĩa tập hợp các hằng số có tên.

c)

Là một giao diện tự động triển khai các phương thức trừu tượng.

d)

Là một lớp chỉ chứa các phương thức tĩnh.

61.

Đâu là khai báo hợp lệ cho một enum trong Java?

a)

enum Color { RED, GREEN, BLUE; }

b)

enum Color { RED("red"), GREEN("green"); private String value; Color(String value) { this.value = value; } public String getValue() { return value; } }

c)

enum Color { RED, GREEN; public void print() { System.out.println("Color"); } }

d)

Tất cả các đáp án trên.

62.

Trong Java, từ khóa synchronized có đặc điểm gì?

a)

Chỉ có thể được gọi bởi một đối tượng tại một thời điểm.

b)

Đảm bảo chỉ một luồng có thể thực thi phương thức tại một thời điểm.

c)

Ngăn chặn phương thức bị ghi đè trong lớp con.

d)

Làm cho phương thức chạy nhanh hơn.

63.

Trong Java, từ khóa ________ được sử dụng để kiểm tra xem một đối tượng có thuộc một lớp hoặc giao diện cụ thể hay không.

a)

instanceof

b)

extends

c)

implements

d)

super

64.

Trong Java, từ khóa ________ được sử dụng để đảm bảo rằng chỉ một luồng có thể thực thi một phương thức hoặc khối mã tại một thời điểm, tránh xung đột dữ liệu.

a)

volatile

b)

synchronized

c)

final

d)

transient

65.

Trong Java, từ khóa ________ được sử dụng để đánh dấu một biến không được tuần tự hóa khi lưu đối tượng vào luồng hoặc tệp.

a)

volatile

b)

transient

c)

final

d)

static

66.

Đoạn code sau có kết quả gì?

4 lines
67.

Đoạn code sau có kết quả gì? interface Flyable { void fly(); } class Bird implements Flyable { public void fly() { System.out.println("Bird is flying"); } } public class Main { public static void main(String[] args) { Flyable bird = new Bird(); bird.fly(); } }

a)

In ra: Bird is flying

b)

Lỗi biên dịch vì giao diện không thể khởi tạo đối tượng.

c)

Lỗi biên dịch vì phương thức fly không được triển khai.

d)

Lỗi runtime vì tham chiếu Flyable không thể gọi phương thức fly .

68.

Đoạn code sau có lỗi gì? abstract class Vehicle { abstract void move(); } class Car extends Vehicle { void Move() { System.out.println("Car is moving"); } }

a)

Không có lỗi, code chạy bình thường.

b)

Phương thức Move trong lớp Car không ghi đè phương thức move trong lớp Vehicle .

c)

Lớp Car phải được khai báo là abstract .

d)

Phương thức move trong lớp Vehicle không thể là abstract .

69.

Đoạn code sau có lỗi gì? interface Movable { void move(); } class Robot implements Movable { public void Move() { System.out.println("Robot is moving"); } }

a)

Không có lỗi, code chạy bình thường.

b)

Phương thức Move trong lớp Robot không triển khai phương thức move của giao diện Movable .

c)

Giao diện Movable không thể chứa phương thức trừu tượng.

d)

Lớp Robot phải được khai báo là abstract .

70.

Đoạn code sau có kết quả gì? interface Printable { void print(); } class Document implements Printable { public void print() { System.out.println("Printing document"); } } class Main { public static void main(String[] args) { Printable p = new Document(); p.print(); } }

a)

In ra: Printing document

b)

Lỗi biên dịch vì giao diện Printable không thể khởi tạo đối tượng.

c)

Lỗi biên dịch vì lớp Document không triển khai phương thức print .

d)

Lỗi runtime vì tham chiếu Printable không thể gọi phương thức print .

71.

Đoạn code sau có hợp lệ không? class Shape { public void draw() { System.out.println("Drawing shape"); } } class Circle extends Shape { public void draw() {

4 lines
72.

Đoạn code sau có hợp lệ không? class Shape { public void draw() { System.out.println("Drawing shape"); } } class Circle extends Shape { public void draw() { System.out.println("Drawing circle"); } } public class Main { public static void main(String[] args) { Shape[] shapes = {new Shape(), new Circle()}; for (Shape s : shapes) { s.draw(); } } }

a)

Hợp lệ, in ra: Drawing shape Drawing circle

b)

Hợp lệ, in ra: Drawing shape Drawing shape

c)

Lỗi biên dịch vì mảng Shape[] không thể chứa đối tượng Circle

d)

Lỗi runtime vì phương thức draw không được gọi đúng.

73.

Đoạn code sau có kết quả gì? interface Movable { void move(); } class Car implements Movable { public void move() { System.out.println("Car is moving"); } } class Main { public static void main(String[] args) { Movable vehicle = new Car(); vehicle.move(); } }

a)

In ra: Car is moving

b)

Lỗi biên dịch vì giao diện Movable không thể khởi tạo đối tượng.

c)

Lỗi biên dịch vì lớp Car không triển khai phương thức move .

d)

Lỗi runtime vì tham chiếu Movable không thể gọi phương thức move .

74.

Đoạn code sau có hợp lệ không? interface Drawable { void draw(); } class Circle implements Drawable { public void draw() { System.out.println("Drawing circle"); } } class Main { public static void main(String[] args) { Drawable[] drawables = {new Circle()}; for (Drawable d : drawables) { d.draw(); } }

a)

Hợp lệ, in ra: Drawing circle

b)

Lỗi biên dịch vì mảng Drawable[] không thể chứa đối tượng Circle .

c)

Lỗi biên dịch vì lớp Circle không triển khai phương thức draw .

d)

Lỗi runtime vì tham chiếu Drawable không thể gọi phương thức draw .

75.

Trong Java, từ khóa ________ được sử dụng để khai báo một lớp không thể được khởi tạo trực tiếp và có thể chứa các phương thức trừu tượng.

a)

final

b)

abstract

c)

static

d)

private

76.

Trong Java Collections Framework, giao diện ________ được sử dụng để đại diện cho một tập hợp các phần tử khô

4 lines
77.

Trong Java Collections Framework, giao diện ________ được sử dụng để đại diện cho một tập hợp các phần tử không cho phép trùng lặp.

a)

List

b)

Set

c)

Map

d)

Queue

78.

Trong Java, để ngăn một phương thức bị ghi đè trong lớp con, từ khóa ________ được sử dụng.

a)

final

b)

volatile

c)

synchronized

d)

abstract

79.

Trong Java, từ khóa ________ được sử dụng để ném một ngoại lệ trong một phương thức.

a)

throws

b)

throw

c)

try

d)

catch

80.

Trong Java Collections, lớp ________ là một triển khai của giao diện Map, sắp xếp các cặp khóa-giá trị theo thứ tự tự nhiên của khóa.

a)

HashMap

b)

LinkedHashMap

c)

TreeMap

d)

Hashtable

81.

Trong Java, mẫu thiết kế ________ cho phép mở rộng chức năng của một đối tượng mà không cần sửa đổi mã nguồn của lớp gốc.

a)

Singleton

b)

Factory Method

c)

Decorator

d)

Observer

82.

Trong Java, từ khóa ________ được sử dụng để gọi phương thức hoặc hàm tạo của lớp cha từ lớp con.

a)

this

b)

super

c)

extends

d)

implements

83.

Trong Java Collections, giao diện ________ hỗ trợ các thao tác truy cập ngẫu nhiên theo chỉ số và cho phép phần tử trùng lặp.

a)

Set

b)

List

c)

Map

d)

Queue

84.

Trong Java, để đánh dấu một biến chỉ có thể được gán giá trị một lần và không thể thay đổi sau đó, từ khóa ________ được sử dụng.

a)

static

b)

final

c)

volatile

d)

transient

85.

Trong Java, từ khóa ________ được sử dụng để kiểm tra xem một đối tượng có phải là thể hiện của một lớp hoặc giao diện cụ thể hay không.

a)

instanceof

b)

extends

c)

implements

d)

super