Bắt đầuvớiJava
Bắt đầuvớiJava
2
NguyễnViệtHà
Nội dung
Lịch sử của Java
Các đặctrưng cơ bản
Java applications và Java applets
Tạo ứng dụng Java đơn giản
Bắt đầuvớiJava
4
NguyễnViệtHà
Lịch sử hình thành
1991: được Sun Microsystems phát triểnnhằmmục đích
viết phần mềm điều khiển (phần mềm nhúng) cho các
sảnphẩmgia dụng
lúc đầu được đặt tên là Oak
1995: đượcphổ cậpvớisự phát triểnmạnh mẽ của
Internet
thị trường phần mềm nhúng không phát triển mạnh
WWW bùng nổ (1993~)
Hiệnnay, đượcchấp nhậnrộng rãi vớitư cách là một
ngôn ngữ (công nghệ) đa dụng
khả chuyển, an toàn
hướng đốitượng, hướng thành phần
Bắt đầuvớiJava
5
NguyễnViệtHà
Java là một công nghệ
Java bao gồm
Ngôn ngữ lậptrình
Môi trường phát triển
Môi trường thực thi và triểnkhai
Bắt đầuvớiJava
6
NguyễnViệtHà
Mục tiêu củaJava
Ngôn ngữ dễ dùng
Khắc phục nhiều nhược điểm của các ngôn
ngữ trước đó
Hướng đối tượng
Sáng sủa
Môi trường thông dịch
Tăng tính khả chuyển
An toàn
Bắt đầuvớiJava
7
NguyễnViệtHà
Mục tiêu củaJava
Cho phép chạy nhiềutiến trình (threads)
Nạpcáclớp (classes) động vào thời điểm
cầnthiếttừ nhiều nguồn khác nhau
Cho phép thay đổi động phần mềm trong khi
hoạt động
Tăng độ an toàn
Bắt đầuvớiJava
8
NguyễnViệtHà
Biên dịch và thông dịch
Chương trình nguồn được biên dịch sang
mã đích (bytecode)
Mã đích (bytecode) đượcthực thi trong
môi trường thông dịch (máy ảo)
Bắt đầuvớiJava
9
NguyễnViệtHà
Các dạng ứng dụng củaJava
Desktop applications - J2SE
Java Applications: ứng dụng Java thông
thường trên desktop
Java Applets: ứng dụng nhúng hoạt động
trong trình duyệtweb
Server applications - J2EE
JSP và Servlets
Mobile (embedded) applications – J2ME
Bắt đầuvớiJava
10
NguyễnViệtHà
Đặctrưng củaJava
JVM – máy ảo Java
Cơ chế giải phóng bộ nhớ tự động
Bảo mậtchương trình
Bắt đầuvớiJava
11
NguyễnViệtHà
JVM - Máy ảoJava
Máy ảo phụ thuộc vào platform (phần cứng, OS)
Cung cấp môi trường thực thi cho chương trình
Java (độc lập với platform)
Máy ảo đảm bảo an toàn cho hệ thống
Máy ảo thông thường được cung cấpdướidạng
phầnmềm
JRE - Java Runtime Environment
Java platform: JVM + APIs
Bắt đầuvớiJava
12
NguyễnViệtHà
Giải phóng bộ nhớ
(Garbage Collection)
Java cung cấp mộttiếntrìnhmứchệ
thống để theo dõi việccấp phát bộ nhớ
Garbage Collection
Đánh dấuvàgiải phóng các vùng nhớ không
còn đượcsử dụng
Đượctiến hành tựđộng
Cơ chế hoạt động phụ thuộc vào các phiên
bản máy ảo
Bắt đầuvớiJava
13
NguyễnViệtHà
Chống sao chép
Bắt đầuvớiJava
14
NguyễnViệtHà
JDK
Môi trường phát triểnvàthực thi do Sun Microsystems
cung cấp ()
Phiên bản hiện tại J2SDK 5.0 (1.5)
Bao gồm
javac Chương trình dịch chuyển mã nguồn sang bytecode
java Bộ thông dịch: Thực thi java application
appletviewer Bộ thông dịch: Thực thi java applet mà không
cần sử dụng trình duyệt như Nestcape, hay IE, v.v.
javadoc Bộ tạo tài liệu dạng HTML từ mã nguồn và chú
thích
jdb Bộ gỡ lỗi (java debuger)
javap Trình dịch ngược bytecode
Bắt đầuvớiJava
15
NguyễnViệtHà
Công nghệ JIT
Just-In-Time Code Generator
Bắt đầuvớiJava
16
NguyễnViệtHà
Java Applications
Chương trình ứng dụng hoàn chỉnh
Giao diện dòng lệnh hoặc đồ họa
Đượcbắt đầubởiphương thức (hàm)
main() là phương thức public static
Bắt đầuvớiJava
17
NguyễnViệtHà
Chương trình Java đơn giản
TestGreeting.java:
public class TestGreeting{
public static void main (String[] args) {
System.out.println(”Hello, world”);
}
}
public class
public static method
class
object
message
Bắt đầuvớiJava
18
NguyễnViệtHà
Biên dịch và thựchiện
Biên dịch TestGreeting.java
javac TestGreeting.java
Thựchiện
java TestGreeting
Kếtquả
Hello, world
Bắt đầuvớiJava
19
NguyễnViệtHà
Một chút cảitiến
TestGreeting.java:
public class TestGreeting {
public static void main(String[] args) {
Greeting gr = new Greeting();
gr.greet();
}
}
Greeting.java:
public class Greeting {
public void greet() {
System.out.print(”Hello, world”);
}
}
Bắt đầuvớiJava
20
NguyễnViệtHà
Biên dịch và thựchiện
Biên dịch TestGreeting.java
javac TestGreeting.java
Greeting.java được biên dịch tự động
Thựchiện
java TestGreeting
Kếtquả
Hello, world
Bắt đầuvớiJava
21
NguyễnViệtHà
Java Applets
Được nhúng trong một ứng dụng khác
(web browser)
Có giao diệnhạnchế (đồ họa)
Không truy cập được tài nguyên của client
(không thực hiện được các hành vi xấu)
Bắt đầuvớiJava
22
NguyễnViệtHà
Applet đơn giản
Welcome.java:
// Java packages
import java.awt.Graphics;
import java.applet.Applet;
public class Welcome extends Applet {
public void paint(Graphics g)
{
// call superclass version of method paint
super.paint(g);
// draw a String
g.drawString(”Welcome to Java programming!”, 25, 25);
}
}
Bắt đầuvớiJava
23
NguyễnViệtHà
Nhúng vào trang Web
Welcome.html:
<html>
<applet code = ”Welcome.class”
width = ”300” height = ”45”>
</applet>
</html>
Bắt đầuvớiJava
24
NguyễnViệtHà
Thựchiện (trong webbrowser)
Bắt đầuvớiJava
25
NguyễnViệtHà
Thựchiện
appletviewer Welcome.html
Bắt đầuvớiJava
26
NguyễnViệtHà
Các phương thứccủaApplet
init(): khởitạo applet
start(): khởi động applet
mặc định sẽ gọi paint()
stop(): dừng applet
destroy(): giải phóng (hủy) applet