Lập trình với Java - Chương 1: Tổng quan về Java

(1) Hiểu những đặc điểm vàlợi ích của Java

(2) Hiểu cơchếthực thi của Java

(3) Hiểu cơchếbiên dịch vàchạy 1 chương trình Java

(4) Hiểu cấu trúc cơbản của một chương trình Java

pdf40 trang | Chuyên mục: Java | Chia sẻ: dkS00TYs | Lượt xem: 3252 | Lượt tải: 3download
Tóm tắt nội dung Lập trình với Java - Chương 1: Tổng quan về Java, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
 lo toan đến việc hủy đối tượng.
Đ c đi m c a Java (tt)ặ ể ủ
 Bảo mật (Secure): Kiểm tra an toàn code trước 
khi thực thi, có nhiều mức kiểm tra bảo mật  Môi 
trường thực thi an toàn
Mức 1: Mức ngôn ngữ: Nhờ tính bao gói dữ liệu của 
OOP, không cho phép truy cập trực tiếp bộ nhớ mà 
phải thông qua method.
Mức 2: Mức Compiler, kiểm tra an toàn cho code 
trước khi biên dịch.
Mức 3: Mức Interpreter, trước khi bytecode được 
thực thi, được kiểm tra an toàn.
Mức 4: Mức Class, các class trước khi nạp được 
kiểm tra an toàn.
Đ c đi m c a Java (tt)ặ ể ủ
 Tính tương thích
    khả chuyển
    (Portability)
Ch ng trình ươ
Java
Compiler
Ch ng trình Bytecode đ c ươ ộ
l p platformậ
Java Runtime Interpreter/ JVM th c thi ự
Javabytecode
IBM Macintosh Sparc
Đ c đi m c a Java (tt)ặ ể ủ
 Thực thi dạng thông dịch: (Interpretive 
execution) Chỉ thị chỉ được dịch sang lệnh máy lúc 
thực thi
Chương trình độc lập platform  Write Once  Run 
Anywhere (WORA)
• Các file tài nguyên  trình biên dịch  javac  class file 
độc lập thiết bị
• Class file  trình thông dịch  java  mã máy thực thi, 
không cần liên kết (link)
 Lợi ích
(1) Java class file có thể được dùng ở bất kỳ flatform nào.
(2) Tính module hóa cao, dùng bộ nhớ tốt hơn với class file 
hơn là file thực thi vì class file 
Đ c đi m c a Java (tt)ặ ể ủ
 Hiệu suất cao (high performance): 
   bytecode  native machine code dễ dàng nhờ Just­in­time 
compiler.
 Đa luồng (multithreading)
Cho phép lập trình đa luồng (nhiều chương trình đồng hành 
nhờ lớp Thread : khởi tạo, ngưng 1 luồng, kiểm tra trạng thái 
của luồng)
thread: một luồng thực thi của CPU  là 1 chương trình
 Linh động (dynamic): Cho phép tương thích với sự 
thay đổi của môi trường, Trong CT java có các thông tin run­
time  Kiểm tra truy xuất lớp an toán,  an toàn để liên kết 
caùc lớpvào CT  dynamic
1.3- JVM- Java Virtual Machine
 5 thành phần của môi trường Java
(1) Java language
(2) Bytecode definitions
(3) Java/ Sun Class libraries
(4) The Java Virtual Machine
(5) The structure of .class file
 JVM là trung tâm của Java
 Các thành phần dẫn đến sự thành công của Java: 
Bytecode definitions, the structure of .class file, 
JVM.
1.3.1- JVM là gì?
 Là một phần mềm giả lập một máy tính trong 
đó : có tập lệnh định nghĩa các tác vụ
Java Bytecode
JVM
OS
Hardware platform
Ch ng trình Javaươ
javac : compiler
Dùng c ch ơ ế Just-In-Time 
thông d ch bytecode thành ị
l nh máy c thệ ụ ể
JVM là gì? (tt)
 JVM tạo ra 1 hệ thực thi phụ thuộc 
platform bao gồm các tác vụ:
(1) Nạp .class file
(2) Quản lý bộ nhớ
(3) Thực thi gom rác
1.3.2- JRE-Môi tr ng run-time c a Javaườ ủ
 JRE: 
 Hai giai đoạn của 
1 Java 
application: 
Compile­time, 
Run­time
 Compile­time 
phase: Viết và 
biên dịch chương 
trình
Begin
Java source code
Biên d ch b ng javacị ằ
.class file
End
JRE- Run-time phase
Begin
N p ạ .class 
file
Ki m tra bytecodeể
Interprete
r
Run-time code
JIT code 
Generator
Hardware
Net 
work
 .class 
file
Nh class ờ
Loader, ki m tra ể
an toàn
Nh ch c năng ờ ứ
bytecode verifier, 
ki m tra code ể
format và quy n ề
truy xu tấ
End
1.3.3- Trình gom rác- Garbage 
Collection
 Heap: Vùng nhớ chia sẽ thông tin giữa các qúa trình. Với C, C++, 
Pascal, programmer phải tự quản lý vùng nhớ cấp phát động này 
bằng các hàm cơ bản.
 Cơ chế quản lý heap
   Heap được quản lý bằng 2 danh sách: 
                     Free block list và Allocated Block List.
­ Cách cấp phát: “first­fit block”
­ Khi khối bộ nhớ được yêu cầu lớn hơn khả năng của các khối tự 
do: Compaction ­ dồn vùng nhớ để tạo ra vùng lớn hơn.
 Heap trong Java : 2 heap
heap cấp phát tĩnh và heap cấp phát động.
Trình gom rác (tt)
Static Heap
-Class definitions
-Các h ngằ
-CMT1
(class1,method1,Add1) 
-CMT2
(class2,method2,Add2)
…..
Dynamic heap Section 1
Bi n đ i t ng O2ế ố ượ
Bi n đ i t ng O1ế ố ượ
Dynamic heap Section 2
( Các entry: 2 pointers)
(O1, CMT1)
(O2, CMT2)
Static heap: không gom rác
CMT: class method table
Dynamic heap: có gom rác
Section 2: Theo dõi ho t đ ng c a các đ i ạ ộ ủ ố
t ngượ
C ch gom rácơ ế
Cơ chế cấp bộ nhớ
1/  Nhận yêu cầu cấp bộ nhớ
2/  if (Free­Block list đủ) cấp bộ nhớ cho yêu cầu (First­fit) 
3/  else if (máy rảnh) thực thi gom rác
4/  else ứng dụng phải gọi tường minh tác vụ gom rác: System.gc();
Trình gom rác được ấn định độ ưu tiên rất thấp Gọi tường minh có ý 
nghĩa chấp nhận ứng dụng này tạm dừng để chờ gom rác.
Cơ chế gom rác ( chỉ gom rác ở Dynamic heap)
1/ Xem đối tượng nào không có entry trong section2 Không còn dùng 
đối tượng này nữa.
2/ Garbage Collector sẽ gọi method finalize() để thu tài nguyên của đối 
tượng (file, stream kết hợp, bộ nhớ)
1.4- Môi tr ng l p trình Javaườ ậ
 JDK­ Java Development Kit­ Bộ công cụ 
phát triển ứng dụng Java bao gồm 4 thành 
phần:
(1) Classes
(2) Compiler
(3) Debugger
(4) Java Runtime Environment 
Hiện nay đã có bản Java 1.6(Beta)
Các công c chính c a môi tr ng Javaụ ủ ườ
Trong thư mục BIN của JDK (sau khi cài đặt) có:
 Javac.exe : Java Compiler: 
Dịch source code  Independent Bytecode
 Java.exe : Thực thi class file trong JVM
 Appletviewer.exe : cho phép chạy applet mà 
không cần Browser.
1.5- Ch ng trình java đ u tiênươ ầ
 Yêu cầu: Viết chương trình xuất chuỗi “Hello world from java!” ra 
màn hình.
 Phân tích:
­ Cần tạo 1 lớp có chức năng xuất chuỗi này (lớp HelloWorld) . Vì 
chức năng của chương trình đơn giản ­> lớp này chỉ có 1 hành vi 
main(…), nội dung hành vi là xuất chuỗi được yêu cầu.
 Cách làm 1: Viết code bằng 1 editor, về dấu nhắc Command 
Prompt biên dịch, chạy chương trình.
 Cách làm 2: Nhờ 1 IDE như Jcreator, JPadPro, Jbuilder, … cho 
phép vừa viết code vừa thực thi.
Dùng NotePad, biên d ch dòng l nhị ệ
L u tr v i tên HelloWorld.java- tên l p là tên ư ữ ớ ớ
file 
C:\PROGRA~1\JavaSoft\JRE\1.2\bin>javac e:\BaiGiang2004\java\HelloWorld.java
e:\BaiGiang2004\java\HelloWorld.java:1: ';' expected.
import java.io.*
 ^
1 error
L i thi u d u ch m ph y, code trên đã ỗ ế ấ ấ ẩ
s aử
E:\BaiGiang2004\Java>javac HelloWorld.java
E:\BaiGiang2004\Java>java HelloWorld
Hello World From Java !
E:\BaiGiang2004\Java>
Ho c biên d ch v i th m c hi n hành là ặ ị ớ ư ụ ệ
th m c ch a source code .ư ụ ứ
Biên d ch thành công và ch y ng d ngị ạ ứ ụ
Chú ý: Tên file .java có tính ch t case-sensitiveấ
K t q a biên d chế ủ ị
Dùng JCreatorPro
1.6- Tóm t tắ
 Java là ngôn ngữ OOP chủ yếu được dùng để phát triển các 
ứng dụng Internet với các đặc điểm: Simple, OO, Distributed, 
Robust, Secure, System Structure neutrality, Portability, 
Interpretive execution, High Performance, Multithreading, 
Dynamic.
 JVM là trái tim của Java.
 JDK là bộ công  cụ hỗ trợ lập trình.
 JDK cung cấp một số công cụ được để trong thư mục BIN khi 
cài đặt JDK gồm 3 chức năng chính: javac: trình biên dịch, 
java: JVM, appletviewer.
 Tài liệu API của Java rất cần cho người lập trình java vì chứa 
các tài liệu hướng dẫn về các lớp (class), các gói phần mềm 
(package), các giao tiếp (interface)
1.8- Tr c nghi mắ ệ
Câu 1
Java hỗ trợ những đặc điểm nào sau 
đây? 
A) OO  
B) Độc lập platform 
C) Bảo mật  
D) Tất cả các đặc điểm trênd
Câu 2
Source code của java có tên mở rộng là 
:
A) .class   
B) .java   
C) .com   
D) Tất cả đều sai.
b
Câu 3
   Java source code được trình biên dịch 
java biên dịch thành:
A) Bytecode   
B) Executable code  
C) Machine code  
D) Tất cả đều sai
a
Câu 4
   Trình nào sẽ chuyển đổi java source code 
thành file .class
A) javac   
B) java   
C) appletviewer  
D) Tất cả đều sai  
E) Tất cả đều đúng
a
Câu 5
   Chương trình nào thực thi 1 class file 
trong JVM
A) javac    
B) java  
C) appletviewer  
D) Tất cả đều sai  
E) Tất cả đều đúng
b
Câu 6
   Trình nào cho phép ta chạy applet bên 
ngoài browser
A) appletviewer   
B) WWW  
C) java  
D) Tất cả đều sai  
E) Tất cả đều đúng
a
Câu 7
Chọn phát biểu sai.
a) Có thể xây dựng một ứng dụng 
hướng thủ tục trong Java.
b)  Không thể xây dựng một ứng dụng 
hướng thủ tục trong Java
a
Câu 8
    Cơ chế quản lý bộ nhớ của Java gồm 2 heap, static 
heap và dynamic heap. Chọn các phát biểu sai.
a­  Static heap chứa các định nghĩa class + dữ liệu của 
các đối tượng + code chương trình.
b­ Static heap chứa các định nghĩa class + code chương 
trình.
c­ Dynamic heap chứa các định nghĩa class + dữ liệu của 
các đối tượng + code chương trình.
d­ Dynamic heap chứa các định nghĩa class + code 
chương trình.
c
a
d
Câu 9
Chọn các phát biểu đúng.
a­ Dynamic heap trong Java chứa dữ liệu của đối tượng.
b­ Dynamic heap trong Java chứa thông tin về mối quan 
hệ giữa đối tượng trong dynamic heap và code trong 
static heap.
c­ Dynamic heap trong Java chứa thông tin về mối quan 
hệ giữa đối tượng và code trong dynamic heap.
d­ Dynamic heap trong Java chứa thông tin về mối quan 
hệ giữa đối tượng trong static heap và code trong static 
heap.
b
a
Câu 10
Chọn các phát biểu sai
Các đối tượng của Java
a) Được cấp phát động nên ta cần chủ động 
trả bộ nhớ khi không dùng đến đối tượng 
nữa.
b) Được cấp phát động, ta không cần chủ 
động trả bộ nhớ khi không dùng đến đối 
tượng nữa.
c) Máy ảo không tự động thu hồi bộ nhớ đối 
với những đối tượng không dùng đến đối 
tượng nữa.
c
a
Câu 11
    Có thể dùng một trình editor chuẩn 
bất ký để viết code java.
a­ Đúng
b­ Saia
Câu 12
   Cơ chế nào cho phép 1 ứng dụng 
Java độc lập với platform (chọn 2)
a­ Mỗi platform có một trình Java.exe 
riêng để thông dịch file.class.
b­ file.class có cấu trúc độc lập với 
flatform.
c­ Mỗi nhà cung cấp hệ điều hành tạo 
ra các cách riêng để chạy ứng dụng 
Java
a
b
Bài t pậ
 Viết chương trình xuất ra màn hình các 
thông tin sau
“Hello! I’m .”
“This is my first java  program.”
“This is common technology today.”
“I will work hard to enhance my skill in Java”

File đính kèm:

  • pdfLập trình với Java - Chương 1_Tổng quan về Java.pdf
Tài liệu liên quan