Search Header Logo
Ôn tập Java

Ôn tập Java

Assessment

Presentation

Information Technology (IT)

Professional Development

Practice Problem

Easy

Created by

Hiển Trần

Used 4+ times

FREE Resource

1 Slide • 221 Questions

1

Ôn tập JavaCore

By Trần Hiển Vinh

2

Multiple Choice

Trong Java, toán tử == dùng để làm gì khi so sánh 2 object?

1
Toán tử == so sánh thuộc tính của hai object.
2
Toán tử == kiểm tra kiểu dữ liệu của hai object.
3
Toán tử == so sánh giá trị của hai object.
4

Toán tử == so sánh địa chỉ vùng nhớ của hai object.

3

Multiple Choice

Question image

Kết quả của đoạn code sau là gì?

1
false, true
2
true, false
3
false, false
4
true, true

4

Multiple Choice

Mục đích chính của phương thức equals() là gì?

1
So sánh thời gian tạo của hai đối tượng.
2
So sánh nội dung của hai đối tượng.
3
So sánh địa chỉ bộ nhớ của hai đối tượng.
4
So sánh kiểu dữ liệu của hai đối tượng.

5

Multiple Choice

Tại sao cần override cả hashCode() khi đã override equals()?

1
Cần override hashCode() để tăng tốc độ tìm kiếm trong danh sách.
2

Để đảm bảo hoạt động đúng trong các cấu trúc dữ liệu như HashMap, HashSet

3
hashCode() không cần thiết nếu không sử dụng trong cấu trúc dữ liệu.
4
Chỉ cần override equals() là đủ để so sánh các đối tượng.

6

Multiple Choice

Nếu hai object a và b trả về a.equals(b) == true, thì điều nào sau đây bắt buộc phải đúng?

1
a.equals(b) is undefined
2
a.equals(b) == false
3
a.hashCode() != b.hashCode()
4
a.hashCode() == b.hashCode()

7

Multiple Choice

Đâu là hệ quả nếu bạn override equals() nhưng không override hashCode()?

1

Không ảnh hưởng gì

2

Object có thể không hoạt động đúng khi đưa vào HashSet hoặc HashMap

(hai object có equals() là true nhưng hashCode() khác nhau → HashSet sẽ chứa cả 2.)

3

Object bị lỗi runtime

4

equals() sẽ không được gọi nữa

8

Multiple Choice

Đoạn code nào override equals() đúng cách?

1
2
3
4

Tất cả đều đúng

9

Multiple Choice

Điều nào đúng khi dùng final với biến?

1

Có thể gán lại nhiều lần

2

Không thể khởi tạo

3

Chỉ được gán giá trị một lần duy nhất

4

Có thể thay đổi bất cứ lúc nào

10

Multiple Choice

Question image

Đoạn code sau có lỗi gì không?

1

Không lỗi

2

Lỗi khi biên dịch – không thể gán lại x

3

Lỗi runtime

4

x sẽ bằng 10

11

Multiple Choice

Question image

Khi khai báo final với object:

1

Không lỗi gì

2

Không thể thay đổi thuộc tính của object s

3

Lỗi tại dòng gán lại object s

4

s có thể bị kế thừa

12

Multiple Choice

Khi khai báo phương thức là final, điều gì xảy ra?

1

Phương thức đó không thể bị gọi

2

Phương thức đó có thể bị override

3

Phương thức đó không thể bị override

4

Phương thức đó chạy chậm hơn

13

Multiple Choice

Lớp final dùng để làm gì?

1

Cho phép các lớp khác kế thừa

2

Cho phép các lớp khác kế thừa

3

Ngăn chặn kế thừa từ lớp đó

4

Là lớp trừu tượng

14

Multiple Choice

Biến nào sau đây không có giá trị mặc địnhphải gán trước khi sử dụng?

1

Biến instance

2

Biến static

3

Biến local

4

Tất cả đều có giá trị mặc định

15

Multiple Choice

Biến static có thời gian sống như thế nào?

1

Tồn tại trong thời gian method đang chạy

2

Gắn với object và bị xóa khi object bị hủy

3

Gắn với class và tồn tại đến khi chương trình kết thúc

4

Gắn với thread

16

Multiple Choice

Đâu là kết luận đúng về biến instance?

1

Chia sẻ giữa tất cả các object

2

Không thể có giá trị mặc định

3

Gắn với từng object riêng biệt

4

Chỉ truy cập được từ static method

17

Multiple Choice

Question image

Kết quả của đoạn code sau là gì?

1

Chương trình chạy bình thường

2

Biến z có giá trị mặc định là 0

3

Biến z gây lỗi biên dịch nếu in ra vì chưa được gán

4

Biến x và y gây lỗi

18

Multiple Choice

Biến nào sau đây có thể truy cập trực tiếp trong phương thức static?

1

Biến local

2

Biến instance

3

Biến static

4

Tất cả đều không

19

Multiple Choice

Đoạn code nào sau đây sẽ gây lỗi biên dịch?

1
2
3
4

20

Multiple Choice

Question image

Kết quả của đoạn code sau là gì?

1

true

2

false

3

lỗi biên dich

4

lỗi runtime

21

Multiple Choice

Question image

Kết quả của đoạn code sau là gì?

1

true

2

false

3

lỗi biên dich

4

lỗi runtime

22

Multiple Choice

Autoboxing trong Java là gì?

1

Chuyển từ String sang int

2

Tự động chuyển từ int sang Integer

3

Ép kiểu thủ công

4

Tạo đối tượng Integer mới bằng tay

23

Multiple Choice

Unboxing có thể gây lỗi nào sau đây?

1

Lỗi biên dịch nếu dùng sai kiểu

2

NullPointerException nếu unbox từ null

3

Không gây lỗi

4

Không tồn tại unboxing trong Java

24

Multiple Choice

Lý do nào khiến Integer a = 1000; Integer b = 1000; a == b trả về false

1

Giá trị vượt quá phạm vi cache

2

Java không hỗ trợ autoboxing với số lớn

3

Lỗi khi biên dịch

4

So sánh == luôn sai

25

Multiple Choice

Question image

Đoạn code sau in ra gì?

1

Try

2

Try → Finally

3

Try → Catch

4

Catch → Finally

26

Multiple Choice

Khi có ngoại lệ xảy ra và được catch, luồng nào chạy?

1

try → finally

2

try → catch

3

try → catch → finally

4

catch → finally → try

27

Multiple Choice

Điều gì xảy ra nếu có return trong try

1

finally bị bỏ qua

2

return chạy rồi kết thúc method

3

finally vẫn chạy trước khi return

4

Method không bao giờ kết thúc

28

Multiple Choice

Question image

Kết quả của đoạn code sau là gì?

1

trả về 1

2

trả về 2

3

lỗi biên dịch

4

trả về 0

29

Multiple Choice

Trong Java, khối finally có thể không được thực thi trong trường hợp nào?

1

Khi có exception

2

Khi có return trong try

3

Khi có System.exit(0)

4

Khi không có exception

30

Multiple Choice

JVM là gì và vai trò của nó?

1

Trình biên dịch mã nguồn Java

2

Chuyển mã Java sang mã máy và chạy chương trình

3

Giao diện đồ họa trong Java

4

Công cụ để viết code Java

31

Multiple Choice

JRE bao gồm những thành phần nào?

1

Chỉ có thư viện Java

2

JDK và JVM

3

JVM và các thư viện Java cần thiết (java.Lang, java.Utils)

4

JVM và javac compiler

32

Multiple Choice

JDK dùng để làm gì?

1

Chỉ để chạy chương trình Java

2

Biên dịch và phát triển ứng dụng Java

3

Chỉ để cài đặt thư viện

4

Chạy ứng dụng Java nhưng không biên dịch được

33

Multiple Choice

Công cụ nào nằm trong JDK nhưng không có trong JRE?

1

JVM

2

java command

3

javac compiler

4

Thư viện chuẩn như java.util

34

Multiple Choice

Khi bạn gõ java Hello, chuyện gì xảy ra?

1

Mã nguồn được biên dịch

2

JVM thực thi mã .java

3

JVM thực thi mã .class được biên dịch sẵn

4

javac được chạy tự động

35

Multiple Choice

Trình tự đúng trong quá trình chạy một chương trình Java là?

1

JVM → Viết code → JRE → In kết quả

2

Viết code → JRE → javac → JVM

3

Viết code → JDK (javac) → tạo .class → JRE → JVM → chạy

4

JDK → JVM → Viết code → In kết quả

36

Multiple Choice

Tại sao Java chạy được trên nhiều nền tảng?

1

Vì JVM dịch mã Java thành bytecode chuẩn

2

Vì JDK được viết bằng C++

3

Vì Java là ngôn ngữ thông dịch

4

Vì JVM chuyển bytecode thành mã máy phù hợp với hệ điều hành

37

Multiple Choice

Tại sao Java không phụ thuộc vào nền tảng?

1

Vì Java dùng file .exe

2

Vì Java dùng trình biên dịch riêng cho từng hệ điều hành

3

Vì JVM dịch bytecode thành mã máy tương ứng với hệ điều hành

4

Vì Java không cần biên dịch mã nguồn

38

Multiple Choice

Trình biên dịch javac trong Java tạo ra gì?

1

File .exe

2

File .java

3

File .class chứa bytecode

4

File .jar

39

Multiple Choice

Điều gì giúp một chương trình Java chạy được trên Windows, Linux và Mac mà không cần sửa mã nguồn?

1

JDK

2

Trình duyệt web

3

JVM riêng cho từng hệ điều hành

4

Máy ảo C++

40

Multiple Choice

Câu khẩu hiệu nổi tiếng nào đúng với Java?

1

"Code once, compile everywhere"

2

"Write once, debug everywhere"

3

"Write once, run anywhere"

4

"Compile once, crash anywhere"

41

Multiple Choice

JVM có vai trò gì?

1

Dịch mã nguồn thành bytecode

2

Dịch bytecode thành mã máy phù hợp với nền tảng đang chạy

3

Quản lý bộ nhớ hệ điều hành

4

Tăng tốc độ mạng

42

Multiple Choice

Bộ nhớ nào dùng để lưu đối tượng được tạo bằng new?

1

Stack

2

Heap

3

Static

4

Thread

43

Multiple Choice

Đoạn khai báo nào là ví dụ về sử dụng Stack memory?

1

new Student("Nam")

2

Person p = new Person();

3

int a = 10;

4

Cả B và C

44

Multiple Choice

Điều nào sau đây đúng về Stack memory?

1

Được chia thành Young/Old Generation

2

Dùng chung giữa các thread

3

Có nguyên tắc LIFO

4

Có Garbage Collector

45

Multiple Choice

Đối tượng được lưu trong Heap có đặc điểm gì?

1

Bị xóa khi hàm kết thúc

2

Chỉ sử dụng trong một method

3

Có thể truy cập toàn chương trình nếu còn tham chiếu

4

Chạy chậm hơn Stack và không bao giờ bị GC

46

Multiple Choice

Cơ chế quản lý nào dùng trong Stack?

1

FIFO

2

LIFO

3

Round-Robin

4

Copy-on-write

47

Multiple Choice

Java sử dụng cơ chế truyền tham số nào?

1

Truyền theo giá trị (pass-by-value)

2

Truyền theo tham chiếu (pass-by-reference)

3

Cả hai

4

Tùy kiểu dữ liệu

48

Multiple Choice

Điều gì xảy ra khi truyền một biến nguyên thủy (int, float,...) vào method?

1

Đối tượng thực sự được truyền vào và thay đổi

2

Một bản sao giá trị được truyền vào

3

Tham chiếu đến biến thật được truyền vào

4

Không có gì được truyền

49

Multiple Choice

Question image

Đoạn code sau in ra gì?

1

10

2

20

3

0

4

Lỗi biên dịch

50

Multiple Choice

Question image

Kết quả của đoạn code sau là gì?

1

10

2

20

3

0

4

Lỗi biên dịch

51

Multiple Choice

Truyền một biến kiểu object (Person, Student,...) vào method có nghĩa là:

1

Sao chép toàn bộ đối tượng

2

Truyền tham chiếu đến object thật

3

Không thể thay đổi object bên trong

4

Không có gì xảy ra

52

Multiple Choice

Question image

Đoạn code sau in ra gì?

1

Tom

2

Bingo

3

null

4

Lỗi biên dịch

53

Multiple Choice

Question image

Đoạn code sau in ra gì?

1

Max

2

Lucy

3

null

4

Lỗi biên dịch

54

Multiple Choice

Question image

Điều gì xảy ra nếu ta gán lại biến tham chiếu bên trong hàm?

1

p bên ngoài bị thay đổi

2

p bên ngoài vẫn giữ nguyên

3

Object bên ngoài bị xóa

4

Không thể gán lại trong hàm

55

Multiple Choice

Tại sao thay đổi trường (field) của object bên trong hàm lại phản ánh ra ngoài?

1

Vì object được truyền theo tham chiếu

2

Vì địa chỉ object được copy, trỏ đến cùng vùng heap

3

Vì object là static

4

Java truyền object theo con trỏ

56

Multiple Choice

Java có truyền theo tham chiếu thực sự (giống C++) không?

1

Có, luôn là truyền tham chiếu

2

Không, Java chỉ truyền giá trị (dù là biến tham chiếu)

3

Có nếu là kiểu object

4

Java không truyền gì cả

57

Multiple Choice

Khi truyền một biến tham chiếu, ta có thể:

1

Thay đổi thuộc tính của object được tham chiếu

2

Gán lại biến tham chiếu để trỏ sang object khác (và thay đổi bên ngoài)

3

Không thể thay đổi gì cả

4

Gây lỗi runtime

58

Multiple Choice

Question image

Đoạn code sau sẽ in gì?

1

Bye

2

Hello

3

Lỗi

4

null

59

Multiple Choice

Truyền biến object vào method và thay đổi thuộc tính bên trong method sẽ ảnh hưởng ra ngoài?

1

Đúng

2

Sai

3

Chỉ khi dùng final

4

Chỉ khi dùng static

60

Multiple Choice

Question image

Đoạn code sau sẽ in gì?

1

Hello

2

Hello world

3

Lỗi runtime

4

Không xác định

61

Multiple Choice

Câu nào mô tả đúng cơ chế truyền tham số trong Java?

1

Java truyền bản sao của object thật

2

Java truyền bản sao của giá trị tham chiếu (reference value)

3

Java truyền con trỏ thật đến vùng nhớ

4

Java truyền tên của object

62

Multiple Choice

Đoạn code nào không ảnh hưởng đến object gốc?

1
2
3

Java truyền con trỏ thật đến vùng nhớ

4

B và C

63

Multiple Choice

Muốn thay đổi hoàn toàn object trong phương thức và phản ánh ra ngoài, ta nên làm gì?

1

Truyền đối tượng và thay đổi trường bên trong

2

Truyền nguyên thủy rồi return

3

Truyền object và gán lại object mới

4

Không thể làm được điều đó trong Java

64

Multiple Choice

Question image

Điều gì xảy ra nếu truyền null vào một phương thức?

1

Gây lỗi NullPointerException

2

p sẽ trở thành object mới

3

Tạo biến local p

4

Không lỗi vì p là đối tượng

65

Multiple Choice

Vì sao không thể override phương thức main()?

1

Vì nó là final

2

Vì nó là private

3

Vì nó là static

4

Vì JVM không cho phép

66

Multiple Choice

Điều gì xảy ra nếu bạn định nghĩa một phương thức main(int x)?

1

JVM sẽ gọi phương thức đó khi chạy

2

JVM sẽ báo lỗi

3

JVM sẽ gọi main(String[] args), còn main(int) chỉ chạy nếu tự gọi

4

Không thể có nhiều main() trong một class

67

Multiple Choice

Phát biểu nào đúng về phương thức static trong Java?

1

Có thể override như bình thường

2

Không thể override, nhưng có thể overload

3

Không thể overload

4

Không thể khai báo lại

68

Multiple Choice

Câu nào là một ví dụ hợp lệ của overload phương thức main()?

1

public void main(String args)

2

public static void main()

3

public static void main(int[] args)

4

Cả B và C

69

Multiple Choice

JVM tìm và gọi phương thức nào để bắt đầu thực thi chương trình?

1

public static void start()

2

public static void main(String[] args)

3

public void main()

4

public void run(String[] args)

70

Multiple Choice

Tại sao phương thức main() phải là static?

1

Vì nó là quy tắc đặt tên

2

Vì JVM không thể tạo object để gọi method non-static trước khi chương trình bắt đầu

3

Vì nó giúp chương trình chạy nhanh hơn

4

Vì static method dễ viết hơn

71

Multiple Choice

Điều gì sẽ xảy ra nếu bạn bỏ từ khóa static trong phương thức main()?

1

Chương trình vẫn chạy bình thường

2

JVM tự thêm từ khóa static

3

JVM sẽ báo lỗi và không khởi chạy chương trình

4

Sẽ chạy chậm hơn

72

Multiple Choice

Có thể gọi non-static method từ main() không?

1

Không bao giờ được

2

Chỉ khi dùng super

3

Có, nếu tạo object để gọi

4

Có, nếu dùng static block

73

Multiple Choice

Đâu là điểm bắt đầu thực thi chương trình Java?

1

public void main(String[])

2

public static void start()

3

public static void main(String[] args)

4

public static void run()

74

Multiple Choice

Có thể overload phương thức main() được không?

1

Không

2

Có, nhưng JVM chỉ gọi phiên bản với String[] args

3

Có, và JVM sẽ tự chọn phương thức phù hợp

4

Chỉ khi dùng static block

75

Multiple Choice

Điều nào đúng về static method trong Java?

1

Có thể override như method bình thường

2

Không thể override, nhưng có thể overload

3

Không thể override, nhưng có thể hide (che khuất)

4

B và C đều đúng

76

Multiple Choice

Question image

Kết quả đoạn code sau là gì?

1

A

2

B

3

Lỗi biên dịch

4

Không xác định

77

Multiple Choice

Tại sao không thể override static method?

1

Vì JVM không hỗ trợ

2

Vì static method thuộc object

3

Vì static method không thể bị gọi qua object

4

Vì static method được gắn kết sớm (early binding)

78

Multiple Choice

Nếu bạn khai báo lại một static method trong subclass, điều gì xảy ra?

1

JVM dùng method của superclass

2

JVM sẽ override như bình thường

3

JVM sẽ ẩn method gốc bằng method mới (method hiding)

4

Chạy cả 2 method

79

Multiple Choice

Bạn có thể overload một static method không?

1

2

Không

3

Chỉ nếu cùng tham số

4

Chỉ nếu khác kiểu trả về

80

Multiple Choice

Câu nào là định nghĩa hợp lệ cho phương thức main() trong Java?

1

public static int main(String[] args)

2

static public void main(String[] args)

3

private static void main(String[] args)

4

public void main(String[] args)

81

Multiple Choice

Có thể hoán đổi vị trí public và static trong định nghĩa main() không?

1

Không được

2

Được, nhưng chỉ trong Java 11 trở lên

3

Được, vì thứ tự modifier không quan trọng

4

Được nếu thêm từ khóa final

82

Multiple Choice

Tại sao main() phải là static?

1

Để sử dụng biến toàn cục

2

Để JVM gọi method mà không cần tạo object

3

Để overload method dễ hơn

4

Để tránh lỗi runtime

83

Multiple Choice

JVM sẽ gọi method nào khi chương trình Java khởi chạy?

1

public void main(String[])

2

public static void start(String[])

3

public static void main(String[] args)

4

public static int main(String[] args)

84

Multiple Choice

Điều gì xảy ra nếu bỏ public khỏi định nghĩa main()?

1

Chạy bình thường

2

JVM không thể gọi được main() → lỗi

3

JVM sẽ tự thêm public

4

main() sẽ chạy nhưng không in được gì

85

Multiple Choice

Tại sao tham số của main() là mảng String[]?

1

Vì JVM không hỗ trợ các kiểu khác

2

Vì đối số dòng lệnh được truyền dưới dạng chuỗi

3

Vì Java không có args[]

4

Vì int[] không thể đọc dữ liệu dòng lệnh

86

Multiple Choice

Có thể truyền tham số nào vào main() từ dòng lệnh?

1

java Hello 123 abc

2

java Hello [1, 2, 3]

3

java Hello Hello.main()

4

Không thể truyền gì cả

87

Multiple Choice

Có thể overload phương thức main() trong Java không?

1

Có, nhưng JVM chỉ gọi phiên bản chuẩn

2

Không

3

Có và JVM tự chọn phiên bản phù hợp

4

Có nếu truyền kiểu int

88

Multiple Choice

Có thể đổi tên biến args thành tên khác không?

1

Không được

2

Được, vì JVM chỉ cần đúng kiểu String[]

3

Được nếu có thêm annotation

4

Chỉ được từ Java 17 trở lên

89

Multiple Choice

Phương thức main() có thể trả về giá trị không?

1

Có, nếu trả về int

2

Có nếu dùng return 0;

3

Không, phải là void

4

Có, nhưng JVM bỏ qua

90

Multiple Choice

Độ ưu tiên biểu thức nào sau đây là đúng?

1

! > && > ||

2

|| > && > !

3

&& > ! > ||

4

|| > ! > &&

91

Multiple Choice

Question image

Đoạn code sau in ra gì?

1

5

2

6

3

4

4

Lỗi

92

Multiple Choice

Question image

Đoạn code sau in ra gì?

1

5

2

6

3

4

4

Lỗi

93

Multiple Choice

Question image

Sau đoạn code sau, a và i có giá trị gì?

1

a = 3, i = 3

2

a = 3, i = 4

3

a = 4, i = 4

4

a = 4, i = 3

94

Multiple Choice

Question image

Sau đoạn code sau, a và i có giá trị gì?

1

4

2

5

3

6

4

7

95

Multiple Choice

Khi nào ++i và i++ có kết quả giống nhau?

1

Luôn luôn

2

Khi dùng trong biểu thức

3

Khi đứng độc lập như i++; hoặc ++i;

4

Không bao giờ

96

Multiple Choice

Làm sao để dừng 1 lòng lặp while true?

1

Continue

2

Break

3

Không có cách nào

4

Return

97

Multiple Choice

Có mấy cách ép kiểu?

1

1

2

2

3

Không có cách nào

4

Return

98

Multiple Choice

Ép kiểu nào dưới đây là ép kiểu ngầm định?

1

double d = (double) 10;

2

int i = (int) 9.9;

3

double d = 10;

4

short s = (short) 123456;

99

Multiple Choice

Question image

Kết quả đoạn code sau là gì?

1

7.0

2

7

3

Lỗi biên dịch

4

D.

100

Multiple Choice

Trong trường hợp nào dưới đây bắt buộc phải ép kiểu tường minh?

1

int → long

2

long → double

3

double → int

4

float → double

101

Multiple Choice

Khi ép kiểu int sang byte với giá trị vượt quá byte, điều gì xảy ra?

1

In ra 130

2

In ra lỗi

3

In ra giá trị không mong muốn (tràn số)

4

Không in gì

102

Multiple Choice

Ép kiểu nào dưới đây có thể gây mất phần thập phân?

1

int → float

2

double → int

3

long → float

4

int → double

103

Multiple Choice

Điều gì xảy ra nếu ép kiểu từ float sang short

1

Luôn chính xác

2

Có thể mất dữ liệu hoặc tràn số

3

JVM sẽ tự động xử lý

4

Không thể ép kiểu trong Java

104

Multiple Choice

Trong java có mấy loại biến?

1

Có 3 loại

2

Có 2 loại

3

Có 4 loại

4

Có 1 loại

105

Multiple Choice

Biến tham chiếu lưu gì trong bộ nhớ?

1

Giá trị thực

2

Địa chỉ đối tượng trong heap

3

Cả heap và stack

4

Mã bytecode

106

Multiple Choice

Biến nào được chia sẻ giữa tất cả các đối tượng?

1

Local

2

Static

3

Instance

4

Final

107

Multiple Choice

Collection (List, Set, Map) có thể dùng biến nguyên thủy trực tiếp không?

1

2

Không

3

Có nếu ép kiểu

4

Tùy loại List

108

Multiple Choice

String là immutable nghĩa là gì?

1
String có thể thay đổi nội dung sau khi tạo ra.
2
String là một kiểu dữ liệu có thể xóa bỏ.
3
String là immutable nghĩa là nó không thể bị thay đổi sau khi được tạo ra.
4
String chỉ có thể chứa ký tự số.

109

Multiple Choice

Question image

Đoạn code sau in gì?

1

Java Programming

2

Java

3

Programming

4

Lỗi runtime

110

Multiple Choice

Phép so sánh nào dưới đây không đúng với StringBuffer?

1

sb1 == sb2 so sánh địa chỉ

2

sb1.equals(sb2) so sánh nội dung

3

b1.toString().equals(sb2.toString()) so sánh giá trị chuỗi

4

b1.toString().equals(sb2.toString()) so sánh giá trị chuỗi

111

Multiple Choice

StringBuffer có thread-safe không?

1
Không, StringBuffer không phải là thread-safe.
2
Có, StringBuffer không an toàn cho đa luồng.
3
Có, StringBuffer chỉ an toàn trong một luồng.
4
Có, StringBuffer là thread-safe.

112

Multiple Choice

Khi nào nên dùng StringBuffer thay vì String?

1
Sử dụng StringBuffer khi chỉ cần tạo một chuỗi tĩnh.
2
Sử dụng StringBuffer khi cần thực hiện nhiều thay đổi trên chuỗi để tối ưu hiệu suất.
3
Sử dụng StringBuffer cho các chuỗi ngắn và không thay đổi.
4
Sử dụng StringBuffer khi không cần thay đổi chuỗi.

113

Multiple Choice

Tính chất nào giúp giấu thông tin bên trong object?

1

Abstraction

2

Encapsulation

3

Inheritance

4

Polymorphism

114

Multiple Choice

Lớp con kế thừa tất cả phương thức từ lớp cha trừ?

1
Các phương thức static
2
Các phương thức protected
3
Các phương thức private
4
Các phương thức public

115

Multiple Choice

Tính chất nào mô tả “một hành động có nhiều cách thực hiện”?

1

Abstraction

2

Encapsulation

3

Inheritance

4

Polymorphism

116

Multiple Choice

Đâu là ví dụ của Overloading?

1

void add(int a, int b) và void add(int a, double b)

2

void eat() trong lớp cha, void eat() trong lớp con

3

void show() trong interface

4

abstract void draw();

117

Multiple Choice

Java hỗ trợ kế thừa mấy lớp?

1

Kế thừa đa cấp

2

Kế thừa đa hình

3

Kế thừa nhiều lớp

4

Kế thừa đơn

118

Multiple Choice

Câu nào sau đây là ví dụ đúng về abstraction?

1

Khai báo biến là private

2

Cung cấp setter/getter

3

Sử dụng abstract class hoặc interface

4

Sử dụng final để bảo vệ method

119

Multiple Choice

Interface và abstract class đều dùng để:

1

Kế thừa nhiều class

2

Tái sử dụng code hoàn chỉnh

3

Tạo abstraction (trừu tượng hóa hành vi)

4

Ẩn dữ liệu nội bộ object

120

Multiple Choice

Đâu là ví dụ sai về encapsulation?

1

private int age;

2

public void setAge(int age)

3

int getAge()

4

public int age;

121

Multiple Choice

Câu nào sau đây là ví dụ của đa hình tĩnh?

1

void print(int a) và void print(String s)

2

@Override void draw()

3

abstract void print();

4

Gọi method thông qua interface

122

Multiple Choice

Đa hình động (runtime polymorphism) trong Java đạt được bằng:

1

Overloading

2

Overriding

3

Static method

4

Final method

123

Multiple Choice

Question image

Kết quả của đoạn code sau là gì?

1

A

2

B

3

Lỗi compile

4

Không xác định

124

Multiple Choice

Kế thừa có thể dẫn đến nhược điểm gì?

1

Không thể tái sử dụng

2

Quá tải tài nguyên

3

Ràng buộc chặt giữa các lớp, khó bảo trì

4

Không thể kết hợp đa hình

125

Multiple Choice

Trong Java, interface có thể có:

1

Field static + final

2

Phương thức static

3

Phương thức default

4

Cả 3 đáp án trên

126

Multiple Choice

Lớp abstract có thể:

1

Không chứa phương thức nào

2

Chứa phương thức không có body (abstract method)

3

Chứa phương thức bình thường có body

4

Cả 3 đáp án trên

127

Multiple Choice

Khi bạn sử dụng tính đa hình, bạn nên khai báo biến như thế nào?

1

ConcreteClass obj = new ConcreteClass();

2

Object obj = new ConcreteClass();

3

Interface obj = new ConcreteClass();

4

int obj = 5;

128

Multiple Choice

Java không hỗ trợ đa kế thừa bằng class vì?

1

Không cần thiết

2

Tăng hiệu suất

3

Gây ra vấn đề Diamond Problem

4

Java là ngôn ngữ hướng thủ tục

129

Multiple Choice

Gọi một phương thức thông qua interface là ví dụ của:

1

Static binding

2

Dynamic binding

3

Overloading

4

Constructor chaining

130

Multiple Choice

Java không hỗ trợ đa kế thừa bằng class vì?

1

Không cần thiết

2

Tăng hiệu suất

3

Gây ra vấn đề Diamond Problem

4

Java là ngôn ngữ hướng thủ tục

131

Multiple Choice

Câu nào sau đây là cú pháp không hợp lệ trong Java?

1

class A extends B, C {}

2

class A implements B, C {}

3

interface A extends B, C {}

4

class A extends B implements C, D {}

132

Multiple Choice

Trong trường hợp hai interface có default method trùng tên, class implement cả hai cần:

1

Không làm gì

2

Phải ghi đè phương thức trùng tên bằng cách cung cấp một triển khai mới,

3

Không được implement 2 interface đó

4

Gọi super như trong class thường

133

Multiple Choice

Tại sao Interface giúp tránh được Diamond Problem?

1

Interface chỉ chứa field

2

Interface không có phương thức

3

Lập trình viên phải override rõ ràng nếu có xung đột default method

4

JVM sẽ chọn ngẫu nhiên method phù hợp

134

Multiple Choice

Từ khoá nào dùng để kế thừa interface từ interface khác?

1

implements

2

extends

3

inherits

4

interfaceOf

135

Multiple Choice

Nếu bạn không gọi super() trong constructor của subclass thì điều gì xảy ra?

1

Trình biên dịch báo lỗi

2

Java tự động gọi constructor có tham số của lớp cha

3

Java tự động gọi constructor không tham số của lớp cha

4

Không có gì xảy ra

136

Multiple Choice

Interface có thể chứa những gì từ Java 8 trở lên?

1

Field private

2

Phương thức abstract, default, static

3

Field public non-final

4

Constructor

137

Multiple Choice

Từ khóa super() được sử dụng để làm gì trong constructor?

1

Gọi constructor của lớp con

2

Gọi constructor của lớp cha

3

Gọi phương thức tĩnh

4

Gọi chính constructor hiện tại

138

Multiple Choice

Trong method override, từ khóa super có thể dùng để:

1

Gọi constructor lớp cha

2

Gọi phương thức của lớp cha bị override

3

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

4

Không có công dụng gì

139

Multiple Choice

super trong Java có thể dùng để truy cập thành phần nào của lớp cha?

1

Biến instance

2

Method

3

Constructor

4

Tất cả các phương án trên

140

Multiple Choice

Lệnh super() phải được đặt ở đâu trong constructor của lớp con?

1

Sau System.out.println()

2

Ở bất kỳ vị trí nào

3

Cuối cùng

4

Dòng đầu tiên

141

Multiple Choice

Từ khóa this trong Java đại diện cho:

1

Một lớp bất kỳ

2

Đối tượng hiện tại

3

Biến static

4

Lớp cha

142

Multiple Choice

Trong constructor, từ khóa this có thể:

1

Gọi method static

2

Gọi constructor khác trong cùng lớp

3

Gọi constructor lớp cha

4

Gọi biến toàn cục

143

Multiple Choice

Khi nào nên dùng this.variableName?

1

Khi không có trùng tên biến

2

Khi gọi biến static

3

Khi biến local trùng tên với biến instance

4

Khi tạo mới biến

144

Multiple Choice

this() phải được đặt ở đâu trong constructor?

1

Cuối constructor

2

Sau câu lệnh bất kỳ

3

Dòng đầu tiên

4

Không được dùng trong constructor

145

Multiple Choice

Dòng nào là đúng khi truyền chính đối tượng hiện tại vào method?

1

method();

2

this.method();

3

method(this);

4

super(this);

146

Multiple Choice

Trong Java, từ khóa nào được dùng để tạo một object?

1

new

2

object

3

instanceof

4

class

147

Multiple Choice

Đâu là mô tả chính xác nhất về Class?

1

Là vùng nhớ lưu dữ liệu

2

Là một instance của đối tượng

3

Là khuôn mẫu để tạo đối tượng

4

Là thư viện trong Java

148

Multiple Choice

Một class có thể tạo ra bao nhiêu object?

1

1

2

10

3

Không giới hạn

4

Tối đa 100

149

Multiple Choice

Object sẽ chứa điều gì sau khi được tạo?

1

Mã nguồn class

2

Con trỏ đến lớp cha

3

Dữ liệu cụ thể của các thuộc tính và hành vi từ class

4

Tên của class

150

Multiple Choice

Câu lệnh nào sau đây là đúng để tạo object từ class Car?

1

Car car = Car();

2

new Car car();

3

Car car = new Car();

4

class Car = new car();

151

Multiple Choice

Có bao nhiêu mức độ truy cập hợp lệ cho lớp top-level trong Java?

1

1

2

2

3

3

4

4

152

Multiple Choice

Điều nào sau đây là đúng với public class MyClass {}?

1

Có thể được truy cập ở bất kỳ đâu trong dự án

2

Chỉ được truy cập trong cùng package

3

Phải là inner class

4

Không hợp lệ trong Java

153

Multiple Choice

Lớp nào dưới đây là không hợp lệ khi được khai báo là top-level?

1

public class Car {}

2

class Bike {}

3

private class Truck {}

4

class Boat {}

154

Multiple Choice

Một class được khai báo không có modifier thì sẽ có mức độ truy cập nào?

1

public

2

private

3

default (package-private)

4

protected

155

Multiple Choice

Tại sao private class A {} không hợp lệ ở cấp top-level?

1

Vì private là modifier dành cho biến.

2

Vì private chỉ dùng được với inner class.

3

Vì class không được khai báo là private.

4

Cả B và C đúng.

156

Multiple Choice

Mức độ truy cập nào cho phép truy cập trong cùng package nhưng không ở package khác, ngay cả khi kế thừa?

1

public

2

protected

3

default

4

private

157

Multiple Choice

Mức độ truy cập nào cho phép class con ở package khác truy cập được thành viên?

1

public

2

protected

3

default

4

private

158

Multiple Choice

Mức độ truy cập nào có phạm vi hạn chế nhất?

1

public

2

protected

3

default

4

private

159

Multiple Choice

Giả sử class A có thuộc tính int x mà không ghi modifier, class B ở cùng package có truy cập được không?

1

2

Không

160

Multiple Choice

Giả sử class A có thuộc tính int x khai báo là private, class B ở cùng package có truy cập được không?

1

2

Không

161

Multiple Choice

Mức độ truy cập protected cho phép điều gì đặc biệt?

1

Truy cập trong cùng class

2

Truy cập từ bất kỳ package nào

3

Truy cập từ class con ở package khác

4

Không có gì khác biệt so với default

162

Multiple Choice

Từ khóa nào được dùng khi một class thực hiện một interface?

1

extends

2

implements

3

inherit

4

interface

163

Multiple Choice

Interface có thể kế thừa bao nhiêu interface khác?

1

Một

2

Tối đa 2

3

Không giới hạn

4

Không thể kế thừa interface khác

164

Multiple Choice

Interface có thể kế thừa từ một class không?

1

2

Không

165

Multiple Choice

Interface có thể chứa constructor không?

1

2

Không

166

Multiple Choice

Trong Java, các phương thức khai báo trong một interface (mà không có default, static, hay private) mặc định có modifier nào?

1

protected abstract

2

public abstract

3

default abstract

4

private abstract

167

Multiple Choice

Phương thức static trong interface:

1

Có thể bị override

2

Chỉ được gọi từ đối tượng

3

Chỉ được gọi từ tên interface

4

Có thể kế thừa ở class con

168

Multiple Choice

Phương thức default trong interface là gì?

1

Là phương thức public abstract

2

Là phương thức có thể có thân (implementation)

3

Là phương thức chỉ dùng trong abstract class

4

Là phương thức private

169

Multiple Choice

Câu lệnh nào không hợp lệ trong interface?

1

void show();

2

public default void run() {}

3

private void helper() {}

4

protected void help();

170

Multiple Choice

Một interface có thể chứa phương thức main không?

1

Không, vì interface không thể có method có thân

2

Có, nếu là static

3

Không, vì interface không thể chạy được

4

Có, nếu khai báo là public

171

Multiple Choice

Trong Java, biến được khai báo trong interface mặc định có modifier nào?

1

private

2

protected

3

public static final

4

public abstract

172

Multiple Choice

Phương thức không có phần thân được khai báo trong interface mặc định có access modifier là gì?

1

private abstract

2

default

3

public abstract

4

protected

173

Multiple Choice

Phương thức static trong interface có thể được override bởi class cài đặt không?

1

2

Không

174

Multiple Choice

Phương thức private trong interface dùng để:

1

Override từ class con

2

Gọi từ class khác

3

Dùng nội bộ trong interface

4

Gọi từ object

175

Multiple Choice

Phương thức default trong interface có thể:

1

Không có phần thân

2

Được override ở class cài đặt

3

Gọi bằng tên interface

4

Được kế thừa từ class cha

176

Multiple Choice

Trong Java, interface không thể chứa thành phần nào sau đây?

1

Biến static

2

Phương thức default

3

Constructor

4

Phương thức private

177

Multiple Choice

Interface thường được dùng để mô tả:

1

Quan hệ cha con

2

Hành vi mà class có thể thực hiện

3

Dữ liệu được lưu trữ

4

Biến static trong lớp cha

178

Multiple Choice

Điều nào sau đây đúng với abstract class?

1

Không thể có phương thức có thân

2

Có thể có constructor

3

Không được chứa biến non-final

4

Luôn phải override toàn bộ phương thức ở lớp con

179

Multiple Choice

Question image

Output của đoạn code sau là gì?

1

A B C

2

A C B

3

B A C

4

C A B

180

Multiple Choice

Chúng ta có thể tạo đối tượng từ abstract class và interface không?

1

2

Không

181

Multiple Choice

Đoạn nào sau đây đúng khi nói về static block?

1

Static block chỉ chạy khi gọi new object

2

Static block chạy mỗi lần gọi main()

3

Static block chạy một lần duy nhất khi class được load

4

Static block chạy sau constructor

182

Multiple Choice

Câu nào sau đây đúng về static nested class?

1

Có thể truy cập mọi thành viên (kể cả non-static) của lớp bên ngoài

2

Cần tạo đối tượng của lớp ngoài mới khởi tạo được

3

Có thể khởi tạo mà không cần đối tượng của lớp ngoài

4

Không thể khai báo static nested class trong Java

183

Multiple Choice

Để tạo inner class, bạn cần điều kiện gì?

1

Khai báo class đó là public

2

Tạo một static method để gọi inner class

3

Phải có một instance của lớp ngoài

4

Dùng từ khóa extends để truy cập lớp ngoài

184

Multiple Choice

Điều nào sau đây là điểm khác biệt chính giữa static class và inner class?

1

Static class không thể được khai báo bên trong lớp khác

2

Inner class không thể gọi bất kỳ thuộc tính nào của lớp ngoài

3

Static class không truy cập được non-static members của lớp ngoài

4

Inner class phải khai báo bằng từ khóa static

185

Multiple Choice

Question image

Output của đoạn mã sau là gì?

1

10

2

20

3

Lỗi biên dịch do không thể truy cập biến a

4

Lỗi vì không có constructor

186

Multiple Choice

Đoạn code nào KHÔNG hợp lệ?

1
2
3
4

187

Multiple Choice

Câu nào sau đây đúng với biến final?

1

Có thể gán lại nhiều lần

2

Chỉ gán 1 lần duy nhất

3

Chỉ dùng được với kiểu số nguyên

4

Phải là biến static

188

Multiple Choice

Phương thức final dùng để làm gì?

1

Cho phép kế thừa nhưng không override

2

Không cho phép kế thừa

3

Không cho override trong lớp con

4

Có thể ghi đè ở bất kỳ đâu

189

Multiple Choice

Điều gì xảy ra khi kế thừa lớp final?

1

Chạy bình thường

2

Báo lỗi tại runtime

3

Báo lỗi biên dịch

4

Vẫn override được phương thức

190

Multiple Choice

Biến final có thể được gán giá trị ở đâu?

1

Khi khai báo

2

Trong constructor

3

Trong static block (nếu là static final)

4

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

191

Multiple Choice

Đâu là lý do sử dụng final trong lập trình?

1

Tăng độ an toàn của chương trình

2

Bảo vệ code khỏi override không mong muốn

3

Tăng tính bất biến (immutability)

4

Tất cả các lý do trên

192

Multiple Choice

Điều nào sau đây đúng với static method?

1

Có thể override

2

Có thể overload

3

Luôn liên kết với instance

4

Có thể gọi bằng this hoặc super

193

Multiple Choice

Giả sử bạn có lớp Student với thuộc tính id. Nếu bạn muốn so sánh hai Student có cùng id là bằng nhau, bạn cần:

1

Override toString()

2

Override equals()

3

Dùng toán tử ==

4

Gọi super.equals()

194

Multiple Choice

Question image

Cho đoạn code sau:

1

true vì nội dung giống nhau

2

false vì chưa override equals()

3

Lỗi compile

4

true nếu String giống nhau

195

Multiple Choice

Trong Java, khi nào nên override cả equals() và hashCode()?

1

Khi muốn so sánh địa chỉ bộ nhớ

2

Khi muốn lưu trữ đối tượng trong HashSet hoặc dùng làm key trong HashMap

3

Khi không cần dùng đến bất kỳ cấu trúc dữ liệu nào

4

Khi không dùng phương thức nào khác ngoài toString()

196

Multiple Choice

Phát biểu nào sau đây là sai?

1

Nếu hai đối tượng bằng nhau theo equals(), thì chúng phải có cùng hashCode()

2

Nếu hai đối tượng có cùng hashCode() thì chắc chắn chúng bằng nhau

3

equals() có thể được override mà không override hashCode() nhưng không nên

4

hashCode() được dùng để tối ưu hiệu năng trong các cấu trúc hash-based

197

Multiple Choice

Giả sử 2 object a và b cùng hashCode() nhưng equals() trả về false, điều gì xảy ra khi lưu chúng vào HashSet?

1

Chỉ lưu được 1 object

2

Không lưu được object nào

3

Lưu cả 2 object vì equals() khác nhau

4

Lỗi runtime

198

Multiple Choice

Tại sao String được dùng làm key phổ biến trong HashMap?

1

Vì String override tốt equals() và hashCode()

2

Vì String là primitive type

3

Vì String có thể biến đổi dễ dàng

4

Vì String không cần so sánh giá trị

199

Multiple Choice

Phát biểu nào đúng về exception trong Java?

1

Exception là lỗi cú pháp trong chương trình

2

Exception xảy ra trong thời gian biên dịch

3

Exception là sự kiện xảy ra trong runtime làm gián đoạn chương trình

4

Exception không ảnh hưởng đến chương trình

200

Multiple Choice

Phân loại nào dưới đây là đúng về exception trong Java?

1

Only Checked Exception

2

Only Unchecked Exception

3

Error và Exception

4

Exception và RuntimeException

201

Multiple Choice

Bạn nên xử lý lỗi nào trong số sau bằng try-catch?

1

StackOverflowError

2

NullPointerException

3

OutOfMemoryError

4

VirtualMachineError

202

Multiple Choice

Phát biểu nào đúng về Error trong Java?

1

Là lỗi có thể xử lý được bằng try-catch

2

Là lỗi do logic lập trình sai

3

Là lỗi nghiêm trọng, không nên xử lý bằng try-catch

4

Luôn được JVM bỏ qua

203

Multiple Choice

Phát biểu nào sau đây đúng về Exception?

1

Luôn là lỗi không thể dự đoán

2

Có thể xử lý được bằng try-catch

3

Không thể ghi log lại

4

Chỉ xảy ra trong lúc biên dịch

204

Multiple Choice

Ngoại lệ nào sau đây là Checked Exception?

1

NullPointerException

2

IOException

3

ArithmeticException

4

ArrayIndexOutOfBoundsException

205

Multiple Choice

Ngoại lệ nào sau đây thuộc Unchecked Exception?

1

SQLException

2

FileNotFoundException

3

ClassNotFoundException

4

ArithmeticException

206

Multiple Choice

Chọn câu đúng:

1

Checked Exception kế thừa từ RuntimeException

2

Unchecked Exception kế thừa từ Exception

3

Error là cha của RuntimeException

4

RuntimeException là cha của IOException

207

Multiple Choice

Trình biên dịch bắt buộc phải xử lý loại exception nào?

1

Error

2

Unchecked Exception

3

Checked Exception

4

NullPointerException

208

Multiple Choice

Từ khóa nào dùng để ném lỗi tại thời điểm thực thi?

1

throws

2

throw

209

Multiple Choice

Bạn có thể dùng throw để ném:

1

Một chuỗi (String)

2

Một số (int)

3

Một đối tượng thuộc lớp kế thừa từ Throwable

4

Tất cả đều đúng

210

Multiple Choice

Từ khóa nào dùng để khai báo lỗi có thể xảy ra trong method?

1

throws

2

throw

211

Multiple Choice

Đâu là ví dụ đúng về throw?

1

throw IOException;

2

throw new IOException();

3

throws new IOException();

4

throws IOException;

212

Multiple Choice

Question image

public void calculate() throws IOException, SQLException

1

Phương thức bắt buộc ném ra IOException và SQLException

2

Phương thức có thể ném ra IOException hoặc SQLException, người gọi phải xử lý

3

Phương thức sẽ không bao giờ ném lỗi

4

Phương thức đang gọi catch để xử lý lỗi

213

Multiple Choice

Trong override, phương thức con có thể ném ngoại lệ rộng hơn phương thức cha không?

1

2

Không

214

Multiple Choice

Lớp con override phương thức của lớp cha và thêm RuntimeException. Điều này:

1

Hợp lệ

2

Không hợp lệ

3

Gây lỗi thời gian chạy

4

Gây lỗi biên dịch

215

Multiple Choice

Có thể tạo mảng của Generics không?

1

Có thể tạo trực tiếp

2

Không thể tạo

3

Có thể tạo nhưng phải dùng workaround như List<T>

4

Có thể nếu kiểu T là String

216

Multiple Choice

Tại sao List<String> và List<Integer> không thể overload trong method?

1

Vì JVM không hỗ trợ Generics

2

Vì không thể kiểm tra kiểu tại runtime

3

Vì thông tin generic bị xóa tại compile-time

4

Vì List không hỗ trợ overload

217

Multiple Choice

Đâu là hành vi đúng với List<? extends Number>?

1

Có thể thêm Integer vào list

2

Có thể đọc và gán vào biến Number

3

Có thể đọc và gán vào Double

4

Có thể thêm Object vào list

218

Multiple Choice

Với List<? super Integer>, phát biểu nào đúng?

1

Có thể thêm Double

2

Có thể đọc ra kiểu Integer

3

Có thể thêm Integer và int

4

Có thể thêm Integer nhưng chỉ đọc ra được Object

219

Multiple Choice

Trạng thái nào xảy ra khi một thread gọi wait() mà không có timeout?

1

BLOCKED

2

WAITING

3

TIMED_WAITING

4

TERMINATED

220

Multiple Choice

Khi một thread bị chặn vì một thread khác giữ lock, trạng thái là?

1

BLOCKED

2

WAITING

3

TIMED_WAITING

4

TERMINATED

221

Multiple Choice

Thread chuyển sang trạng thái TERMINATED khi nào?

1

Khi kết thúc chạy hoặc gặp lỗi không bắt được

2

Khi gọi sleep()

3

Khi khởi tạo bằng new

4

Khi bị interrupt

222

Multiple Choice

Thread nào đang ở trạng thái TIMED_WAITING?

1

Gọi wait() không timeout

2

Gọi join(5000), wait(timeout)

3

Gọi notify()

4

Gọi yield()

Ôn tập JavaCore

By Trần Hiển Vinh

Show answer

Auto Play

Slide 1 / 222

SLIDE