java

0.0(0)
Studied by 0 people
call kaiCall Kai
learnLearn
examPractice Test
spaced repetitionSpaced Repetition
heart puzzleMatch
flashcardsFlashcards
GameKnowt Play
Card Sorting

1/92

encourage image

There's no tags or description

Looks like no tags are added yet.

Last updated 5:42 AM on 6/2/26
Name
Mastery
Learn
Test
Matching
Spaced
Call with Kai

No analytics yet

Send a link to your students to track their progress

93 Terms

1
New cards

JDK

Bộ công cụ phát triển Java. [cite: 595]

2
New cards

JVM

Máy ảo chạy bytecode. [cite: 595]

3
New cards

Bytecode

Mã .class trung gian, chạy trên JVM. [cite: 595]

4
New cards

OOP

Encapsulation, Inheritance, Polymorphism, Abstraction. [cite: 595]

5
New cards

List

Có thứ tự, cho phép trùng. [cite: 595]

6
New cards

Set

Không chứa phần tử trùng. [cite: 595]

7
New cards

Map

Key-value, key không trùng. [cite: 595]

8
New cards

Generics

Type safety, giảm ép kiểu. [cite: 595]

9
New cards

Checked Exception

Compiler bắt buộc xử lý hoặc throws. [cite: 595]

10
New cards

Unchecked Exception

RuntimeException; compiler không bắt buộc xử lý. [cite: 595]

11
New cards

Stream

Pipeline xử lý dữ liệu; source -> intermediate -> terminal. [cite: 595]

12
New cards

ORM

Ánh xạ object với bảng quan hệ. [cite: 595]

13
New cards

JPA / Jakarta Persistence

Specification API ORM. [cite: 595]

14
New cards

Hibernate

Implementation ORM phổ biến. [cite: 595]

15
New cards

Entity

Object có identity được persistence quản lý. [cite: 595]

16
New cards

Persistence Context

Môi trường theo dõi managed entity. [cite: 595]

17
New cards

Dirty Checking

Tự phát hiện thay đổi managed entity. [cite: 595]

18
New cards

Flush

Đồng bộ thay đổi context xuống database. [cite: 595]

19
New cards

Owning Side

Phía quản lý foreign key, thường có @JoinColumn. [cite: 595]

20
New cards

N+1

1 query danh sách + N query quan hệ. [cite: 595]

21
New cards

IoC

Container kiểm soát việc tạo và lắp ráp object. [cite: 595]

22
New cards

DI

Truyền dependency từ bên ngoài. [cite: 595]

23
New cards

Bean

Object do Spring container quản lý. [cite: 595]

24
New cards

Spring Boot

Giúp tạo ứng dụng Spring standalone với cấu hình tối thiểu. [cite: 595]

25
New cards

Controller

Nhận HTTP request và trả response. [cite: 595]

26
New cards

Service

Xử lý nghiệp vụ và transaction. [cite: 595]

27
New cards

Repository

Truy cập dữ liệu. [cite: 595]

28
New cards

DTO

Contract dữ liệu request/response. [cite: 598]

29
New cards

@Valid

Kích hoạt validation input. [cite: 598]

30
New cards

@Transactional

Khai báo boundary transaction. [cite: 598]

31
New cards

JpaRepository

Repository abstraction có CRUD và pagination. [cite: 598]

32
New cards

Specification

Xây filter động bằng Criteria API. [cite: 598]

33
New cards

@RestControllerAdvice

Xử lý exception tập trung. [cite: 598]

34
New cards

Java được biên dịch và chạy như thế nào?

Source .java được javac biên dịch thành bytecode .class. JVM nạp class và thực thi bytecode, có thể tối ưu bằng JIT. [cite: 600]

35
New cards

JDK khác JVM như thế nào?

JDK là bộ công cụ phát triển; JVM là máy ảo thực thi bytecode. [cite: 600]

36
New cards

Primitive type khác reference type như thế nào?

Primitive lưu trực tiếp giá trị; reference type lưu tham chiếu tới object. [cite: 600]

37
New cards

Tại sao không dùng == để so sánh nội dung String?

== thường so sánh reference; equals() so sánh nội dung theo implementation của String. [cite: 600]

38
New cards

Overloading là gì?

Cùng tên method nhưng khác danh sách parameter. Return type không đủ để tạo overload. [cite: 600]

39
New cards

Overriding là gì?

Class con cung cấp implementation mới cho method kế thừa hoặc method interface với cùng signature phù hợp. [cite: 600]

40
New cards

Encapsulation là gì?

Che giấu dữ liệu nội bộ và kiểm soát thay đổi state qua API của object. [cite: 600]

41
New cards

Inheritance là gì?

Class con kế thừa field/method phù hợp từ class cha theo quan hệ is-a. [cite: 600]

42
New cards

Polymorphism là gì?

Một biến kiểu cha/interface có thể tham chiếu nhiều implementation; method override được chọn theo object thực tế. [cite: 600]

43
New cards

Abstraction là gì?

Chỉ biểu diễn hành vi cần cung cấp, ẩn chi tiết triển khai. [cite: 600]

44
New cards

Interface khác abstract class?

Interface phù hợp contract và multiple implementation; abstract class phù hợp chia sẻ state hoặc code nền. [cite: 602]

45
New cards

static nghĩa là gì?

Thành viên thuộc class thay vì từng object. [cite: 602]

46
New cards

final dùng khi nào?

Cố định biến sau lần gán đầu, cấm override method hoặc cấm kế thừa class. [cite: 602]

47
New cards

List, Set, Map khác nhau?

List có thứ tự và cho phép trùng; Set không trùng; Map lưu key-value với key không trùng. [cite: 602]

48
New cards

ArrayList khi nào phù hợp?

Là lựa chọn List mặc định khi cần truy cập theo index và duyệt tuần tự. [cite: 602]

49
New cards

Tại sao equals và hashCode phải nhất quán?

Hash-based collection dùng cả hai; nếu equals true mà hashCode khác nhau, tra cứu và loại trùng có thể sai. [cite: 602]

50
New cards

Generics giải quyết vấn đề gì?

Tăng type safety và giảm ép kiểu thủ công. [cite: 602]

51
New cards

Checked và unchecked exception khác nhau?

Checked exception phải xử lý hoặc throws ở compile-time; unchecked kế thừa RuntimeException. [cite: 602]

52
New cards

try-with-resources có lợi gì?

Tự đóng tài nguyên implements AutoCloseable, giảm leak resource. [cite: 602]

53
New cards

Functional interface là gì?

Interface có một abstract method, có thể dùng lambda làm implementation. [cite: 602]

54
New cards

Stream có phải collection không?

Không. Stream là pipeline xử lý dữ liệu từ source qua operation đến terminal result. [cite: 602]

55
New cards

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

Biểu diễn giá trị có thể tồn tại hoặc không, ví dụ findById. [cite: 602]

56
New cards

ORM là gì?

Kỹ thuật ánh xạ object với dữ liệu quan hệ. [cite: 602]

57
New cards

JPA và Hibernate khác nhau?

Jakarta Persistence/JPA là specification; Hibernate là implementation ORM. [cite: 602]

58
New cards

Spring Data JPA khác Hibernate?

Spring Data JPA là repository abstraction giúp giảm boilerplate; Hibernate thường là provider thực thi ORM phía dưới. [cite: 602]

59
New cards

Entity cần tối thiểu gì?

Class được đánh dấu @Entity và có field định danh @Id. [cite: 602]

60
New cards

Persistence Context là gì?

Môi trường theo dõi entity managed và đồng bộ state với database. [cite: 602]

61
New cards

Dirty checking là gì?

Hibernate phát hiện thay đổi field của managed entity và tạo update phù hợp khi flush/commit. [cite: 602]

62
New cards

flush khác commit?

Flush đồng bộ SQL xuống database trong transaction; commit xác nhận transaction. [cite: 605]

63
New cards

Owning side trong quan hệ JPA là gì?

Phía quản lý foreign key; thường khai báo @JoinColumn. [cite: 605]

64
New cards

mappedBy dùng làm gì?

Chỉ ra field ở owning side quản lý quan hệ; tránh tạo mapping dư thừa. [cite: 605]

65
New cards

LAZY khác EAGER?

LAZY tải khi cần; EAGER tải sớm. Cần chọn theo use case. [cite: 605]

66
New cards

CascadeType.ALL có nên dùng luôn không?

Không. Chỉ dùng khi lifecycle entity con thực sự phụ thuộc entity cha. [cite: 605]

67
New cards

orphanRemoval là gì?

Xóa entity con khi nó bị tách khỏi collection quan hệ của cha theo rule mapping. [cite: 605]

68
New cards

N+1 query là gì?

Một query lấy danh sách, sau đó phát sinh thêm query cho từng entity để tải quan hệ. [cite: 605]

69
New cards

Giải pháp N+1?

JOIN FETCH, EntityGraph, DTO projection, batch fetching và thiết kế use case phù hợp. [cite: 605]

70
New cards

@Transactional nên đặt ở đâu?

Thông thường ở Service method để bao quanh use case nghiệp vụ. [cite: 605]

71
New cards

IoC là gì?

Container kiểm soát việc tạo và lắp ráp object. [cite: 605]

72
New cards

DI là gì?

Dependency được truyền từ bên ngoài, thường qua constructor. [cite: 605]

73
New cards

Bean là gì?

Object do Spring container quản lý. [cite: 605]

74
New cards

ApplicationContext làm gì?

Khởi tạo, cấu hình và lắp ráp bean. [cite: 605]

75
New cards

Tại sao ưu tiên constructor injection?

Dependency rõ, test dễ, hỗ trợ final field và tránh trạng thái thiếu dependency. [cite: 605]

76
New cards

@Component, @Service, @Repository khác gì?

Đều là stereotype bean; @Service và @Repository thể hiện vai trò tầng rõ hơn. [cite: 605]

77
New cards

Spring Boot giải quyết vấn đề gì?

Giảm cấu hình thủ công nhờ starter, auto-configuration và embedded server. [cite: 605]

78
New cards

@SpringBootApplication gồm ý nghĩa gì?

Là annotation tổng hợp phổ biến cho configuration, auto-configuration và component scanning. [cite: 605]

79
New cards

Controller có nên viết business logic?

Không. Controller nên mỏng và giao logic nghiệp vụ cho Service. [cite: 605]

80
New cards

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

Tách contract API khỏi entity và kiểm soát dữ liệu vào/ra. [cite: 608]

81
New cards

@Valid có tác dụng gì?

Kích hoạt Bean Validation đối với request DTO. [cite: 608]

82
New cards

@RestControllerAdvice dùng làm gì?

Xử lý exception tập trung và chuẩn hóa response lỗi. [cite: 608]

83
New cards

JpaRepository cung cấp gì?

CRUD, pagination, sorting và extension point repository. [cite: 608]

84
New cards

Query method là gì?

Spring Data tạo query dựa trên tên method repository. [cite: 608]

85
New cards

Khi nào dùng Specification?

Khi cần ghép nhiều điều kiện filter động và tái sử dụng predicate. [cite: 608]

86
New cards

Tại sao không expose entity trực tiếp?

Entity có quan hệ, lifecycle và dữ liệu nội bộ; expose trực tiếp khó kiểm soát contract và có thể gây lazy/JSON issue. [cite: 608]

87
New cards

Business validation nên nằm đâu?

Service layer, vì đây là nơi xử lý use case nghiệp vụ. [cite: 608]

88
New cards

Lỗi quên kiểm tra Lecturer tồn tại khi tạo Project gây gì?

Có thể tạo lỗi foreign key hoặc exception khó hiểu; service phải kiểm tra và trả lỗi nghiệp vụ rõ ràng. [cite: 608]

89
New cards

Swagger/OpenAPI có ích gì?

Mô tả và thử REST API thuận tiện trong quá trình phát triển và đào tạo. [cite: 608]

90
New cards

Flyway/Liquibase dùng để làm gì?

Quản lý migration schema database theo phiên bản. [cite: 608]

91
New cards

Actuator health endpoint dùng làm gì?

Cung cấp thông tin health cơ bản để theo dõi ứng dụng. [cite: 608]

92
New cards

Log cần tránh dữ liệu nào?

Secret, password, token và dữ liệu nhạy cảm không cần thiết. [cite: 608]

93
New cards

Unit test Service thường mock gì?

Mock repository và dependency bên ngoài để tập trung kiểm tra business rule. [cite: 608]