
Day Topic (nh ng n i ữ ộ
dung ôn t p)ậOutput
23/
Aug
Topic : Java core
Các Tính Ch t ấ
C a Java ủ
OOPs
Các ki u d ể ữ
li uệ
Các t khóa ừ
(static, final,
abstract ,
Interface ,
override,
overload…)
X lý ngo i l ử ạ ệ
trong java
1:Các Tính Ch t C a Java OOPsấ ủ
Tinh đong goi (encapsulation) và che gi u thông tin (information hiding) :ấ
Tr ng thái c a đi t ng đc b o v không cho các truy c p t code bên ngoài nhạ ủ ố ượ ượ ả ệ ậ ừ
thay đi trong thái hay nhìn tr c ti p.ổ ự ế . Đây là tính ch t đm b o s toàn v n, b o mấ ả ả ự ẹ ả
c a đi t ngủ ố ượ
Trong Java, tính đóng gói đc th hi n thông qua ph m vi truy c p (ượ ể ệ ạ ậ access modifi
Ngoài ra, các l p liên quan đn nhau có th đc gom chung l i thànhớ ế ể ượ ạ package.
Tính k th aế ừ (inheritance):
Tính k th a là kh năng cho phép ta xây d ng m t l p m i d a trên các đnh nghĩế ừ ả ự ộ ớ ớ ự ị
m t l p đã có. L p đã có g i là l p Cha, l p m i phát sinh g i là l p Con và k thộ ớ ớ ọ ớ ớ ớ ọ ớ ế ừ
c các thành ph n c a l p Cha, có th chia s hay m r ng các đc tính s n có mà kả ầ ủ ớ ể ẻ ở ộ ặ ẵ
ph i ti n hành đnh nghĩa l i.ả ế ị ạ
Tính đa hình (polymorphism):
Khi m t tác v đc th c hi n theo nhi u cách khác nhau đc g i làộ ụ ượ ự ệ ề ượ ọ tính đa hình
Nó đc th hi n rõ nh t qua vi c g i ph ng th c c a đi t ng. Các ph ng tượ ể ệ ấ ệ ọ ươ ứ ủ ố ượ ươ
hoàn toàn có th gi ng nhau, nh ng vi c x lý lu ng có th khác nhau. Tính đa hình cể ố ư ệ ử ồ ể
c p kh năng cho phép ng i l p trình g i tr c m t ph ng th c c a đi t ng, tấ ả ườ ậ ọ ướ ộ ươ ứ ủ ố ượ
ch a xác đnh đi t ng có ph ng th c mu n g i hay không. Đn khi th c hi n (ư ị ố ượ ươ ứ ố ọ ế ự ệ run-
time), ch ng trình m i xác đnh đc đi t ng và g i ph ng th c t ng ng cươ ớ ị ượ ố ượ ọ ươ ứ ươ ứ ủ
t ng đóượ
Trong Java, chúng ta s d ng n p ch ng ph ng th c (methodử ụ ạ ồ ươ ứ overloading) và ghi
ph ng th c (methodươ ứ overriding) đ có tính đa hình.ể
oN p ch ng (Overloading)ạ ồ : Đây là kh năng cho phép m t l p có nhi u thuả ộ ớ ề
tính, ph ng th c cùng tên nh ng v i các tham s khác nhau v lo i cũng nhươ ứ ư ớ ố ề ạ
s l ng. Khi đc g i, d a vào tham s truy n vào, ph ng th c t ng ngố ượ ượ ọ ự ố ề ươ ứ ươ ứ
đc th c hi n.ượ ự ệ
oGhi đè (Overriding): là hai ph ng th c cùng tên, cùng tham s , cùng ki u tươ ứ ố ể
v nh ng l p con vi t l i và dùng theo cách c a nó, và xu t hi n l p cha về ư ớ ế ạ ủ ấ ệ ở ớ
t c xu t hi n l p con. Khi dùng override, lúc th c thi, n u l p Con không cụ ấ ệ ở ớ ự ế ớ
ph ng th c riêng, ph ng th c c a l p Cha s đc g i, ng c l i n u cóươ ứ ươ ứ ủ ớ ẽ ượ ọ ượ ạ ế
ph ng th c c a l p Con đc g i.ươ ứ ủ ớ ượ ọ
Tính tr u t ngừ ượ (abstraction):
Tính tr u t ng là m t ti n trình n các chi ti t trình tri n khai và ch hi n th tính nừ ượ ộ ế ẩ ế ể ỉ ể ị
t i ng i dùng. Tính tr u t ng cho phép b n lo i b tính ch t ph c t p c a đi tớ ườ ừ ượ ạ ạ ỏ ấ ứ ạ ủ ố ư
b ng cách ch đa ra các thu c tính và ph ng th c c n thi t c a đi t ng trong lằ ỉ ư ộ ươ ứ ầ ế ủ ố ượ
trình.
Tính tr u t ng giúp b n t p trung vào nh ng c t lõi c n thi t c a đi t ng thayừ ượ ạ ậ ữ ố ầ ế ủ ố ượ
quan tâm đn cách nó th c hi n.ế ự ệ
Trong Java, chúng là s d ngử ụ abstract class và abstract interface đ có tính tr u tể ừ ư
2: Các ki u d li uể ữ ệ
Java có 2 lo i ki u d li u:ạ ể ữ ệ
Các ki u d li u nguyên th y (Primitive Data Tể ữ ệ ủ
boolean, byte, char, short, int, long, float, double.
Các ki u d li u tham chi u (Reference Types) :ể ữ ệ ế String
3: Các t khóa (static, final, abstractừ , Interface , override, overload…)
T khóa static trong Javaừ đc đ s d ng chính qu n lý b nh . Chúng ta có th áp dượ ể ử ụ ả ộ ớ ể ụ
khóa static v i các bi n, các ph ng th c, các kh i, các l p l ng nhau(nested class). Tớ ế ươ ứ ố ớ ồ ừ
static thu c v l p ch không thu c v instance(th hi n) c a l p.ộ ề ớ ứ ộ ề ể ệ ủ ớ
Trong java, Static có th là:ể
1. Bi n static:ế Khi b n khai báo m t bi n là static, thì bi n đó đc g i là bi n tĩnh,ạ ộ ế ế ượ ọ ế

bi n static.ế
2. Ph ng th c static:ươ ứ Khi b n khai báo m t ph ng th c là static, thì ph ng th c ạ ộ ươ ứ ươ ứ
là ph ng th c static.ươ ứ
3. Kh i static:ố Đc s d ng đ kh i t o thành viên d li u static.ượ ử ụ ể ở ạ ữ ệ
1. Bi n static có th đc s d ng đ tham chi u thu c tính chung c a t t c đi ế ể ượ ử ụ ể ế ộ ủ ấ ả ố
(mà không là duy nh t cho m i đi t ngấ ỗ ố ượ
2. Bi n static l y b nh ch m t l n trong Class Area t i th i gian t i l p đó.ế ấ ộ ớ ỉ ộ ầ ạ ờ ả ớ
T khóa final trong Javaừ đc s d ng đ h n ch ng i dùng. T khóa final có th đượ ử ụ ể ạ ế ườ ừ ể ượ
d ng trong nhi u ng c nh:ụ ề ữ ả
1. Bi n final:ế b n không th thay đi giá tr c a bi n final (nó s là h ng s ).ạ ể ổ ị ủ ế ẽ ằ ố
2. Ph ng th c final:ươ ứ b n không th ghi đè ph ng th c final.ạ ể ươ ứ
3. L p final:ớ b n không th k th a l p final.ạ ể ế ừ ớ
4. Bi n static final tr ng:ế ố M t bi n final mà không đc kh i t o t i th i đi m khaiộ ế ượ ở ạ ạ ờ ể
đc g i là bi n final tr ng.ượ ọ ế ố
T khóa final là m t h ng s không th thay đi giá tr . có th đc áp d ng v i các bi n,ừ ộ ằ ố ể ổ ị ể ượ ụ ớ ế
bi n final mà không có giá tr nào đc g i là bi n final tr ng ho c bi n final không đcế ị ượ ọ ế ố ặ ế ượ
t o. Nó ch có th đc kh i t o trong Constructor. ạ ỉ ể ượ ở ạ
*Phân bi t ệ
L p tr u t ngớ ừ ượ
Interface
L p tr u t ng có th có cácớ ừ ượ ể
ph ng th c abstract và non-ươ ứ
abstract
Interface ch có th có ph ngỉ ể ươ
th c abstractứ
L p tr u t ng không h tr đaớ ừ ượ ỗ ợ
k th aế ừ Interface h trỗ ợ đa k th aế ừ
L p tr u t ng có th có cácớ ừ ượ ể
bi nế final, non-final, static và
non-static
Interface ch có các bi nỉ ế static
và final
L p tr u t ng có th cóớ ừ ượ ể
ph ng th c static, ph ngươ ứ ươ
th c main và constructorứ
Interface không th có ph ngể ươ
th c static, main ho cứ ặ
constructor.
T khóa abstract đc s d ngừ ượ ử ụ
đ khai báo l p tr u t ngể ớ ừ ượ T khóa interface đc s d ngừ ượ ử ụ
đ khai báo Interfaceể
L p tr u t ng có th cung c pớ ừ ượ ể ấ
trình tri n khai c a Interfaceể ủ Interface không cung c p trìnhấ
tri n khai c th c a l pể ụ ể ủ ớ
abstract
Ví d : public abstract classụ
Shape{ public abstract void
draw(); }
Ví d : public interfaceụ
Drawable{ void draw(); }
Exception (ngo i l ) là m t tình tr ng b t th ng.ạ ệ ộ ạ ấ ườ
Trong java, ngo i l là m t s ki n làm gián đo n lu ng bình th ng c a ch ng trình. ạ ệ ộ ự ệ ạ ồ ườ ủ ươ
m t đi t ng đc ném ra t i runtime.ộ ố ượ ượ ạ
Có ba lo i ngo i l :ạ ạ ệ
1. Checked Exception
2. Unchecked Exception
3. Error.
1. Checked Exception
Các checked exception đc ki m tra t i compile-time.ượ ể ạ
2. Unchecked Exception
Các ngo i l unchecked không đc ki m tra t i compile-time mà chúng đc ki m tạ ệ ượ ể ạ ượ ể
runtime.
3. Error

Error là l i không th c u ch a đc, do ph n c ng, tràn b nh ….ỗ ể ứ ữ ượ ầ ứ ộ ớ
Các t khóa x lý ngo i l trong javaừ ử ạ ệ
1.Try-Catch
Kh i l nh try trong java đc s d ng đ ch a m t đo n code có th x y ra m t ngo i lố ệ ượ ử ụ ể ứ ộ ạ ế ả ộ ạ ệ
ph i đc khai báo trong ph ng th c.ả ượ ươ ứ
Sau m t kh i l nh try b n ph i khai báo kh i l nh catch ho c finally ho c c hai.ộ ố ệ ạ ả ố ệ ặ ặ ả
Kh i catch trong java đc s d ng đ x lý các Exception. Nó ph i đc s d ng sauố ượ ử ụ ể ử ả ượ ử ụ
try.
Các đi u l u ý. Ph i khai báo l i c th , c n có l nh x lý trong kh i catch không đc mề ư ả ỗ ụ ể ầ ệ ử ố ỉ
s p x p theo th t các cacth có l i b trc.ắ ế ứ ự ỗ ẽ
T khóa throw trong javaừ
T khoá throw trong javaừ đc s d ng đ ném ra m t ngo i l c th .ượ ử ụ ể ộ ạ ệ ụ ể
Chúng ta có th ném m t trong hai ngo i l checked ho c unchecked trong java bể ộ ạ ệ ặ ằ
khóa throw. T khóa throw ch y u đc s d ng đ ném ngo i l tùy ch nh (ngo i ừ ủ ế ượ ử ụ ể ạ ệ ỉ ạ
ng i dùng t đnh nghĩa). Chúng ta s h c ngo i l tùy ch nh trong bài sau.ườ ự ị ẽ ọ ạ ệ ỉ
T khóa throws trong javaừ đc s d ng đ khai báo m t ngo i l . Nó th hi n thông tiượ ử ụ ể ộ ạ ệ ể ệ
l p trình viên r ng có th x y ra m t ngo i l , vì v y nó là t t h n cho các l p trình viậ ằ ể ả ộ ạ ệ ậ ố ơ ậ
cung c p các mã x lý ngo i l đ duy trì lu ng bình th ng c a ch ng trình.ấ ử ạ ệ ể ồ ườ ủ ươ
Ngo i l checked có th đc ném ra ngoài và đc x lý m t hàm khác.ạ ệ ể ượ ượ ử ở ộ

24/
Aug
Topic : Java core
Các collection
Đa lu ng ồ
(Multithreadin
g) trong java
List: là m t. List có th ch a các ph n t trùng l p. Th ng có quy n ki m soátộ ể ứ ầ ử ặ ườ ề ể
xác v trí các ph n t đc chèn vào và có th truy c p chúng b ng ch s (v tị ầ ử ượ ể ậ ằ ỉ ố ị
chúng).
Set: là m t collection không th ch a 2 giá tr trùng l pộ ể ứ ị ặ
Map: là m t đi t ng ánh x m i key t ng úng v i m t giá tr . Map không thộ ố ượ ạ ỗ ươ ớ ộ ị ể
giá tr trùng l p. M i key có th ánh x đn nhi u nh t m t giá tr .ị ặ ỗ ể ạ ế ề ấ ộ ị
.List: ArrayList, LinkedList,Vector
ArrayList LinkedList
1) ArrayList n i b s d ngộ ộ ử ụ m ng ả
đngộ đ l u tr các ph n t .ể ư ữ ầ ử LinkedList n i b s d ngộ ộ ử ụ danh sách liên k t ế
doubly đ l u tr các ph n t .ể ư ữ ầ ử
2) Thao tác v i ArrayList làớ ch mậ b i vì ở
nó s d ng n i b m ng. N u b t k ử ụ ộ ộ ả ế ấ ỳ
ph n t nào đc xoá kh i m ng, t t c ầ ử ượ ỏ ả ấ ả
các bit đc chuy n trong b nh .ượ ể ộ ớ
Thao tác v i LinkedList làớ nhanh h nơ so v i Arrayớ
b i vì nó s d ng danh sách liên k t doubly do đóở ử ụ ế
không c n chuy n đi bit nào trong b nh .ầ ể ổ ộ ớ
3) L p ArrayList trong javaớ ch có ỉ
thể ho t đng nh m t listạ ộ ư ộ vì nó ch ỉ
implements giao ti p List.ế
L p LinkedList trong javaớ có thể ho t đng nh mạ ộ ư
list và queue(hàng đi)ợ vì nó implements các giao t
List và Deque.
4) ArrayList là t t h n trong vi c l u tr ố ơ ệ ư ữ
và truy c pậ d li u.ữ ệ LinkedList là t t h n trong vi c thao tácố ơ ệ d li uữ ệ
ArrayList Vector
1) ArrayList là không synchronized. Vector là synchronized.
2) ArrayList tăng 50% kích th c hi n ướ ệ
t i n u s ph n t v t quá kh năng ạ ế ố ầ ử ượ ả
ch a c a nó.ứ ủ
Vector tăng 100% nghĩa là tăng g p đôi kích th c ấ ướ
hi n t i n u s ph n t v t quá kh năng ch a ệ ạ ế ố ầ ử ượ ả ứ
c a nó..ủ
3) ArrayList không là m tộ l p legacyớ,
nó đc t o ra t phiên b n JDK 1.2.ượ ạ ừ ả Vector là m t l pộ ớ l p legacyớ.
4) ArrayList là nhanh h nơ vì nó là non-
synchronized.
Vector là ch m h nậ ơ ví nó là synchronized. T c là, ứ
trong môi tr ng đa lu ng, các thread gi nó trongườ ồ ữ ở
tr ng thái runnable ho c non-runnable cho đn khiạ ặ ế
thread hi n t i gi i phóng đi t ng đó.ệ ạ ả ố ượ
5) ArrayList s d ngử ụ Iterator đ duy t ể ệ
các ph n t .ầ ử Vector s d ngử ụ Enumeration và Iterator đ duy t ể ệ
các ph n t .ầ ử
Set: (HashSet,LinkedHashSet, TreeSet) Không ch a các ph n t trùng l p.ứ ầ ử ắ
HashSet không duy trì th t nàoứ ự , trong khi TreeSet duy trì th t tăng d nứ ự ầ ..
Map: trong java, map đc s d ng đ l u tr và truy xu t d li u theo c p keyượ ử ụ ể ư ữ ấ ữ ệ ặ
và value. M i c p key và value đc g i là m c nh p (entry). Map trong java chỗ ặ ượ ọ ụ ậ ỉ
ch a các giá tr key duy nh t. Map r t h u ích n u b n ph i tìm ki m, c p nh tứ ị ấ ấ ữ ế ạ ả ế ậ ậ
ho c xóa các ph n t trên d a vào các key.ặ ầ ử ự
HashMap Hashtable

27/
Aug
Topic : SQL
Store
Procedure
Function
TRIGGER
SQL Join? phân lo i Join trong SQL? View? GROUP BY? M c đích và cách s d ng c a ạ ụ ử ụ ủ
TRIGGER ? Stored procedures?Funciton? Transaction?
ransaction trong SQL là m t nhóm các câu l nh SQL. N u m t transaction đc th c hi n tộ ệ ế ộ ượ ự ệ
công, t t c các thay đi d li u đc th c hi n trong transaction đc l u vào c s d lấ ả ổ ữ ệ ượ ự ệ ượ ư ơ ở ữ
N u m t transaction b l i và đc rollback, thì t t c các s a đi d li u s b xóa (d liế ộ ị ỗ ượ ấ ả ử ổ ữ ệ ẽ ị ữ ệ
đc khôi ph c v tr ng thái tr c khi th c hi n transaction).ượ ụ ề ạ ướ ự ệ
INNER JOIN tr v các b n ghi có giá tr phù h p gi a hai b ngả ề ả ị ợ ữ ả
LEFT JOIN m i b n ghi b ng bên trái tr v k t h p v i b n ghi phù h p v i bên phọ ả ả ả ề ế ợ ớ ả ợ ớ
n u có (n u không có thì nh n NULL)ế ế ậ
RIGHT JOIN m i b n ghi b ng bên ph i tr v có k t h p v i giá tr phù h p n u cọ ả ả ả ả ề ế ợ ớ ị ợ ế
b ng tráiả
OUTER JOIN (full join) m i b n ghi b ng trái và b ng ph i k t h p l iọ ả ở ả ả ả ế ợ ạ
View
CREATE VIEW view_name AS
SELECT column1, column2.....
FROM table_name
WHERE [condition];
Dùng đ b o m t d li u: C p quy n trên các view v i nh ng d li u đc cho phép.ể ả ậ ữ ệ ấ ề ớ ữ ữ ệ ượ
Đn gi n hóa thao tác d li uơ ả ữ ệ
Đc l p d li u.ộ ậ ữ ệ
Union:K t h p nh ng lo i b trùng nhau.ế ợ ư ạ ỏ
So sánh 1: Stored-Procedure, trigger,funtion
1: Stored-Procedure,funtion: Cho phép truy n các tham s đu vào.ề ố ầ
Ch y khi đc thao tác, còn trigger s ch y t đng.ạ ượ ẽ ạ ự ộ
28/
Aug
Topic :Java Web
(JSP, Servlet, MVC…)
JSP
Servlet
MVC
Mô hình MVC
Trong mô hình này thì:
Model: có nhi m v thao tác v i c s d li u, nghĩa là nó s ch a t t c các hàmệ ụ ớ ơ ở ữ ệ ẽ ứ ấ ả
ph ng th c truy v n tr c ti p v i d li u vàươ ứ ấ ự ế ớ ữ ệ controller s thông qua các hàm, phẽ ư
th c đó đ l y d li u r i g i quaứ ể ấ ữ ệ ồ ử View
View: có nhi m v ti p nh n d li u tệ ụ ế ậ ữ ệ ừ controller và hi n th n i dung sang các đoể ị ộ
mã HTML, là thành ph n giao di n.ầ ệ
Controller: đóng vài trò trung gian gi aữ Model và View. Nó có nhi m v ti p nh n yệ ụ ế ậ
c u t client sau đó x lý request, loadầ ừ ử model t ng ng và g i data quaươ ứ ử view t ng ươ
r i tr k t qu v cho clientồ ả ế ả ề
Vòng đi c a 1 servletờ ủ
M tộ vòng đi c a servletờ ủ có th đc đnh nghĩa là toàn b quá trình t khi t o ra đn khiể ượ ị ộ ừ ạ ế
Sau đây là t ng quan v vòng đi c a servlet:ổ ề ờ ủ
Servlet đc kh i t o b ng cách g i ph ng th cượ ở ạ ằ ọ ươ ứ init ().
Ph ng th c servletươ ứ service() đc g i đ x lý yêu c u c a khách hàng.ượ ọ ể ử ầ ủ
Servlet đc h y b ng cách g i ph ng th cượ ủ ằ ọ ươ ứ destroy().
HttpServlet là m t abstract class n m trong packageộ ằ javax.servlet.http c a Java Servlet API. Nủ
extends t m t abstract class khác tên là GenericServlet và class GenericServlet này là đi từ ộ ố ư
implement interface Servlet, interface chính đ đnh nghĩa servlet c a Java Servlet API.ể ị ủ
S d ng đi t ng HttpServlet này, chúng ta có th xây d ng các ng d ng Java web đ handlử ụ ố ượ ể ự ứ ụ ể
các request t client v i các HTTP method nh GET, POST, HEAD, PUT, DELETE, TRACE vừ ớ ư
OPTIONS. Khi client send m t request t i web server container, method service() trong đi tộ ớ ố ư
HttpServlet s process request này. Ph thu c vào HTTP method mà client g i, vi c x lý tiẽ ụ ộ ử ệ ử ế

