JAVA CORE + OOP + SPRING BOOT — Nội dung ôn tập cho fresher Backend (VPBank)

1. Danh sách chủ đề con theo độ ưu tiên

Ưu tiên CAO (gần như chắc chắn bị hỏi)

Ưu tiên TRUNG BÌNH

Ưu tiên THẤP (biết khái niệm là đủ, ít khi đào sâu với fresher)


2. Câu hỏi phỏng vấn khả năng cao + hướng trả lời

Câu 1: Trình bày 4 tính chất OOP, cho ví dụ thực tế

Câu 2: Abstract class vs Interface — khác nhau gì, khi nào dùng?

Câu 3: HashMap hoạt động như thế nào bên trong?

Câu 4: ArrayList vs LinkedList?

Câu 5: Contract giữa equals() và hashCode()? Chuyện gì xảy ra nếu vi phạm?

Câu 6: Tại sao String là immutable? Lợi ích gì?

Câu 7: Checked vs unchecked exception? Bạn thiết kế exception thế nào trong ứng dụng?

Câu 8: Stream API và Optional — dùng khi nào, cho ví dụ?

Câu 9: Heap vs Stack? Garbage Collection làm gì?

Câu 10: Race condition là gì? synchronized giải quyết thế nào? Cho ví dụ chuyển tiền.

Câu 11: IoC và DI trong Spring là gì? Tại sao constructor injection tốt hơn field injection?

Câu 12: @Component, @Service, @Repository, @Controller khác nhau gì? Bean scope mặc định là gì?

Câu 13: Spring Boot auto-configuration hoạt động thế nào? @SpringBootApplication gồm những gì?

Câu 14: Thiết kế REST API tạo giao dịch chuyển tiền: annotation nào, validate ra sao, lỗi trả về thế nào?

Câu 15: @Transactional hoạt động như thế nào? Vì sao gọi method @Transactional từ method khác cùng class lại không có transaction?

Câu 16: Lazy vs Eager fetching trong JPA? N+1 problem là gì và fix thế nào?


3. Lưu ý xuyên suốt khi trả lời (góc độ ngân hàng — nên chủ động lồng vào)