
Ôn tập Java
Presentation
•
Information Technology (IT)
•
Professional Development
•
Practice Problem
•
Easy
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?
Toán tử == so sánh địa chỉ vùng nhớ của hai object.
3
Multiple Choice
Kết quả của đoạn code sau là gì?
4
Multiple Choice
Mục đích chính của phương thức equals() là gì?
5
Multiple Choice
Tại sao cần override cả hashCode() khi đã override equals()?
Để đảm bảo hoạt động đúng trong các cấu trúc dữ liệu như HashMap, HashSet
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?
7
Multiple Choice
Đâu là hệ quả nếu bạn override equals() nhưng không override hashCode()?
Không ảnh hưởng gì
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.)
Object bị lỗi runtime
equals() sẽ không được gọi nữa
8
Multiple Choice
Đoạn code nào override equals() đúng cách?
Tất cả đều đúng
9
Multiple Choice
Điều nào đúng khi dùng final với biến?
Có thể gán lại nhiều lần
Không thể khởi tạo
Chỉ được gán giá trị một lần duy nhất
Có thể thay đổi bất cứ lúc nào
10
Multiple Choice
Đoạn code sau có lỗi gì không?
Không lỗi
Lỗi khi biên dịch – không thể gán lại x
Lỗi runtime
x sẽ bằng 10
11
Multiple Choice
Khi khai báo final với object:
Không lỗi gì
Không thể thay đổi thuộc tính của object s
Lỗi tại dòng gán lại object s
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?
Phương thức đó không thể bị gọi
Phương thức đó có thể bị override
Phương thức đó không thể bị override
Phương thức đó chạy chậm hơn
13
Multiple Choice
Lớp final dùng để làm gì?
Cho phép các lớp khác kế thừa
Cho phép các lớp khác kế thừa
Ngăn chặn kế thừa từ lớp đó
Là lớp trừu tượng
14
Multiple Choice
Biến nào sau đây không có giá trị mặc định và phải gán trước khi sử dụng?
Biến instance
Biến static
Biến local
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?
Tồn tại trong thời gian method đang chạy
Gắn với object và bị xóa khi object bị hủy
Gắn với class và tồn tại đến khi chương trình kết thúc
Gắn với thread
16
Multiple Choice
Đâu là kết luận đúng về biến instance?
Chia sẻ giữa tất cả các object
Không thể có giá trị mặc định
Gắn với từng object riêng biệt
Chỉ truy cập được từ static method
17
Multiple Choice
Kết quả của đoạn code sau là gì?
Chương trình chạy bình thường
Biến z có giá trị mặc định là 0
Biến z gây lỗi biên dịch nếu in ra vì chưa được gán
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?
Biến local
Biến instance
Biến static
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?
20
Multiple Choice
Kết quả của đoạn code sau là gì?
true
false
lỗi biên dich
lỗi runtime
21
Multiple Choice
Kết quả của đoạn code sau là gì?
true
false
lỗi biên dich
lỗi runtime
22
Multiple Choice
Autoboxing trong Java là gì?
Chuyển từ String sang int
Tự động chuyển từ int sang Integer
Ép kiểu thủ công
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?
Lỗi biên dịch nếu dùng sai kiểu
NullPointerException nếu unbox từ null
Không gây lỗi
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
Giá trị vượt quá phạm vi cache
Java không hỗ trợ autoboxing với số lớn
Lỗi khi biên dịch
So sánh == luôn sai
25
Multiple Choice
Đoạn code sau in ra gì?
Try
Try → Finally
Try → Catch
Catch → Finally
26
Multiple Choice
Khi có ngoại lệ xảy ra và được catch, luồng nào chạy?
try → finally
try → catch
try → catch → finally
catch → finally → try
27
Multiple Choice
Điều gì xảy ra nếu có return trong try
finally bị bỏ qua
return chạy rồi kết thúc method
finally vẫn chạy trước khi return
Method không bao giờ kết thúc
28
Multiple Choice
Kết quả của đoạn code sau là gì?
trả về 1
trả về 2
lỗi biên dịch
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?
Khi có exception
Khi có return trong try
Khi có System.exit(0)
Khi không có exception
30
Multiple Choice
JVM là gì và vai trò của nó?
Trình biên dịch mã nguồn Java
Chuyển mã Java sang mã máy và chạy chương trình
Giao diện đồ họa trong Java
Công cụ để viết code Java
31
Multiple Choice
JRE bao gồm những thành phần nào?
Chỉ có thư viện Java
JDK và JVM
JVM và các thư viện Java cần thiết (java.Lang, java.Utils)
JVM và javac compiler
32
Multiple Choice
JDK dùng để làm gì?
Chỉ để chạy chương trình Java
Biên dịch và phát triển ứng dụng Java
Chỉ để cài đặt thư viện
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?
JVM
java command
javac compiler
Thư viện chuẩn như java.util
34
Multiple Choice
Khi bạn gõ java Hello, chuyện gì xảy ra?
Mã nguồn được biên dịch
JVM thực thi mã .java
JVM thực thi mã .class được biên dịch sẵn
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à?
JVM → Viết code → JRE → In kết quả
Viết code → JRE → javac → JVM
Viết code → JDK (javac) → tạo .class → JRE → JVM → chạy
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?
Vì JVM dịch mã Java thành bytecode chuẩn
Vì JDK được viết bằng C++
Vì Java là ngôn ngữ thông dịch
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?
Vì Java dùng file .exe
Vì Java dùng trình biên dịch riêng cho từng hệ điều hành
Vì JVM dịch bytecode thành mã máy tương ứng với hệ điều hành
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ì?
File .exe
File .java
File .class chứa bytecode
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?
JDK
Trình duyệt web
JVM riêng cho từng hệ điều hành
Máy ảo C++
40
Multiple Choice
Câu khẩu hiệu nổi tiếng nào đúng với Java?
"Code once, compile everywhere"
"Write once, debug everywhere"
"Write once, run anywhere"
"Compile once, crash anywhere"
41
Multiple Choice
JVM có vai trò gì?
Dịch mã nguồn thành bytecode
Dịch bytecode thành mã máy phù hợp với nền tảng đang chạy
Quản lý bộ nhớ hệ điều hành
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?
Stack
Heap
Static
Thread
43
Multiple Choice
Đoạn khai báo nào là ví dụ về sử dụng Stack memory?
new Student("Nam")
Person p = new Person();
int a = 10;
Cả B và C
44
Multiple Choice
Điều nào sau đây đúng về Stack memory?
Được chia thành Young/Old Generation
Dùng chung giữa các thread
Có nguyên tắc LIFO
Có Garbage Collector
45
Multiple Choice
Đối tượng được lưu trong Heap có đặc điểm gì?
Bị xóa khi hàm kết thúc
Chỉ sử dụng trong một method
Có thể truy cập toàn chương trình nếu còn tham chiếu
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?
FIFO
LIFO
Round-Robin
Copy-on-write
47
Multiple Choice
Java sử dụng cơ chế truyền tham số nào?
Truyền theo giá trị (pass-by-value)
Truyền theo tham chiếu (pass-by-reference)
Cả hai
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?
Đối tượng thực sự được truyền vào và thay đổi
Một bản sao giá trị được truyền vào
Tham chiếu đến biến thật được truyền vào
Không có gì được truyền
49
Multiple Choice
Đoạn code sau in ra gì?
10
20
0
Lỗi biên dịch
50
Multiple Choice
Kết quả của đoạn code sau là gì?
10
20
0
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à:
Sao chép toàn bộ đối tượng
Truyền tham chiếu đến object thật
Không thể thay đổi object bên trong
Không có gì xảy ra
52
Multiple Choice
Đoạn code sau in ra gì?
Tom
Bingo
null
Lỗi biên dịch
53
Multiple Choice
Đoạn code sau in ra gì?
Max
Lucy
null
Lỗi biên dịch
54
Multiple Choice
Điều gì xảy ra nếu ta gán lại biến tham chiếu bên trong hàm?
p bên ngoài bị thay đổi
p bên ngoài vẫn giữ nguyên
Object bên ngoài bị xóa
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?
Vì object được truyền theo tham chiếu
Vì địa chỉ object được copy, trỏ đến cùng vùng heap
Vì object là static
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?
Có, luôn là truyền tham chiếu
Không, Java chỉ truyền giá trị (dù là biến tham chiếu)
Có nếu là kiểu object
Java không truyền gì cả
57
Multiple Choice
Khi truyền một biến tham chiếu, ta có thể:
Thay đổi thuộc tính của object được tham chiếu
Gán lại biến tham chiếu để trỏ sang object khác (và thay đổi bên ngoài)
Không thể thay đổi gì cả
Gây lỗi runtime
58
Multiple Choice
Đoạn code sau sẽ in gì?
Bye
Hello
Lỗi
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?
Đúng
Sai
Chỉ khi dùng final
Chỉ khi dùng static
60
Multiple Choice
Đoạn code sau sẽ in gì?
Hello
Hello world
Lỗi runtime
Không xác định
61
Multiple Choice
Câu nào mô tả đúng cơ chế truyền tham số trong Java?
Java truyền bản sao của object thật
Java truyền bản sao của giá trị tham chiếu (reference value)
Java truyền con trỏ thật đến vùng nhớ
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?
Java truyền con trỏ thật đến vùng nhớ
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ì?
Truyền đối tượng và thay đổi trường bên trong
Truyền nguyên thủy rồi return
Truyền object và gán lại object mới
Không thể làm được điều đó trong Java
64
Multiple Choice
Điều gì xảy ra nếu truyền null vào một phương thức?
Gây lỗi NullPointerException
p sẽ trở thành object mới
Tạo biến local p
Không lỗi vì p là đối tượng
65
Multiple Choice
Vì sao không thể override phương thức main()?
Vì nó là final
Vì nó là private
Vì nó là static
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)?
JVM sẽ gọi phương thức đó khi chạy
JVM sẽ báo lỗi
JVM sẽ gọi main(String[] args), còn main(int) chỉ chạy nếu tự gọi
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?
Có thể override như bình thường
Không thể override, nhưng có thể overload
Không thể overload
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()?
public void main(String args)
public static void main()
public static void main(int[] args)
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?
public static void start()
public static void main(String[] args)
public void main()
public void run(String[] args)
70
Multiple Choice
Tại sao phương thức main() phải là static?
Vì nó là quy tắc đặt tên
Vì JVM không thể tạo object để gọi method non-static trước khi chương trình bắt đầu
Vì nó giúp chương trình chạy nhanh hơn
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()?
Chương trình vẫn chạy bình thường
JVM tự thêm từ khóa static
JVM sẽ báo lỗi và không khởi chạy chương trình
Sẽ chạy chậm hơn
72
Multiple Choice
Có thể gọi non-static method từ main() không?
Không bao giờ được
Chỉ khi dùng super
Có, nếu tạo object để gọi
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?
public void main(String[])
public static void start()
public static void main(String[] args)
public static void run()
74
Multiple Choice
Có thể overload phương thức main() được không?
Không
Có, nhưng JVM chỉ gọi phiên bản với String[] args
Có, và JVM sẽ tự chọn phương thức phù hợp
Chỉ khi dùng static block
75
Multiple Choice
Điều nào đúng về static method trong Java?
Có thể override như method bình thường
Không thể override, nhưng có thể overload
Không thể override, nhưng có thể hide (che khuất)
B và C đều đúng
76
Multiple Choice
Kết quả đoạn code sau là gì?
A
B
Lỗi biên dịch
Không xác định
77
Multiple Choice
Tại sao không thể override static method?
Vì JVM không hỗ trợ
Vì static method thuộc object
Vì static method không thể bị gọi qua object
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?
JVM dùng method của superclass
JVM sẽ override như bình thường
JVM sẽ ẩn method gốc bằng method mới (method hiding)
Chạy cả 2 method
79
Multiple Choice
Bạn có thể overload một static method không?
Có
Không
Chỉ nếu cùng tham số
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?
public static int main(String[] args)
static public void main(String[] args)
private static void main(String[] args)
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?
Không được
Được, nhưng chỉ trong Java 11 trở lên
Được, vì thứ tự modifier không quan trọng
Được nếu thêm từ khóa final
82
Multiple Choice
Tại sao main() phải là static?
Để sử dụng biến toàn cục
Để JVM gọi method mà không cần tạo object
Để overload method dễ hơn
Để 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?
public void main(String[])
public static void start(String[])
public static void main(String[] args)
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()?
Chạy bình thường
JVM không thể gọi được main() → lỗi
JVM sẽ tự thêm public
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[]?
Vì JVM không hỗ trợ các kiểu khác
Vì đối số dòng lệnh được truyền dưới dạng chuỗi
Vì Java không có args[]
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?
java Hello 123 abc
java Hello [1, 2, 3]
java Hello Hello.main()
Không thể truyền gì cả
87
Multiple Choice
Có thể overload phương thức main() trong Java không?
Có, nhưng JVM chỉ gọi phiên bản chuẩn
Không
Có và JVM tự chọn phiên bản phù hợp
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?
Không được
Được, vì JVM chỉ cần đúng kiểu String[]
Được nếu có thêm annotation
Chỉ được từ Java 17 trở lên
89
Multiple Choice
Phương thức main() có thể trả về giá trị không?
Có, nếu trả về int
Có nếu dùng return 0;
Không, phải là void
Có, nhưng JVM bỏ qua
90
Multiple Choice
Độ ưu tiên biểu thức nào sau đây là đúng?
! > && > ||
|| > && > !
&& > ! > ||
|| > ! > &&
91
Multiple Choice
Đoạn code sau in ra gì?
5
6
4
Lỗi
92
Multiple Choice
Đoạn code sau in ra gì?
5
6
4
Lỗi
93
Multiple Choice
Sau đoạn code sau, a và i có giá trị gì?
a = 3, i = 3
a = 3, i = 4
a = 4, i = 4
a = 4, i = 3
94
Multiple Choice
Sau đoạn code sau, a và i có giá trị gì?
4
5
6
7
95
Multiple Choice
Khi nào ++i và i++ có kết quả giống nhau?
Luôn luôn
Khi dùng trong biểu thức
Khi đứng độc lập như i++; hoặc ++i;
Không bao giờ
96
Multiple Choice
Làm sao để dừng 1 lòng lặp while true?
Continue
Break
Không có cách nào
Return
97
Multiple Choice
Có mấy cách ép kiểu?
1
2
Không có cách nào
Return
98
Multiple Choice
Ép kiểu nào dưới đây là ép kiểu ngầm định?
double d = (double) 10;
int i = (int) 9.9;
double d = 10;
short s = (short) 123456;
99
Multiple Choice
Kết quả đoạn code sau là gì?
7.0
7
Lỗi biên dịch
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?
int → long
long → double
double → int
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?
In ra 130
In ra lỗi
In ra giá trị không mong muốn (tràn số)
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?
int → float
double → int
long → float
int → double
103
Multiple Choice
Điều gì xảy ra nếu ép kiểu từ float sang short
Luôn chính xác
Có thể mất dữ liệu hoặc tràn số
JVM sẽ tự động xử lý
Không thể ép kiểu trong Java
104
Multiple Choice
Trong java có mấy loại biến?
Có 3 loại
Có 2 loại
Có 4 loại
Có 1 loại
105
Multiple Choice
Biến tham chiếu lưu gì trong bộ nhớ?
Giá trị thực
Địa chỉ đối tượng trong heap
Cả heap và stack
Mã bytecode
106
Multiple Choice
Biến nào được chia sẻ giữa tất cả các đối tượng?
Local
Static
Instance
Final
107
Multiple Choice
Collection (List, Set, Map) có thể dùng biến nguyên thủy trực tiếp không?
Có
Không
Có nếu ép kiểu
Tùy loại List
108
Multiple Choice
String là immutable nghĩa là gì?
109
Multiple Choice
Đoạn code sau in gì?
Java Programming
Java
Programming
Lỗi runtime
110
Multiple Choice
Phép so sánh nào dưới đây không đúng với StringBuffer?
sb1 == sb2 so sánh địa chỉ
sb1.equals(sb2) so sánh nội dung
b1.toString().equals(sb2.toString()) so sánh giá trị chuỗi
b1.toString().equals(sb2.toString()) so sánh giá trị chuỗi
111
Multiple Choice
StringBuffer có thread-safe không?
112
Multiple Choice
Khi nào nên dùng StringBuffer thay vì String?
113
Multiple Choice
Tính chất nào giúp giấu thông tin bên trong object?
Abstraction
Encapsulation
Inheritance
Polymorphism
114
Multiple Choice
Lớp con kế thừa tất cả phương thức từ lớp cha trừ?
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”?
Abstraction
Encapsulation
Inheritance
Polymorphism
116
Multiple Choice
Đâu là ví dụ của Overloading?
void add(int a, int b) và void add(int a, double b)
void eat() trong lớp cha, void eat() trong lớp con
void show() trong interface
abstract void draw();
117
Multiple Choice
Java hỗ trợ kế thừa mấy lớp?
Kế thừa đa cấp
Kế thừa đa hình
Kế thừa nhiều lớp
Kế thừa đơn
118
Multiple Choice
Câu nào sau đây là ví dụ đúng về abstraction?
Khai báo biến là private
Cung cấp setter/getter
Sử dụng abstract class hoặc interface
Sử dụng final để bảo vệ method
119
Multiple Choice
Interface và abstract class đều dùng để:
Kế thừa nhiều class
Tái sử dụng code hoàn chỉnh
Tạo abstraction (trừu tượng hóa hành vi)
Ẩn dữ liệu nội bộ object
120
Multiple Choice
Đâu là ví dụ sai về encapsulation?
private int age;
public void setAge(int age)
int getAge()
public int age;
121
Multiple Choice
Câu nào sau đây là ví dụ của đa hình tĩnh?
void print(int a) và void print(String s)
@Override void draw()
abstract void print();
Gọi method thông qua interface
122
Multiple Choice
Đa hình động (runtime polymorphism) trong Java đạt được bằng:
Overloading
Overriding
Static method
Final method
123
Multiple Choice
Kết quả của đoạn code sau là gì?
A
B
Lỗi compile
Không xác định
124
Multiple Choice
Kế thừa có thể dẫn đến nhược điểm gì?
Không thể tái sử dụng
Quá tải tài nguyên
Ràng buộc chặt giữa các lớp, khó bảo trì
Không thể kết hợp đa hình
125
Multiple Choice
Trong Java, interface có thể có:
Field static + final
Phương thức static
Phương thức default
Cả 3 đáp án trên
126
Multiple Choice
Lớp abstract có thể:
Không chứa phương thức nào
Chứa phương thức không có body (abstract method)
Chứa phương thức bình thường có body
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?
ConcreteClass obj = new ConcreteClass();
Object obj = new ConcreteClass();
Interface obj = new ConcreteClass();
int obj = 5;
128
Multiple Choice
Java không hỗ trợ đa kế thừa bằng class vì?
Không cần thiết
Tăng hiệu suất
Gây ra vấn đề Diamond Problem
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:
Static binding
Dynamic binding
Overloading
Constructor chaining
130
Multiple Choice
Java không hỗ trợ đa kế thừa bằng class vì?
Không cần thiết
Tăng hiệu suất
Gây ra vấn đề Diamond Problem
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?
class A extends B, C {}
class A implements B, C {}
interface A extends B, C {}
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:
Không làm gì
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,
Không được implement 2 interface đó
Gọi super như trong class thường
133
Multiple Choice
Tại sao Interface giúp tránh được Diamond Problem?
Interface chỉ chứa field
Interface không có phương thức
Lập trình viên phải override rõ ràng nếu có xung đột default method
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?
implements
extends
inherits
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?
Trình biên dịch báo lỗi
Java tự động gọi constructor có tham số của lớp cha
Java tự động gọi constructor không tham số của lớp cha
Không có gì xảy ra
136
Multiple Choice
Interface có thể chứa những gì từ Java 8 trở lên?
Field private
Phương thức abstract, default, static
Field public non-final
Constructor
137
Multiple Choice
Từ khóa super() được sử dụng để làm gì trong constructor?
Gọi constructor của lớp con
Gọi constructor của lớp cha
Gọi phương thức tĩnh
Gọi chính constructor hiện tại
138
Multiple Choice
Trong method override, từ khóa super có thể dùng để:
Gọi constructor lớp cha
Gọi phương thức của lớp cha bị override
Tạo mới đối tượng lớp cha
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?
Biến instance
Method
Constructor
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?
Sau System.out.println()
Ở bất kỳ vị trí nào
Cuối cùng
Dòng đầu tiên
141
Multiple Choice
Từ khóa this trong Java đại diện cho:
Một lớp bất kỳ
Đối tượng hiện tại
Biến static
Lớp cha
142
Multiple Choice
Trong constructor, từ khóa this có thể:
Gọi method static
Gọi constructor khác trong cùng lớp
Gọi constructor lớp cha
Gọi biến toàn cục
143
Multiple Choice
Khi nào nên dùng this.variableName?
Khi không có trùng tên biến
Khi gọi biến static
Khi biến local trùng tên với biến instance
Khi tạo mới biến
144
Multiple Choice
this() phải được đặt ở đâu trong constructor?
Cuối constructor
Sau câu lệnh bất kỳ
Dòng đầu tiên
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?
method();
this.method();
method(this);
super(this);
146
Multiple Choice
Trong Java, từ khóa nào được dùng để tạo một object?
new
object
instanceof
class
147
Multiple Choice
Đâu là mô tả chính xác nhất về Class?
Là vùng nhớ lưu dữ liệu
Là một instance của đối tượng
Là khuôn mẫu để tạo đối tượng
Là thư viện trong Java
148
Multiple Choice
Một class có thể tạo ra bao nhiêu object?
1
10
Không giới hạn
Tối đa 100
149
Multiple Choice
Object sẽ chứa điều gì sau khi được tạo?
Mã nguồn class
Con trỏ đến lớp cha
Dữ liệu cụ thể của các thuộc tính và hành vi từ class
Tên của class
150
Multiple Choice
Câu lệnh nào sau đây là đúng để tạo object từ class Car?
Car car = Car();
new Car car();
Car car = new Car();
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
2
3
4
152
Multiple Choice
Điều nào sau đây là đúng với public class MyClass {}?
Có thể được truy cập ở bất kỳ đâu trong dự án
Chỉ được truy cập trong cùng package
Phải là inner class
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?
public class Car {}
class Bike {}
private class Truck {}
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?
public
private
default (package-private)
protected
155
Multiple Choice
Tại sao private class A {} không hợp lệ ở cấp top-level?
Vì private là modifier dành cho biến.
Vì private chỉ dùng được với inner class.
Vì class không được khai báo là private.
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?
public
protected
default
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?
public
protected
default
private
158
Multiple Choice
Mức độ truy cập nào có phạm vi hạn chế nhất?
public
protected
default
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?
Có
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?
Có
Không
161
Multiple Choice
Mức độ truy cập protected cho phép điều gì đặc biệt?
Truy cập trong cùng class
Truy cập từ bất kỳ package nào
Truy cập từ class con ở package khác
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?
extends
implements
inherit
interface
163
Multiple Choice
Interface có thể kế thừa bao nhiêu interface khác?
Một
Tối đa 2
Không giới hạn
Không thể kế thừa interface khác
164
Multiple Choice
Interface có thể kế thừa từ một class không?
Có
Không
165
Multiple Choice
Interface có thể chứa constructor không?
Có
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?
protected abstract
public abstract
default abstract
private abstract
167
Multiple Choice
Phương thức static trong interface:
Có thể bị override
Chỉ được gọi từ đối tượng
Chỉ được gọi từ tên interface
Có thể kế thừa ở class con
168
Multiple Choice
Phương thức default trong interface là gì?
Là phương thức public abstract
Là phương thức có thể có thân (implementation)
Là phương thức chỉ dùng trong abstract class
Là phương thức private
169
Multiple Choice
Câu lệnh nào không hợp lệ trong interface?
void show();
public default void run() {}
private void helper() {}
protected void help();
170
Multiple Choice
Một interface có thể chứa phương thức main không?
Không, vì interface không thể có method có thân
Có, nếu là static
Không, vì interface không thể chạy được
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?
private
protected
public static final
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ì?
private abstract
default
public abstract
protected
173
Multiple Choice
Phương thức static trong interface có thể được override bởi class cài đặt không?
Có
Không
174
Multiple Choice
Phương thức private trong interface dùng để:
Override từ class con
Gọi từ class khác
Dùng nội bộ trong interface
Gọi từ object
175
Multiple Choice
Phương thức default trong interface có thể:
Không có phần thân
Được override ở class cài đặt
Gọi bằng tên interface
Đượ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?
Biến static
Phương thức default
Constructor
Phương thức private
177
Multiple Choice
Interface thường được dùng để mô tả:
Quan hệ cha con
Hành vi mà class có thể thực hiện
Dữ liệu được lưu trữ
Biến static trong lớp cha
178
Multiple Choice
Điều nào sau đây đúng với abstract class?
Không thể có phương thức có thân
Có thể có constructor
Không được chứa biến non-final
Luôn phải override toàn bộ phương thức ở lớp con
179
Multiple Choice
Output của đoạn code sau là gì?
A B C
A C B
B A C
C A B
180
Multiple Choice
Chúng ta có thể tạo đối tượng từ abstract class và interface không?
Có
Không
181
Multiple Choice
Đoạn nào sau đây đúng khi nói về static block?
Static block chỉ chạy khi gọi new object
Static block chạy mỗi lần gọi main()
Static block chạy một lần duy nhất khi class được load
Static block chạy sau constructor
182
Multiple Choice
Câu nào sau đây đúng về static nested class?
Có thể truy cập mọi thành viên (kể cả non-static) của lớp bên ngoài
Cần tạo đối tượng của lớp ngoài mới khởi tạo được
Có thể khởi tạo mà không cần đối tượng của lớp ngoài
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ì?
Khai báo class đó là public
Tạo một static method để gọi inner class
Phải có một instance của lớp ngoài
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?
Static class không thể được khai báo bên trong lớp khác
Inner class không thể gọi bất kỳ thuộc tính nào của lớp ngoài
Static class không truy cập được non-static members của lớp ngoài
Inner class phải khai báo bằng từ khóa static
185
Multiple Choice
Output của đoạn mã sau là gì?
10
20
Lỗi biên dịch do không thể truy cập biến a
Lỗi vì không có constructor
186
Multiple Choice
Đoạn code nào KHÔNG hợp lệ?
187
Multiple Choice
Câu nào sau đây đúng với biến final?
Có thể gán lại nhiều lần
Chỉ gán 1 lần duy nhất
Chỉ dùng được với kiểu số nguyên
Phải là biến static
188
Multiple Choice
Phương thức final dùng để làm gì?
Cho phép kế thừa nhưng không override
Không cho phép kế thừa
Không cho override trong lớp con
Có thể ghi đè ở bất kỳ đâu
189
Multiple Choice
Điều gì xảy ra khi kế thừa lớp final?
Chạy bình thường
Báo lỗi tại runtime
Báo lỗi biên dịch
Vẫn override được phương thức
190
Multiple Choice
Biến final có thể được gán giá trị ở đâu?
Khi khai báo
Trong constructor
Trong static block (nếu là static final)
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?
Tăng độ an toàn của chương trình
Bảo vệ code khỏi override không mong muốn
Tăng tính bất biến (immutability)
Tất cả các lý do trên
192
Multiple Choice
Điều nào sau đây đúng với static method?
Có thể override
Có thể overload
Luôn liên kết với instance
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:
Override toString()
Override equals()
Dùng toán tử ==
Gọi super.equals()
194
Multiple Choice
Cho đoạn code sau:
true vì nội dung giống nhau
false vì chưa override equals()
Lỗi compile
true nếu String giống nhau
195
Multiple Choice
Trong Java, khi nào nên override cả equals() và hashCode()?
Khi muốn so sánh địa chỉ bộ nhớ
Khi muốn lưu trữ đối tượng trong HashSet hoặc dùng làm key trong HashMap
Khi không cần dùng đến bất kỳ cấu trúc dữ liệu nào
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?
Nếu hai đối tượng bằng nhau theo equals(), thì chúng phải có cùng hashCode()
Nếu hai đối tượng có cùng hashCode() thì chắc chắn chúng bằng nhau
equals() có thể được override mà không override hashCode() nhưng không nên
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?
Chỉ lưu được 1 object
Không lưu được object nào
Lưu cả 2 object vì equals() khác nhau
Lỗi runtime
198
Multiple Choice
Tại sao String được dùng làm key phổ biến trong HashMap?
Vì String override tốt equals() và hashCode()
Vì String là primitive type
Vì String có thể biến đổi dễ dàng
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?
Exception là lỗi cú pháp trong chương trình
Exception xảy ra trong thời gian biên dịch
Exception là sự kiện xảy ra trong runtime làm gián đoạn chương trình
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?
Only Checked Exception
Only Unchecked Exception
Error và Exception
Exception và RuntimeException
201
Multiple Choice
Bạn nên xử lý lỗi nào trong số sau bằng try-catch?
StackOverflowError
NullPointerException
OutOfMemoryError
VirtualMachineError
202
Multiple Choice
Phát biểu nào đúng về Error trong Java?
Là lỗi có thể xử lý được bằng try-catch
Là lỗi do logic lập trình sai
Là lỗi nghiêm trọng, không nên xử lý bằng try-catch
Luôn được JVM bỏ qua
203
Multiple Choice
Phát biểu nào sau đây đúng về Exception?
Luôn là lỗi không thể dự đoán
Có thể xử lý được bằng try-catch
Không thể ghi log lại
Chỉ xảy ra trong lúc biên dịch
204
Multiple Choice
Ngoại lệ nào sau đây là Checked Exception?
NullPointerException
IOException
ArithmeticException
ArrayIndexOutOfBoundsException
205
Multiple Choice
Ngoại lệ nào sau đây thuộc Unchecked Exception?
SQLException
FileNotFoundException
ClassNotFoundException
ArithmeticException
206
Multiple Choice
Chọn câu đúng:
Checked Exception kế thừa từ RuntimeException
Unchecked Exception kế thừa từ Exception
Error là cha của RuntimeException
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?
Error
Unchecked Exception
Checked Exception
NullPointerException
208
Multiple Choice
Từ khóa nào dùng để ném lỗi tại thời điểm thực thi?
throws
throw
209
Multiple Choice
Bạn có thể dùng throw để ném:
Một chuỗi (String)
Một số (int)
Một đối tượng thuộc lớp kế thừa từ Throwable
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?
throws
throw
211
Multiple Choice
Đâu là ví dụ đúng về throw?
throw IOException;
throw new IOException();
throws new IOException();
throws IOException;
212
Multiple Choice
public void calculate() throws IOException, SQLException
Phương thức bắt buộc ném ra IOException và SQLException
Phương thức có thể ném ra IOException hoặc SQLException, người gọi phải xử lý
Phương thức sẽ không bao giờ ném lỗi
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?
Có
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:
Hợp lệ
Không hợp lệ
Gây lỗi thời gian chạy
Gây lỗi biên dịch
215
Multiple Choice
Có thể tạo mảng của Generics không?
Có thể tạo trực tiếp
Không thể tạo
Có thể tạo nhưng phải dùng workaround như List<T>
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?
Vì JVM không hỗ trợ Generics
Vì không thể kiểm tra kiểu tại runtime
Vì thông tin generic bị xóa tại compile-time
Vì List không hỗ trợ overload
217
Multiple Choice
Đâu là hành vi đúng với List<? extends Number>?
Có thể thêm Integer vào list
Có thể đọc và gán vào biến Number
Có thể đọc và gán vào Double
Có thể thêm Object vào list
218
Multiple Choice
Với List<? super Integer>, phát biểu nào đúng?
Có thể thêm Double
Có thể đọc ra kiểu Integer
Có thể thêm Integer và int
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?
BLOCKED
WAITING
TIMED_WAITING
TERMINATED
220
Multiple Choice
Khi một thread bị chặn vì một thread khác giữ lock, trạng thái là?
BLOCKED
WAITING
TIMED_WAITING
TERMINATED
221
Multiple Choice
Thread chuyển sang trạng thái TERMINATED khi nào?
Khi kết thúc chạy hoặc gặp lỗi không bắt được
Khi gọi sleep()
Khi khởi tạo bằng new
Khi bị interrupt
222
Multiple Choice
Thread nào đang ở trạng thái TIMED_WAITING?
Gọi wait() không timeout
Gọi join(5000), wait(timeout)
Gọi notify()
Gọi yield()
Ôn tập JavaCore
By Trần Hiển Vinh
Show answer
Auto Play
Slide 1 / 222
SLIDE
Similar Resources on Wayground
200 questions
Bài học không có tiêu đề
Presentation
•
4th Grade
240 questions
Lá cờ
Presentation
•
1st - 2nd Grade
234 questions
Ghép nối ngoại vi - PIC16F877A
Presentation
•
University
198 questions
Reliability, Validity, Utility
Presentation
•
Professional Development
227 questions
Cell Unit Notes
Presentation
•
8th - 12th Grade
245 questions
Revisão de Programação - Mobile Coding
Presentation
•
University
191 questions
V_ing/ To V
Presentation
•
8th Grade
252 questions
Semester 1 Final Review
Presentation
•
10th Grade
Popular Resources on Wayground
16 questions
Grade 3 Simulation Assessment 2
Quiz
•
3rd Grade
19 questions
HCS Grade 5 Simulation Assessment_1 2526sy
Quiz
•
5th Grade
10 questions
Cinco de Mayo Trivia Questions
Interactive video
•
3rd - 5th Grade
17 questions
HCS Grade 4 Simulation Assessment_2 2526sy
Quiz
•
4th Grade
24 questions
HCS Grade 5 Simulation Assessment_2 2526sy
Quiz
•
5th Grade
13 questions
Cinco de mayo
Interactive video
•
6th - 8th Grade
20 questions
Math Review
Quiz
•
3rd Grade
30 questions
GVMS House Trivia 2026
Quiz
•
6th - 8th Grade