Tải bản đầy đủ (.docx) (10 trang)

hn fr java 18 06 review plan phuclq 1 1 6053

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (89.24 KB, 10 trang )

Day
23/
Aug

Topic (những nội dung Output
ôn tập)
1:Các Tính Chất Của Java OOPs
Topic : Java core
Tính đóng gói (encapsulation) và che giấu thông tin (information hiding) :
 Các Tính Chất
Của Java

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
OOPs
đổ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ật của đối
 Các kiểu dữ
tượng
liệu
 Các từ khóa

Trong Java, tính đóng gói được thể hiện thông qua phạm vi truy cập (access modifier).
Ngoài ra, các lớp liên quan đến nhau có thể được gom chung lại thành package.
(static, final,
abstract ,
Tính kế thừa (inheritance):
Interface ,
override,

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ĩa của
overload…)
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ừa tất cả
 Xử lý ngoại lệ
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à không phải
trong java
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 thức 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 cung 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, tuy 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ủa đối 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.
o

Nạp chồng (Overloading): Đây là khả năng cho phép một lớp có nhiều thuộc 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ư về số
lượng. Khi được gọi, dựa vào tham số truyền vào, phương thức tương ứng sẽ được
thực hiện.


o

Ghi đè (Overriding): là hai phương thức cùng tên, cùng tham số, cùng kiểu trả 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à tiếp 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ăng
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ượng 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ập 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 vì 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ượng.

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
boolean, byte, char, short, int, long, float, double.



Các kiểu dữ liệu tham chiếu (Reference Types) : String

(Primitive

Data

Types):

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ụng từ 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ừ khóa 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, hay 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 đó gọi 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 tượng (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ể được sử 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 báo đượ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, một 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 khởi 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à nonabstract

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 Ví
dụ:

public
interface
Shape{ public abstract void Drawable{ void draw(); }
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. Nó là 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 tra tại 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ệ. Nó 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 khối 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 lỗi, 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ằng từ
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 lệ do 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 tin cho 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ên để 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



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 chính xác


(Multithreadin
g) trong java


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ị trí của 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ể chứa 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ì
Thao tác với LinkedList là nhanh hơn so với ArrayList
nó sử dụng nội bộ mảng. Nếu bất kỳ phần bởi vì nó sử dụng danh sách liên kết doubly do đó
tử nào được xoá khỏi mảng, tất cả các bit không cần chuyển đổi bit nào trong bộ nhớ.
được chuyển 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ột
list và queue(hàng đợi) vì nó implements các giao tiếp
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

1) HashMap cho phép một key là null
và nhiều giá trị null.


Hashtable không cho phép bất kỳ key hoặc giá trị null.

2) HashMap không đồng bộ.

Hashtable là đồng bộ.

3) HashMap là một lớp mới được giới
thiệu trong JDK 1.2.

Hashtable là một lớp legacy.

4) HashMap nhanh.

Hashtable chậm.

5) Chúng ta có thể làm cho HashMap
đồng bộ bằng cách gọi phương thức:
Map m =
Collections.synchronizedMap(hashMa
p);

Hashtable được đồng bộ nội bộ và không thể hủy đồng
bộ hóa.

6) HashMap được duyệt bởi Iterator.

Hashtable được duyệt bởi Enumerator và Iterator.

7) Iterator trong HashMap là fail-fast.


Enumerator trong Hashtable là không fail-fast.

8) HashMap kế thừa lớp AbstractMap.

Hashtable kế thừa lớp Dictionary.


27/
Aug

Topic :

SQL

 Store
Procedure
 Function
 TRIGGER

Comparable

Comparator

1) Bạn phải implements giao tiếp
Comparable cho lớp đối tượng cần
được so sánh.

Bạn KHÔNG phải implements giao tiếp
Comparator cho lớp đối tượng cần được so sánh.


2) Comparable cung cấp phương thức
compareTo() để sắp xếp các phần tử.

Comparator cung cấp phương thức compare() để
sắp xếp các phần tử.

3) Comparable thuộc
về java.lang package.

Comparator thuộc về java.util package.

4) Chúng ta có thể sắp xếp các phần tử
của kiểu Comparable bởi phương thức
Collections.sort(List) .

Chúng ta có thể sắp xếp các phần tử của kiểu
Comparator bởi phương thức
Collections.sort(List,Comparator).

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 thành
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ữ liệu. 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ệu đượ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ải 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, các
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ương
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ạn 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êu cầu
từ client sau đó xử lý request, load model tương ứng và gửi data qua view tương ứ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 hủy.

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ượng
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 để handle 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ượng
HttpServlet sẽ process request này. Phụ thuộc vào HTTP method mà client gửi, việc xử lý tiếp theo
sẽ do các method doGet(), doPost(), doHead(), doPut(), doDelete(), doTrace() và doOptions() của
đối tượng này đảm nhận.
HttpRequest,:Cung cấp các phương thức để nhận yêu cầu từ phía cline: getAttribute,getParmeter,
getSesion,getMethod,
HttpServletRequest
HttpServletResponse


Phân biệt session và cookies

Sesion Lưu thông tin trên server, lưu đối tượng theo Ojbect
Cookies Lưu thông tin trên trình duyệt lưu đối tượng theo dạng text.
Các cách để chuyển trang : request.getRequestDispatcher("/info.jsp");rd.forward(request ,
response);
sendRedirect(chuyển trang không chuyển đc dữ liệu, có thể chuyển đến trang ngoài server)

29/
Aug

Topic :Java Web (JSP,
Servlet, MVC…)

 Hibernate
 JDBC
 HTML,CSS,JQ
uery,Ajax

30/
Aug

Topic : Algorithms &
Data Structure
 (Stack, Queue,
Tree, Sorting
Method,
Recursive…)

Session trong Hibernate được sử dụng để có được kết nối trong CSDL nên tạo ra và đóng sau khi sử
dụng
Session.beginTransaction(): Bắt đầu một đơn vị c/v và trả về đối tượng Transaction liên quan

Dialect là class mà cho phép Hibernate có thể generate ra các câu lệnh sql
Cần có session thì chúng ta cần có sessionFactory là 1 class được theiets kết theo factory có 2
phương thức phổ bieents openSessin(), và close(),
3 trạng thái của Object:
Transient:Khi một Object mới được tạo ra, sử dụng các hàm contrutor, chưa được kết nối với các
session của hibernate-> Hoàn toàn mới.
_Persistent: Khi 1 Object được map với 1 database thường có khi tạo ra mới và save database or từ
database ra.
-Detached:Khi Object đóng cà trạng thái của persion và session là close
Phân biệt get và load
+Đều dựa vào id đểm tìm đối tượng
Load() không tìm thấy id -> exception
Get() không tìm thấy id -> null
Stack là kiểu cấu trúc dữ liệu mà các phần từ thêm vào và lấy ra được thực hiện theo cơ chế Last –
In – First – Out (LIFO), tức là phần tử nào được thêm vào đầu tiên thì sẽ được lấy ra sau cùng. Ví
dụ một cái hộp để đựng đĩa, cái nào được đặt vào đầu tiên sẽ được lấy ra sau cùng. Ở đây cái hộp
đựng đĩa được hiểu như là Stack.
Queue là kiểu cấu trúc dữ liệu mà các phần tử thêm vào là lấy ra được thực hiện theo cơ chế Fist –
In – First – Out (FIFO), tức là phần tử nào thêm vào đầu tiên sẽ được lấy ra đầu tiên (có vẻ công
bằng ^.^). Ví dụ mọi người xếp hàng đợi lên xe bus, người nào đứng trước sẽ được lên xe trước.
Các thuật toán sắp xếp


Bubble sort.



Quick sort.




Simple selection sort.



Heap sort.



Simple insertion sort.


31/
Aug
1/Se
p
23/Se
p

Shell sort.



Merge sort.



Radix sort.

Topic :

Spring
framework
 Spring core
Topic : Spring
framework

4-5/
Sep

 Spring Data
Topic :
Spring
framework

6/Se
p

 Spring MVC
Topic : JDBC, Unit
Test, Maven

7/Se
p



Topic :Front-end
(HTML, CSS, JS,
Ajax…)


So sánh trigger, function,proc.
So sánh sleep và wait trong đa luồng:



×