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 ế