Please enable JavaScript.
Coggle requires JavaScript to display documents.
22102022 JAVA dev INTERVIEW - Coggle Diagram
22102022 JAVA dev INTERVIEW
Setup Environment
JDK = JRE + JVM
OracleJDK, OpenJDK
JAVA 17 >> 09.20221
Compile, Interpreter
Data Structure
Data Type
Primitive Type(int, char, long, double)
Object Type(Item, Employee, Stream, Integer, Enum)
Memory Management: HEAP, STACK
Equals Operator => STACK
Pass by value(at stack)
Operation
for-index, for-each
while, do-while
break, continue
Phỏng vấn :check:
Trong JAVA có những cấu trúc dữ liệu nào
Phân biệt STACK và HEAP
Khi nào mình sẽ sử dụng int, Integer
int: luôn tồn tại giá trị
Integer: có thể có giá trị hoặc không(null)
====> lưu trữ thông tin từ database's column
OOP
Class, Object
Attributes, Methods
Constructor
Getter, Setter, ToString
Static - NonStatic
this, final
Access Modifier
Phỏng vấn :check:
Tại sao các thuộc tính trong class phải cho private và dùng getter, setter để truy cập, tại sao ko dùng public để truy cập trực tiếp
Có nên tạo private constructor không, vì sao
Util class
Singleton pattern
Builder pattern :no_entry:
Khi nào khai báo static cho thuộc tính, hàm và khi nào không
Giải thích ý nghĩa của từ khóa final
Có thể cập nhật giá trị của biến khi để final được không
=> final at stack - không cho cập nhật giá trị ở stack
=> không thể sử dụng toán tử gán =
OOP Features
Encapsulation
Polimorphism
Inheritance
Abstraction
Phỏng vấn :check:
Em biết OOP là gì, có tính chất nào ?
Em đã áp dụng tính chất đó trong code ở đâu, cho ví dụ ?
Tính chất đóng gói là gì. Cho ví dụ ?
Phân biệt interface với abstract class. Khi nào sử dụng
Trong JAVA có đa thừa kế không. Giải thích và cho ví dụ
Trong interface, phương thức có thể chứa body được không
Cho ví dụ về thừa kế
Như thế nào là đa hình. Vì sao Java convention khai báo List<T> list = new ArrayList<>() mà ko phải ArrayList<T> list = new ArrayList<>()
Functional Interface là gì ? Khi nào sử dụng
Làm thế nào để class con không được phép kế thừa từ class cha. VD String, Integer, Double
Class cha là final class. 1 class là final thì nó sẽ là immutable class
Exception
Exception Types
Compile-Checked Exception
extends Exception
Runtime-Unchecked Exception
extends RuntimeException
Exception Handler
try/catch/finally
throw/throws
Phỏng vấn :check:
Trong Java có mấy loại exception
Cách xử lý lỗi khi bị ngoại lệ như thế nào
Phân biệt final và finally
Khái niệm Seriallizable
Libraries
Random
Math
DateTime
JAVA07
java.util.Date(both)
Calender
SimpleDateFormat
JAVA08
LocalDate(ngày tháng năm)
LocalTime(giờ phút giây)
LocalDateTime(both)
DateTimeFormatter
TimeZone
Rounding
NumberFormat.getInstance
DecimalFormat with pattern #,###
BigDecimal.value(123,256).setScale(2, RoundUp)
Phỏng vấn :check:
Hạn chế của ngày tháng năm trong JAVA07
Bài tập
String
Phỏng vấn :check:
Phân biệt String object và String literal
Phân biệt String Immutable và String Mutable
(StringBuffer StringBuilder)
Phân biệt khi nào sử dụng StringBuffer, StringBuilder
StringBuilder - support single thread
StringBuffer - support multiple threads
String Immutable
String Object
String Literal
String Mutable
StringBuilder
StringBuffer
Working with Array(s)
Phỏng vấn :check:
Cho mảng gồm n phần tử. Viết 1 phương thức có thể tính tổng, hiệu, tích, thương của n phần tử đó ==> reduce: Stream<T>
PrimitiveStream ==> sum(), sub() .... ==> Strategy Pattern
Có thể xóa một phần tử bất kỳ từ mảng không
Mảng có mảng nguyên thủy và mảng đối tượng
Cho mảng đối tượng Item(id, name, price). Làm thế nào
để sắp xếp mảng theo price tăng dần
Comparable, Comparator
Phân biệt mảng và danh sách liên kết
Thuật toán sắp xếp
Bubble Sort
Insertion Sort
Quick Sort
Selection Sort
Collection
Khi nào nên sử dụng Array, List, Set, Map, Stack, Queue
Phân biệt ArrayList LinkedList
Phân biệt HashSet và TreeSet
Phân biệt HashMap và TreeMap
Phân biệt HashSet và LinkedHashSet
Làm sao, cơ chế để các phần tử trong Set, Map không trùng nhau - phải override hashcode và equals
Generic Type
Có mấy loại Generic Type
Generic Class -- ArrayList<T>
Generic Interface -- List<T> Map<K, V>
Generic Method -- compareTo(T t1, T t2);
Parameterized Type: E, T, M, K, V -- extends
Willcard: ? -- extends, super
Có thể tự define ra 1 cấu trúc dữ liệu riêng để sử dụng trong dự án - Có những chức năng cơ bản như add, update, remove, select, removeIf, removeAll hỗ trợ truyền, gọi tất cả các kiểu dữ liệu như Collection không. Code ra ===
CustomList<T>
Stream
Stream là gì ? Khi nào sử dụng Stream
Traversable once
Phân biệt intermediate và terminate operation trong stream
Tại sao mình không lưu dữ liệu trong Stream sau khi xử lý mà phải convert sang kiểu khác
Phân biệt Collection và Stream
Lưu trữ dữ liệu
Hàm thao tác
A có nghe nhắc về filter, map - ví dụ code cho a đoạn dùng hàm đó - vì sao truyền lambda vào
Lambda là gì - Không có lambda code được ko
GIT
Git là gì - Sử dụng như nào
Commit là cái gì - khi nào mình commit
Branch là gì - Khi nào mình tạo branch - để làm gì
Có những cách nào để gộp branch
Phân biệt merge, rebase, fetch và cherry-pick
Khi push code lên remote bị reject thì phải xử lý như thế nào
Phân biệt fetch và clone và pull
Phân biệt pull và pull --rebase
TH là có đi làm --> Quy trình làm việc - workflow trong dự án cũ bạn đang làm là như thế nào giải thích ra
Database
Phân biệt DDL và DML
Phân biệt DELETE và TRUNCATE
Có những loại JOIN nào - Phân biệt
Index là gì. Tại sao và khi nào phải đánh index
TH người đi làm - Database trong dự án cũ có bao nhiêu table, dữ liệu kích cỡ bao nhiêu - Có khi nào gặp performace chưa - Nếu gặp thì đã xử lý thế nào
VIEW là gì
Phân biệt Function với Procedure
Trigger là gì - Khi nào sử dụng
Khóa chính là gì, Khóa ngoại là gì
Trong 1 table có thể có nhiều khóa chính không
Một khóa chính, ngoại có thể chứa nhiều column không
ORM framework
JPA/Hibernate
Khái niệm ORM
Phân biệt JDBC/JPA/Hibernate
Cho ví dụ về ORM và cách sử dụng
Phân biệt Lazy/Eager map/fetch
APIs in JPA/Hibernate
First Level Cache, Second Level Cache
HTML/CSS/JS/JQuery
Spring Framework
Thread/Runnable Process
Thread là gì ? Khi nào sử dụng Thread
Thread life cycle, cho ví dụ
Phân biệt wait, notify và stop, resume
Phân biệt Thread và Runnable
Cho ví dụ về Thread và sử dụng trong thực tế
Làm thế nào để 5 threads có thể thực thi 1000 tasks, quản lý thế nào
Thread pool là gì. Cách hoạt động
Sử dụng Thread để phân biệt StringBuilder và StringBuffer