You are on page 1of 36

OOP là gì?

Các đặc điểm của OOP

Bạn hiểu gì về Đối tượng?

Định nghĩa Lớp (class)?


Class có thể chứa những kiểu biến nào?

Biến local hay biến cục bộ là gì?

Bạn hiểu gì về Access Modifier?

JAR file là gì?


Constructor là gì và constructor dùng để làm gì?
Có thể tạo constructor final không?

Biến static là gì?

Phương thức static là gì?

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

Chuyện gì xảy ra khi phương thức main không có static?


Trong java 1 class có thể kế thừa nhiều class khác được không?
super trong java là gì?

Overloading (nạp chồng) phương thức là gì?


Tại sao overloading phương thức không xảy ra khi thay đổi kiểu giá trị trả về?

Ghi đè (overriding) phương thức là gì?

Có thể ghi đè phương thức static không?

Biến final là gì?


Phương thức final là gì?
Lớp final là gì?

Interface là gì?

Có thể khai báo một phương thức của interface với từ khóa static không?
Một interface có thể là final không?
Có phải mỗi khối try phải đi kèm với một khối catch?

Khối finally là gì?


Khối finally có thể được sử dụng mà không cần khối catch không?

Có trường hợp nào khối finally không được thực thi không?

Ý nghĩa của immutable (bất biến) trong String là gì?

Tại sao các đối tượng String trong java là immutable?

Có bao nhiêu cách để tạo ra một đối tượng String trong java?

Sự khác nhau giữa String và StringBuffer là gì?


Sự khác nhau giữa StringBuffer và StringBuilder là gì?

Nested class (lớp lồng nhau) là gì?


Có thể khai báo interface trong class không?
Có thể khai báo một class trong interface không?

Sự khác nhau giữa List và Set là gì?


Sự khác nhau giữa HashSet và TreeSet là gì?
Sự khác nhau giữa Set và Map là gì?

NullPointerException là gì?

Các lớp Wrapper là gì?

Điểm khác nhau giữa lệnh break và lệnh continue?


Nếu một biến được khai báo là private, thì nó có thể được truy cập trong phạm

Generic là gì
Exception có mấy loại
OOP (viết tắt của Object Oriented Programming) – lập trình hướng đối tượng là
một phương pháp lập trình dựa trên khái niệm về lớp và đối tượng. OOP tập trung
vào các đối tượng thao tác hơn là logic để thao tác chúng, giúp code dễ quản lý, tái
sử dụng được và dễ bảo trì.Lớp bạn có thể hiểu nó như là khuôn mẫu, đối tượng là
một thực thể thể hiện dựa trên khuôn mẫu đó. Tính “đóng gói” là việc đưa tất cả
thông tin, dữ liệu quan trọng vào bên trong một đối tượng (object),Che dấu dữ
liệu (Data Hiding) là việc một số dữ liệu (data) và hàm/phương thức
(functions/methods) được class che giấu đi (ở dạng private) để đảm bảo rằng các
dữ liệu đó sẽ được truy cập và sử dụng đúng mục đích, đúng cách thông qua các
hàm/phương thức (functions/methods) ở dạng public mà class cung cấp. Bạn
không thể truy cập đến các private data hoặc gọi đến private methods của class từ
bên ngoài class đó.
Tính kế thừa cho phép xây dựng một lớp mới (lớp Con), kế thừa và tái sử dụng các
thuộc tính, phương thức dựa trên lớp cũ (lớp Cha) đã có trước đó.
Các lớp Con kế thừa toàn bộ thành phần của lớp Cha và không cần phải định nghĩa
lại. Lớp Con có thể mở rộng các thành phần kế thừa hoặc bổ sung những thành
phần mới.Tính đa hình trong lập trình OOP cho phép các đối tượng khác nhau thực
thi chức năng giống nhau theo những cách khác nhau. có overload lúc complie,
override lúc runtime. Tính trừu tượng giúp loại bỏ những thứ phức tạp, không cần
thiết của đối tượng và chỉ tập trung vào những gì cốt lõi, quan trọng và Trong Java,
chúng là sử dụng abstract class và abstract interface để có tính trừu tượng.

Đối tượng là một thực thể tại runtime, trạng thái của nó được lưu trữ trong các
trường và hành vi được thể hiện thông qua các phương thức.
Các phương thức vận hành trên trạng thái nội tại của đối tượng và đóng vai trò
như là cơ chế chính để giao tiếp giữa các đối tượng với nhau.

Một lớp là một thiết kế (blueprint) từ đó các đối tượng riêng lẻ được tạo.
Một lớp có thể chứa các trường và các phương thức để miêu tả hành vi của một
đối tượng.
Một lớp có thể gồm biến local, biến instance, và biến lớp.

Các biến được định nghĩa bên trong phương thức, constructor hoặc các khối được
gọi là biến local.
Biến này sẽ được khai báo và khởi tạo bên trong phương thức và nó sẽ bị hủy khi
phương thức kết thúc.

Java cung cấp một số Access Modifier để thiết lập mức độ truy cập cho các lớp, các
biến, phương thức và constructor. Một thành viên có khả năng truy cập mặc định
khi không có Access Modifier nào được xác định.

JAR là viết tắt của Java Archive và nó kết hợp nhiều file lại thành một. Nó giữ các
lớp Java trong một thư viện. JAR file được xây dựng trên định dạng ZIP file và có
đuôi là .jar.
constructor là một phương thức đặc biệt, nó được dùng để khởi tạo và trả về đối
tượng của lớp mà nó được định nghĩa. Constructor sẽ có tên trùng với tên của lớp
mà nó được định nghĩa và chúng không được định nghĩa một kiểu giá trị trả về.
Ngoài ra, các nhà developer cũng có thể sử dụng access modifiers trong khi khai
báo Constructor.
không, constructor không thể là final.

Biến static có thể được sử dụng để tham chiếu thuộc tính chung của tất cả đối
tượng (mà không là duy nhất cho mỗi đối tượng), ví dụ như tên công ty của nhân
viên, tên trường học của các sinh viên, …
Biến static lấy bộ nhớ chỉ một lần trong Class Area tại thời gian tải lớp đó.

Một phương thức static thuộc lớp chứ không phải đối tượng của lớp.
Một phương thức static gọi mà không cần tạo một instance của một lớp.
Phương thức static có thể truy cập biến static và có thể thay đổi giá trị của nó.

Bởi vì không cần thiết phải tạo đối tượng để gọi phương thức static.
Nếu nó là phương thức non-static, JVM đầu tiên tạo đối tượng và sau đó gọi
phương thức main() mà có thể gây ra vấn đề về cấp phát bộ nhớ bộ nhớ phụ.
Chương trình được biên dịch, nhưng gặp lỗi ngoại lệ tại runtime là
"NoSuchMethodError".
Không
Nó là một từ khóa mà tham chiếu trực tiếp đến đối tượng của lớp cha.

Nếu một lớp có nhiều phương thức có tên giống nhau nhưng các tham số khác
nhau, được gọi là overloading phương thức (nạp chồng phương thức). Nó giúp
code rõ ràng, dễ hiểu hơn.
Bởi vì đó là sự không rõ ràng, không biết gọi phương thức nào khi runtime.

Nếu lớp con có phương thức giống lớp cha được gọi là ghi đè (overriding) phương
thức trong java.

Nói cách khác, nếu lớp con cung cấp sự cài đặt cụ thể cho phương thức đã được
cung cấp bởi một lớp cha của nó được gọi là ghi đè (overriding) phương thức trong
java.

không thể ghi đè phương thức static vì chúng thuộc về class chứ không thuộc về
đối tượng.
Nếu bạn tạo một biến với từ khóa final, bạn sẽ không thể thay đổi được giá trị của
biến đó (hằng số).
Phương thức final không thể được ghi đè.
Lớp final không thể được kế thừa.

Một Interface trong Java là một bản thiết kế của một lớp. Nó chỉ có các phương
thức trừu tượng. Interface là một kỹ thuật để thu được tình trừu tượng hoàn toàn
và đa kế thừa trong Java.
Không. Vì mặc định các phương thức của một interface là trừu tượng, từ khóa
static và abtract không thể được sử dụng chung với nhau.
Không. Vì cài đặt phải được cung cấp bởi một lớp khác.
Nó không phải là cần thiết mà mỗi khối thử phải được theo sau bởi một khối
catch. Nó phải được theo sau bởi một khối catch hoặc một khối finally. Và bất kỳ
trường hợp ngoại lệ có thể bị ném sẽ được khai báo với từ khóa throws của
phương thức.
Khối lệnh finally trong java được sử dụng để thực thi các lệnh quan trọng như
đóng kết nối, đóng các stream,…
Khối lệnh finally trong java luôn được thực thi cho dù có ngoại lệ xảy ra hay không.
Khối lệnh finally trong java được khai báo sau khối lệnh try hoặc sau khối lệnh
catch.
Có. Bởi khối try. Khối finally phải theo sau khối try hoặc catch.
Khối finally không được thực thi nếu chương trình bị thoát (bằng cách gọi
System.exit() hoặc lỗi phần cứng.
Ý nghĩa đơn giản của immutable là không thể sửa đổi hoặc không thể thay đổi
được. Một khi đối tượng String đã được tạo ra, giá trị của nó không thể thay đổi.

Bởi vì java sử dụng khái niệm về string literal. Giả sử có 5 biến tham chiếu, tất cả
các tham chiếu đến một đối tượng "hello". Nếu một biến tham chiếu thay đổi giá
trị của đối tượng, nó sẽ bị ảnh hưởng đến tất cả các biến tham chiếu khác. Đó là lý
do tại sao đối tượng String trong java immutable (bất biến).

Có 2 cách để tạo đối tượng String:

Sử dụng string literal


Sử dụng từ khóa new
String là một đối tượng immutable (bất biến). StringBuffer là môt đối tượng
mutable (có thể biến đổi).
StringBuffer là đồng bộ còn StringBuilder là KHÔNG đồng bộ.

Một lớp được khai báo bên trong một lớp khác được gọi là lớp lồng nhau. Có 4 loại
lớp bên trong lớp lồng nhau: member inner class, local inner class, annonymous
inner class và static nested.
Có. Nó được biết đến như nested interface.
Có. Nhưng chúng không liên quan đến nhau.
List có thể chứa các phần tử trùng lặp (dublicate), trong khi Set chỉ chứa các phần
tử duy nhất.
HashSet không duy trì thứ tự nào, trong khi TreeSet duy trì thứ tự tăng dần.
Set chỉ chứa giá trị, trong khi Map chứa cặp key và value.
Một NullPointerException được ném khi gọi phương thức instance của một đối
tượng Null, truy cập hoặc sửa đổi các trường của một đối tượng Null,…
Đây là các lớp cho phép các kiểu dữ liệu gốc để được truy cập như là các đối
tượng. Ví dụ: Integer, Character, Double, Boolean, …

Lệnh break chấm dứt một lệnh mà nó áp dụng (switch, for, do, hoặc while). Một
lệnh continue được sử dụng để kết thúc vòng lặp hiện tại và trả về điều khiển cho
lệnh vòng lặp.
Biến private chỉ có thể được truy cập bên trong lớp mà nó được khai báo.
Generics là một tính năng của Java giúp cho lập trình viên có thể chỉ định rõ kiểu
dữ liệu mà họ muốn làm việc với một class, một interface hay một phương thức
nào đó.
Trong Java có 3 loại exception là Error, checked exception, và unchecked exception
(runtime exception).

Error: là những lỗi nghiêm trọng xảy ra đối khi chương trình hoạt động mà lập trình
viên không thể kiểm soát. Ví dụ như lỗi phần cứng, tràn bộ nhớ, hay lỗi của JVM.
Checked exceptions: lã những exception ta phải xử lý ngai khi viết code, vì nó được
kiểm tra bởi trình biên dịch Javac. Ví dụ: ClassNotFoundException,
NoSuchFieldException...
Unchecked exceptions: là những excepton chỉ xảy ra khi chương trình chạy, nghĩa
là trình biên dịch Javac không "phát hiện" ra khi biên dịch, do vậy programmer
không thể xử lý khi viết code. Ví dụ: NullPointerException,
ArrayIndexOutOfBoundsException, DivideByZeroException...
Level

ALL

ALL
ALL
ALL

ALL

ALL
ALL
ALL

ALL
ALL

ALL

ALL

ALL

ALL

ALL
ALL

ALL
ALL
ALL

ALL
ALL
ALL

ALL

ALL

ALL
ALL
SQL là gì?

Sự khác biệt giữa lệnh ‘delete’ và ‘truncate’ là gì?

SQL Server là gì?

‘table’ và ‘field’ là gì?

Định nghĩa JOIN và các loại JOIN

'view' là gì?

‘constraint’ là gì?

‘query’ là gì?

Primary Key là gì?


Unique Key là gì?

Hãy giải thích ‘index’


Một bảng có thể có nhiều hơn một khóa ngoại không?

Sự khác nhau giữa char và varchar?

Phân biệt stored procedure ,function và trigger,view

Phân biệt JOIN and UNION

Phân biệt UNION and UNION ALL


WHERE clause and HAVING clause
Làm thế nào để bạn thêm một cột vào một bảng?

Trigger là gì ?

DML và DDL là gì?


Lệnh nào để đổi tên một cột trong đầu ra của truy vấn SQL?

Sự khác biệt giữa các lệnh TRUNCATE, DELETE và DROP?

Sự khác nhau giữa UNIQUE và PRIMARY KEY constraints là gì?

Subquery là gì?

Tối ưu hoá truy vấn là gì?

Collation là gì?

Lợi ích của Views là gì?


Schema là gì?
SQL (Structured Query Language) là viết tắt của Ngôn ngữ truy vấn có cấu trúc.
Nó chủ yếu là một ngôn ngữ quản lý cơ sở dữ liệu. Nó không phải là ngôn ngữ
lập trình tự nhiên, nhưng tiêu chuẩn của nó hoàn toàn có thể mở rộng nó thành
ngôn ngữ lập trình - đó là lý do tại sao hầu hết mọi người gọi nó là một “ngôn
ngữ lập trình”. ALL

Sự khác biệt chính “delete” là lệnh xóa một hàng từ bảng, trong khi “truncate”
xóa tất cả chúng.

Một điểm khác biệt nữa là khi sử dụng “delete”, nếu có sự cố hoặc không theo
kế hoạch, bạn có thể thực hiện khôi phục dữ liệu - điều này không thể thực hiện
được sau khi lệnh “truncate” được thực hiện. Ngoài ra, lệnh truncate thực hiện
nhanh hơn. ALL
SQL Server là một hệ thống quản lý cơ sở dữ liệu (Database Management
System - DBMS). Nó tập hợp và phân tích dữ liệu, cập nhật và quản trị cơ sở dữ
liệu. ALL
Một “table“ trong hệ thống dữ liệu được tổ chức đơn giản thành các hàng và
cột riêng biệt. Một “field” là một số cột trong một bảng. ALL

Lệnh “join” kết hợp các hàng từ các bảng khác nhau. Cách các hàng này được
kết hợp phụ thuộc vào cột liên quan tham gia chúng. Với lệnh này, bạn có thể
hợp nhất hai bảng thành một hoặc đơn giản là truyền dữ liệu từ bảng này sang
bảng khác.
Từ khóa JOIN được dùng để nạp dữ liệu từ 2 hay nhiều bảng liên quan. Sử dụng
từ khóa JOIN khi cần truy vấn các cột dữ liệu từ nhiều bảng khác nhau để trả về
trong cùng một tập kết quả.

Các loại JOIN:

INNER JOIN
LEFT OUTER JOIN
RIGHT OUTER JOIN
FULL OUTER JOIN
CROSS JOIN
SELF JOIN ALL

Một “view” đơn giản là một đại diện ảo của một “table“. Hơn nữa, các view có
thể có nhiều dữ liệu được biểu thị và kết hợp - điều đó rất phụ thuộc vào tình
huống và mối quan hệ. 2 UP

Ràng buộc (Constraint) là các quy tắc được áp dụng trên các cột dữ liệu của một
bảng. Chúng được sử dụng để kiểm tra tính hợp lệ của dữ liệu đầu vào, đảm bảo
tính chính xác, độ tin cậy và tính toàn vẹn của dữ liệu trong database. ALL

Như chính thuật ngữ này, một query (truy vấn) chỉ đơn giản là một câu hỏi. Câu
hỏi này được gửi đến cơ sở dữ liệu thông qua một mã code cụ thể để lấy một số
loại thông tin từ nó. ALL
Khóa chính (Primary key) là một cột hoặc một tập hợp các cột xác định duy nhất
mỗi hàng trong bảng. ALL
Khóa duy nhất (Unique Key) là những gì xác định duy nhất một hàng trong bảng
như được đề cập trong phần giải thích Khóa chính.
Index (chỉ mục) là phương pháp nâng cao hiệu suất, cụ thể là - lấy thông tin từ
cơ sở dữ liệu với tốc độ và hiệu quả cao hơn. 2 UP
Một bảng có thể có nhiều hơn một khóa ngoại nhưng chỉ có một khóa chính. ALL

Khi được lưu trữ trong cơ sở dữ liệu, varchar chỉ sử dụng không gian được phân
bổ. Ví dụ. nếu bạn có một varchar (1999) và đặt 50 byte trong bảng, nó sẽ sử
dụng 52 byte(2 byte tiền tố chiều dài).

Nhưng khi được lưu trữ trong cơ sở dữ liệu, char luôn sử dụng độ dài tối đa và
được đệm trắng. Ví dụ. nếu bạn có char (1999) và đặt 50 byte trong bảng, nó sẽ
tiêu thụ 2000 byte. 2 UP

1. Khung nhìn (view) có thể được xem như là một bảng “ảo” trong cơ sở dữ liệu
có nội dung được định nghĩa thông qua một truy vấn (câu lệnh SELECT). Như
vậy, một khung nhìn trông giống như một bảng với dữ liệu quan sát được là một
tập bao gồm các dòng và các cột. Điểm khác biệt giữa khung nhìn và bảng là:
khung nhìn không được xem là một cấu trúc lưu trữ dữ liệu tồn tại trong cơ sở
dữ liệu. Thực chất dữ liệu quan sát được trong khung nhìn được lấy từ các bảng
thông qua câu lệnh truy vấn dữ liệu.

2. Một thủ tục là một đối tượng trong cơ sở dữ liệu bao gồm một tập nhiều câu
lệnh SQL được nhóm lại với nhau thành một nhóm (như tập tin BAT trong DOS
vậy). Khi một thủ tục lưu trữ đã được định nghĩa, nó có thể được gọi thông qua
tên thủ tục, nhận các tham số truyền vào, thực thi các câu lệnh SQL bên trong
thủ tục và có thể trả về các giá trị sau khi thực hiện xong.
3. Một trigger là một đối tượng với nội dung là một tập các câu lệnh SQL (tương
tự thủ tục). Mỗi một trigger gắn liền với một bảng nào đó trong CSDL và được tự
động kích hoạt khi xảy ra những giao tác làm thay đổi dữ liệu trong bảng
(INSERT, UPDATE, DELETE).

Điểm khác biệt giữa thủ tục lưu trữ và trigger là: các thủ tục lưu trữ được thực
thi khi người sử dụng có lời gọi đến chúng còn các trigger lại được "gọi" tự động
khi xảy ra những giao tác làm thay đổi dữ liệu trong các bảng

4. Function: giống như produre nhưng có kết quả trả về và không thể thực thi
các câu lệnh làm thay đổi dữ liệu của hệ thống 2 UP
A Join: cho phép kết nối dữ liệu liên quan trong các bảng khác nhau
A Union: hợp dữ liệu của 2 bảng mà có các cột loại data giống nhau ALL
UNION và UNION ALL đều dùng để hợp hai tập bản ghi cùng cấu trúc, nhưng
giữa hai mệnh đề có một khác biệt khá tinh tế: UNION loại bỏ các bản ghi trùng
lặp trước khi trả lại kết quả, còn UNION ALL giữ lại tất cả các bản ghi từ hai tập
ban đầu ALL
where là câu lệnh dùng để đặt điều kiện lọc trên từng bộ.
Having cũng là câu lệnh đặt điều kiện nhưng là ở trên 1 nhóm xác định. thường
là đi kèm với câu lệnh group by 2 UP
ALTER TABLE table_name ADD (column_name); ALL
Trigger là một thủ tục dược thực thi từ phía máy chủ CSDL khi một sự kiện bảng
xảy ra (Chèn, cập nhật hoặc xóa lệnh thực hiện đối với một bảng cụ thể) . 2 UP

DML là viết tắt của Ngôn ngữ Thao tác Dữ liệu ( Data Manipulation Language):
INSERT, UPDATE và DELETE là các câu lệnh DML.
DDL là viết tắt của Ngôn ngữ Định nghĩa Dữ liệu (Data Definition Language):
CREATE, ALTER, DROP, RENAME là các câu lệnh DDL. 2 UP
SELECT column_name AS new_name FROM table_name; ALL

DELETE xóa một hoặc tất cả các hàng từ một bảng dựa trên điều kiện và có thể
được phục hồi lại.
DROP xóa hoàn toàn một bảng từ cơ sở dữ liệu.
TRUNCATE xóa tất cả các hàng từ một bảng bằng cách phân bổ các trang bộ nhớ
và không thể phục hồi lại ALL

Một bảng có thể chỉ có một PRIMARY KEY và có thể không có hoặc có mộ hay
nhiều UNIQUE keys.
PRIMARY KEY không thể chứa giá trị Null , UNIQUE có thể chứa giá trị Null. ALL
Truy vấn con (còn được gọi truy vấn phụ hay truy vấn lồng nhau) là một truy vấn
bên trong truy vấn SQL khác và được nhúng bên trong mệnh đề WHERE. ALL
Tối ưu hóa truy vấn là một quá trình trong đó hệ thống cơ sở dữ liệu so sánh các
chiến lược truy vấn khác nhau và chọn truy vấn với chi phí thấp nhất. 2 UP
Bộ quy tắc định nghĩa cách dữ liệu được lưu trữ, cách phân biệt chữ hoa chữ
thường và ký tự Kana có thể được xử lý như thế nào. ALL

Chế độ xem hạn chế quyền truy cập vào dữ liệu vì chế độ xem có thể hiển thị
các cột được chọn từ bảng.
Có thể sử dụng chế độ xem để truy vấn các kết quả tìm kiếm phức tạp. Ví dụ:
chế độ xem có thể được sử dụng để truy vấn thông tin từ nhiều bảng mà không
có sự hiểu biết của người dùng. 2 UP
Lược đồ là tập hợp các đối tượng cơ sở dữ liệu của Người dùng. ALL
những tính năng của Spring Framework là gì?

MVC' là gì?

‘dependency injection’ là gì?

‘Boot’ là gì?

IOC' là gì?
‘bean’ là gì?
Tại sao nên sử dụng ‘constructor injection’ cho injecting
bean?

AOP là gì?
‘join point’ là gì?

‘advice’ là gì?

Boot 'initilizr' sử dụng làm gì?


Có bao nhiêu cách để thực hiện Dependency Injection?

‘autowriting’ là gì?

@Autowired dùng để làm gì?

@RequestMapping dùng để làm gì?

Điều gì xảy ra khi sử dụng @Autowire cùng với @Qualifier?

Spring hỗ trợ những kiểu quản lý transaction nào?

Lợi ích của việc quản lý transaction bằng Spring Framework

Luồng đi trong mô hình MVC khi có 1 request được gửi đến


server là gì?

Kiến trúc Repository là gì?

Restful API là gì?

ORM là gì
Nhẹ khi nói về dung lượng (size) và tính minh bạch (transparency).
Trong Spring framework, các đối tượng cung cấp các phụ thuộc của chúng thay vì tạo hoặc tìm
kiếm các đối tượng phụ thuộc. Quá trình này được gọi là Inversion of Control (IOC).
Lập trình hướng theo khía cạnh trong Spring framework hỗ trợ phát triển gắn kết bằng cách tách
logic kinh doanh ứng dụng khỏi các dịch vụ hệ thống.
Spring framework tạo và quản lý vòng đời và cấu hình của các đối tượng ứng dụng.
Khung framework ứng dụng web Model-View-Control trong Java Spring có cấu hình cao. Ngoài ra,
nó cho phép sử dụng các khung framework khác thay vì nó.
Spring framework cung cấp một lớp trừu tượng chung để quản lý giao dịch.
Spring cung cấp lớp trừu tượng kết nối cơ sở dữ liệu Java để đơn giản hóa chiến lược xử lý lỗi.

MVC là mô hình thiết kế đươc viết tắt từ 3 thành phần là Model – View – Controller.

Model: Là bộ phận để lưu trữ và xử lý dữ liệu

View: Giao diện hiển thị, tương tác với người dùng

Controller: điều khiển luồng thực thi của chương trình

Dependency injection được sử dụng để cung cấp các phụ thuộc cụ thể nhất định cho các đối
tượng. Đó là một mẫu thiết kế làm cho các dự án mượt mà hơn và phù hợp hơn cho các hoạt
động như thử nghiệm.

Spring Boot là một phiên bản của Spring mà mục đích để làm cho ứng dụng tạo ra quá trình sắp
xếp hợp lý hơn. Một trong những tính năng chính của nó là loại bỏ nhu cầu xác định cấu hình
boilerplate (bản mẫu) - chắc chắn, điều này sẽ khiến rất nhiều nhà phát triển thích thú khi học
Spring boot hay sử dụng nó.
IOC là viết tắt của Inversion of Control. Nó là core container của Java Spring. Nó sử dụng phép
dependency injection được đề cập trước đó để quản lý và định cấu hình các ứng dụng tích hợp
khác nhau. Hiện tại có hai loại IOC có thể được đặt trong Java Spring - ApplicationContext và
BeanFactory.
“Bean” là một đối tượng được tích hợp và cấu hình bởi IOC container.
Lý do tại sao nên sử dụng loại injection này đơn giản là vì kiểu injection này làm cho quá trình kiểm
tra sau đó dễ dàng hơn rất nhiều.

AOP (Aspect-Oriented Programming) là viết tắt của Lập trình hướng theo khía cạnh. Nó khác với
OOP (Object-Oriented Programming - Lập trình hướng đối tượng) ở chỗ OOP tập trung vào các
lớp, trong khi đơn vị mô đun chính của AOP là khía cạnh. Trong AOP, các khía cạnh thực hiện và
nhấn mạnh mối liên quan xuyên suốt
Join point thể hiện một điểm trong chương trình nơi khung AOP sẽ được khởi tạo và áp dụng.
ất cứ khi nào một khía cạnh thực hiện một số loại hành động trong joinpoint đó, thì hành động đó
được gọi là một “advice”.

Các nhà phát triển sử dụng 'initilizr' vì họ muốn tối đa hóa năng suất trong khoảng thời gian ngắn
nhất có thể. Công cụ này tuyệt vời ở chỗ nó cung cấp một khuôn mẫu ban đầu cho dự án và đơn
giản hóa quá trình xây dựng tập lệnh.
Có ba cách để làm điều đó:

Constructor Injection
Setter Injection
Interface Injection
Trong Spring framework, chủ yếu là constructor và setter injection được sử dụng.
‘Autowriting‘ cho phép nhà phát triển tự động inject bean vào ứng dụng của mình mà không cần
can thiệp thủ công.
Lệnh @Autowired cho phép bạn linh hoạt quyết định nơi muốn wire đối tượng của mình. Lệnh
này làm cho quá trình dễ dàng và mượt mà hơn, cho phép độ chính xác cao hơn.
Lệnh này được sử dụng bất cứ khi nào bạn muốn sắp xếp một phương thức HTTP cụ thể đến một
lớp cụ thể. Bạn có thể sử dụng lệnh này trong cả hai cấp độ lớp và phương thức.
Kiểu kết hợp này được sử dụng khi có nhiều loại bean đơn khác nhau trong ứng dụng. Sự kết hợp
này phân biệt giữa từng bean có cùng kiểu dữ liệu.

Spring hỗ trợ hai kiểu quản lý transaction:

Programmatic transaction management: Có nghĩa là bạn có thể quản lý transaction với việc lập
trình. Điều này khiến mọi việc trở nên vô cùng tường minh và linh hoạt, tuy nhiên rất khó để
maintain.
Declarative transaction management: Có nghĩa là bạn phải tách biệt phần quản lý transaction với
business code. Chỉ sử dụng annotaion hoặc XML config để manage transaction.

Cung cấp một phương thức lập trình thích hợp cho việc sử dụng các transaction API khác nhau
như JDBC, Hibernate, JPA.
Cung cấp API đơn giản hơn.
Tiện lợi trong việc khai báo và sử dụng với Declarative transaction management.
Tích hợp dễ dàng với các data access abstraction.

Bước 1: Request gửi đến server sẽ vào controller

Bước 2: Controller phân tích cần lấy dữ liệu ở đâu nên sẽ gọi đến model

Bước 3: Model phân tích yêu cầu đề lấy dữ liệu cần thiết và trả về lại cho controller

Bước 4: Controller lấy dữ liệu đó gửi cho view để lấp đầy những chỗ trống của dữ liệu còn thiếu và
hiển thị giao diện cho client
Là 1 design patten, thiết kế thêm 1 tầng repository để tương tác với database. Giúp database
được bảo mật và an toàn hơn.

RESTful API là một tiêu chuẩn dùng trong việc thiết kế API cho các ứng dụng web (thiết kế Web
services) để tiện cho việc quản lý các resource. Nó chú trọng vào tài nguyên hệ thống (tệp văn
bản, ảnh, âm thanh, video, hoặc dữ liệu động…), bao gồm các trạng thái tài nguyên được định
dạng và được truyền tải qua HTTP.

ORM (Object Relational Mapping) là một kỹ thuật lập trình cho phép ánh xạ cơ sở dữ liệu đến các
đối tượng thuộc ngôn ngữ lập trình hướng đối tượng chẳng hạn như C#, Java,… (các table tương
ứng các class, mối ràng buộc giữa các table tương ứng quan hệ giữa các class ‘has a’ , ‘is a’).
2 up

1 up

2 up

2 up

2 up
2 up

2 up

2 up
2 up

2 up

2 up
2 up

2 up

ALL

ALL

1 UP

2 UP

2 UP

1 UP

2 UP
CẤU TRÚC DỮ LIỆU VÀ THUẬT TOÁN LÀ GÌ?
Cấu trúc dữ liệu là một hình thức tổ chức, lưu trữ dữ liệu theo hệ thống và thứ tự để có thể sử dụng tài liệu một cách tối ưu.T
tối ưu.Thuật toán(Algorithms) là một thủ tục từng bước, xác định một tập hợp các lệnh được thực hiện theo một thứ tự nhất định để có đ
eo một thứ tự nhất định để có được đầu ra mong muốn.
HTML là gì?

Có phải tất cả các thẻ đều phải có thẻ đóng?


Style sheet là gì?
Các phần tử rỗng là gì?
Sử dụng thẻ iframe để làm gì?
Thẻ Meta được dùng để làm gì trong hmtl?

Điểm khác biệt giữa “width: auto” và “width: 100%” trong CSS?

Thuộc tính “opacity” được dùng làm gì?


Điểm khác nhau giữa CSS và CSS3?

Làm sao để add 1 comments trong CSS?


Giải thích các giá trị của thuộc tính position: Fixed, Absolute, Relative, Static

Display:inline và display:block khác nhau thể nào?

Margin và padding khác nhau thế nào?


Thuộc tính float trong CSS thường dùng để làm gì?
HTML viết tắt của Hyper Text Markup Language (ngôn ngữ đánh dấu siêu văn bản). Nó là một ngôn ngữ của
World Wide Web.
Đây là một ngôn ngữ định dạng văn bản chuẩn được sử dụng để tạo và hiển thị các trang trên Web.

Không. Có một vài thẻ trong html mà không cần phải đóng thẻ ví dụ thẻ <image>, <br>, <hr>…
Một style sheet được sử dụng để xây dựng kiểu dáng thích hợp, thiết kế tốt cho trang web.
Phần tử HTML không có nội dung được gọi là phần tử rỗng. Ví dụ <br>, <hr>,…
Thẻ iframe được sử dụng để hiển thị dữ liệu từ một đường dẫn hoặc một trang web khác
Thẻ Meta trong html được các developer sử dụng để báo cho trình duyệt về mô tả trang, tác giả,
tập ký tự, các từ khóa và nhiều thứ khác.
Auto sẽ đạt điểm độ rộng đầy đủ và sẽ trừ đi độ rộng của border, margin, padding,…
100% sẽ buộc thẻ đó bằng độ rộng của thẻ cha và tự động nới rộng ra them nếu có them các border, padding,
margin,

Nó thể hiện như thuộc tính visibility và nó mờ dần từ 1-> 0 ( 1 -> 0.9 -> 0.8 …)
Một số tính năng nổi bật được bổ sung thêm trong CSS3: animation:
Xác định chuyển động của một thành phần appearance: Định dạng cho thành phần trông như giao diện chuẩn
gần với người dùng

Dùng cặp dấu /* comments */


Relative: Định vị trí tuyệt đối (vị trí bao ngoài), lúc này các thẻ HTML bên trong sẽ coi nó là thẻ cha.
Absolute: Định vị trí tương đối theo thẻ cha (thẻ khai báo relative) hoặc thẻ body nếu ko có khai báo.
Fixed: Định vị trí tương đối cho của sổ Browser của trình duyệt (khi kéo scroll nó sẽ không bị ẩn đi).
Static: Dạng mặc định - sẽ hiển thị theo đúng thứ tự của nó (thường dùng để hủy các thuộc tính bên dưới).

Block sẽ làm thẻ đó có space trước và sau nó, và space đó sẽ chiếm hết các width có sẵn.
Inline thì chỉ xài đủ width yêu cầu.
Hiểu đơn giản thì margin căn lề ngoài và padding căn lề trong của thẻ đó.
Dùng để đặt các thẻ HTML theo hướng nằm ngang, float thường dùng 2 giá trị left và right.
Để trình duyệt nhận biết trang html đó được viết ở phiên bản nào.
Level

ALL
ALL
ALL
ALL
ALL

ALL

ALL
ALL

ALL
ALL

ALL

ALL
ALL
ALL
ALL
JavaScript là gì?

Cách sử dụng tệp JavaScript bên ngoài?


Ngôn ngữ JavaScript có phân biệt chữ hoa chữ thường
không?
DOM là gì? Đối tượng document được sử dụng để làm gì?

Đối tượng window được sử dụng để làm gì?

Đối tượng history được sử dụng để làm gì?

Làm thế nào để commnet trong JavaScript

Làm thế nào để tạo hàm trong JavaScript?


Các kiểu dữ liệu JavaScript là gì?

Sự khác nhau giữa == và === là gì?

Sự khác biệt giữa giá trị undefined và giá trị null là gì?

Java và JavaScript có giống nhau không?

Lập trình bất đồng bộ là gì? Tại sao nó lại quan trọng trong
JavaScript?
JavaScript là một ngôn ngữ kịch bản. Nó khác với ngôn ngữ Java. Đó là nền tảng dựa trên đối
tượng, nhẹ và đa nền tảng. Nó được sử dụng rộng rãi để xác thực phía máy khách, nó là một phần
giúp tạo nên những trang web động

Sử dụng thẻ <Script>



DOM là viết tắt của Document Object Model. Một đối tượng document đại diện cho tài liệu html.
Nó có thể được sử dụng để truy cập và thay đổi nội dung của trang html.
Đối tượng window được tạo tự động bởi trình duyệt đại diện cho một cửa sổ trình duyệt.

Nó được sử dụng để hiển thị hộp thoại bật lên như hộp thoại alert, confirm, v.v.

Đối tượng history của trình duyệt có thể được sử dụng để chuyển sang các trang được lưu lại trong
lịch sử như quay lại và chuyển tiếp từ trang hiện tại hoặc trang khác. Có ba phương thức của đối
tượng history.

history.back()
history.forward()
history.go(number): tại trang web được lưu trong lịch sử với chỉ số number, number có thể âm
hoặc dương.

Có hai loại commnet trong JavaScript.

Dòng đơn: sử dụng //


Nhiều dòng: sử dụng dấu gạch chéo với ký hiệu dấu hoa thị là /* đây là commnet nhiều dòng */

Có hai loại kiểu dữ liệu trong JavaScript:

Các kiểu dữ liệu nguyên thủy.


Các kiểu dữ liệu không nguyên thủy.

Toán tử == chỉ kiểm tra tính bằng nhau, trong khi === kiểm tra tính bằng nhau và giá trị kiểu dữ liệu
tức là phải cùng kiểu dữ liệu.
Giá trị undefined: Giá trị không được xác định và không có từ khóa nào được gọi là giá trị
undefined
Giá trị null: giá trị được chỉ định rõ ràng bởi từ khóa "null" được gọi là giá trị null
Không, Java và JavaScript là hai ngôn ngữ khác nhau. Java là một ngôn ngữ lập trình mạnh mẽ, bảo
mật và hướng đối tượng trong khi JavaScript là một ngôn ngữ kịch bản phía máy khách với một số
hạn chế.
ALL

ALL

ALL

ALL
ALL

ALL

1 up

1 up

1 up

2 up
Components là gì?

Lifecycle chính của 1 component VueJS

Computed là gì

Mounted là gì?

filter là gì?

Router là gì?

Created được gọi khi nào?

Watcher
Component là một trong những tính năng quan trọng nhất trong Vue mà
mình cần phải biết. Nó giúp cho việc kế thừa các thành phần HTML cơ bản,
dễ dàng đóng gói và tái sử dụng code ALL

beforeCreate
created
beforeMount
mounted
beforeUpdate
updated
beforeDestroy
destroyed ALL
Computed property trong Vue.js được thể hiện dưới dạng một phương
thức hoặc một object chứa các phương thức setter và getter, nhưng khi bạn
gọi một computed property thì bạn sẽ gọi nó như một thuộc tính bình
thường. Và khi đó các hành động trong computed property sẽ được thực
thi. ALL

Ở quá trình này chúng ta đã có đầy đủ quyền truy cập vào data, template,
DOM (bằng cách gọi this.$el). Mình thường dùng mounted khi dùng chung
với Jquery để tác động vào các phần tử DOM ALL

Hàm filters luôn nhận giá trị đầu tiên của biểu thức. Sau đó lọc qua giá trị
thứ 2, rồi thứ 3... Giá trị thứ 2 sẽ nhận kết quả của giá trị thứ nhất. Các giá
trị sau cũng tương tự như vậy ALL
Vue Router là module được tích hợp sâu vào Vue, giúp bạn dễ dàng tạo các
route để điều hướng ứng dụng ALL
Ngay khi component được tạo, hàm created có thể được sử dụng để thao
tác với các dữ liệu trong data và các sự kiện mà các bạn thiết lập đã có thể
được kích hoạt. Nhưng template và DOM ảo chưa được mount và render,
tức là nếu các bạn truy cập đến các phần tử trong DOM lúc này sẽ không
được và báo lỗi ALL
theo dõi, nó có nhiệm vụ theo dõi sự thay đổi của dữ liệu và thực thi hành
động kèm theo. ALL
Làm sao để xác thực người dùng khi sử dụng rest api?
Cần kết xuất dữ liệu từ ứng dụng với lượng dữ liệu vài triệu bản ghi, làm cách nào để kết xuất 1 cách nhanh chóng và không gâ
Xử lý transaction trong 1 hệ thống microservices
Làm sao để 1 người dùng chỉ được đăng nhập ở 1 phiên, không cho phép đăng nhập ở nhiều thiết bị? Trình duyệt?
Giải pháp tăng tốc độ truy vấn dữ liệu với các dữ liệu ít thay đổi?
Giải pháp quản lý log với 1 hệ thống microservices
Hệ thống có nhiều giao dịch, làm cách nào để xử lý giao dịch một cách ổn định và không gây ảnh hưởng đến hệ thống?
nhanh chóng và không gây ảnh hưởng đến hệ thống?

Trình duyệt?

ng đến hệ thống?

You might also like