Giới thiệu Java
Đặc điểm Java
Kiến trúc của Java
JVM và cấu trúc của JVM
Các ấn bản
Công cụ phát triển
Cài đặt, thiết lập
Giới thiệu các ứng dụng: độc lập, applet
Example program
35 trang |
Chia sẻ: Mr Hưng | Lượt xem: 975 | Lượt tải: 0
Bạn đang xem trước 20 trang nội dung tài liệu Java - Giới thiệu java, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
GIỚI THIỆU JAVA
1
Java Simplified / Session 22 / 2 of 45
Giới thiệu Java
Đặc điểm Java
Kiến trúc của Java
JVM và cấu trúc của JVM
Các ấn bản
Công cụ phát triển
Cài đặt, thiết lập
Giới thiệu các ứng dụng: độc lập, applet
Example program
2
Java Simplified / Session 22 / 3 of 45
Lập trình hướng chức năng
Lập trình hướng đối tượng
◦ C++
◦ C#
◦ VB.Net
◦ Java
3
Java Simplified / Session 22 / 4 of 45
Ra đời
Phát triển >
4
Java Simplified / Session 22 / 5 of 45
Java và C++ đều là ngôn ngữ lập trình HĐT
Java hạn chế những phức tạp không cần
thiết của C++
◦ Multiple Inheritance
◦ Pointer
Java: đơn giản, thân thiện, hướng đối tượng.
Java có nhiều đặc tính tiến bộ hơn C++
◦ Platform independence
◦ Support for the internet
◦ Security
5
Java Simplified / Session 22 / 6 of 45
1. Simple Object-oriented
2. Dynamic and Distributed Platform
independence
3. Portable
4. Multi-threads
5. Secure
6
Java Simplified / Session 22 / 7 of 45
Đơn giản
◦ Không sử dụng con trỏ tường minh
◦ Không đa thừa kế
◦ Cấp phát và dọn dẹp bộ nhớ tự động
Hướng đối tượng
◦ Ngôn ngữ hướng đối tượng thuần khiết – không
đoạn code nào nằm bên ngoài phạm vi lớp
◦ Mọi thứ trong Java đều liên quan đến các đối
tượng được định nghĩa trước
7
Java Simplified / Session 22 / 8 of 45
Java cũng có đặc tính: các lớp được nạp tự
động khi cần và nhiều chương trình có thể dùng
chung một lớp. (Windows OS .dll).
Nó còn hỗ trợ đặc tính phân tán, tức là các phần
của chương trình có thể nằm trên máy chủ lẫn
trên máy khách hàng.
Hỗ trợ công nghệ lập trình RMI, CORBA,
JavaBean: cho phép sử dụng lại các lớp đã tạo
ra, triệu gọi các phương thức hoặc đối tượng từ
một máy ở xa.
8
Java Simplified / Session 22 / 9 of 45
Phương châm “Write-once Run-everywhere”
Chương trình viết trên một platform và có thể
chạy trên mọi platform có cài máy ảo Java:
◦ JVM thông dịch các kết quả ở dạng bytecode -
◦ Bytecode có thể chạy trên hầu như mọi loại phần
cứng và hệ điều hành.
◦ Thư viện các hàm có thể dùng chung cho các
platform khác nhau
9
Java Simplified / Session 22 / 10 of 4510
Java Simplified / Session 22 / 11 of 45
Các ứng dụng viết bằng Java có thể có nhiều
tiến trình được xử lý cùng một lúc.
Java có cung cấp các lớp có thể thực hiện
như là các luồng được điều khiển riêng biệt
Java tự thực hiện sự kết hợp giữa các phần
trong các luồng với nhau.
11
Java Simplified / Session 22 / 12 of 45
Java được thiết kế để đảm bảo an toàn cho
người dùng Java trên mạng, Có 4 tầng bảo an:
◦ Mức ngôn ngữ và trình biên dịch:
No pointer, chuyển đổi kiểu tường minh, trình biên
dịch kiểm tra kiểu chặt chẽ
◦ Trình kiểm tra lớp -Class Verifier
ngăn class tới từ mạng "giả dạng" một class trên máy
khách hàng, tách biệt hoạt động của classes từ server
◦ Trình nạp lớp - Class Loader
kiểm tra mã byte vào lúc chạy chương trình bảo đảm
chương trình Java đã được biên dịch một cách đúng
đắn.
◦ Trình quản lý an ninh –SecurityManager
kiểm soát các hoạt động một máy ảo Java 12
Java Simplified / Session 22 / 13 of 45
Core API : Java cung cấp cho người lập trình
một thư viện các hàm chuẩn (in package)
13
Java Simplified / Session 22 / 14 of 4514
Java Simplified / Session 22 / 15 of 45
1. Chương trình nguồn
viết bằng NNLT Java
2. Chương trình được
biên dịch thành file
.class
3. Các file .class được
load và
4. Thực thi bằng máy ảo
Java (JVM).
Hello.java
Java
Compiler
Hello.class
Run-Time
Environment
Java
Virtual
Machine
Object.class String.class
Java API class files
Java Simplified / Session 22 / 16 of 4516
Java Simplified / Session 22 / 17 of 45
Khác với C++, Chương trình Java không được biên
dịch thành ngôn ngữ máy nhưng thành “bytecode”
Mỗi hệ điều hành có hiện thực riêng cho máy ảo
Java - JVM:
◦ Bộ máy thực thi một cách an toàn và tương thích mã
byte code trong các file .class trên một bộ vi xử lý
Java Simplified / Session 22 / 18 of 4518
Java Simplified / Session 22 / 19 of 45
Trình nạp lớp (Class Loader): đọc bytecode từ đĩa
hoặc từ kết nối mạng.
Trình kiểm tra lớp (Class Verifier): Kiểm tra các lớp sẽ
không sinh ra các lỗi ảnh hưởng tới hệ thống khi thực
thi. ->tăng time nạp lớp (1)
Trình thực thi (Execution Unit): sẽ thực hiện các lệnh
được quy định trong từng bytecode:
Trình thông dịch: chuyển đổi từng bytecode sang các thủ
tục cần làm trên từng hệ thống (tra nghĩa): chậm
=> Trình biên dịch: Just-in-time (JIT): Quá trình chuyển
đổi từ bytecode sang mã lệnh riêng của từng hệ thống
sẽ được làm luôn một lần ngay khi nạp chương trình:
tăng tốc, chiếm memory
19
Java Simplified / Session 22 / 20 of 4520
Java Simplified / Session 22 / 21 of 45
Data area:
◦ Method area:
Nơi các mã bytecode được đưa vào và lưu trữ, tạo biến tĩnh.
◦ Heap area: (main memory of JVM.)
Các đối tượng của class, tạo biên non-static
◦ Threads area: Các methods được thực thi. JVM tạo 2 threads:
main: thực thi methods, xác nhận việc tạo objects
heap area garbage collector: xác nhận việc bỏ các object ko
dùng trong heap area.
◦ Program counter Register :
Lưu lại các địa chỉ câu lệnh của từng thread đang thực thi
◦ Native internal: Nơi các native method được thực thi
Native method: java method has logic in c, c++
Java Native Interface: điều hành giữa Native internal và
Native method
21
Java Simplified / Session 22 / 22 of 45
Execution engine:
điều khiển việc thực thi của JVM
Class loader subsystem
Dùng để load các class vào method area để thực thi
3 types of ClassLoaders
◦ 1) ApplicationClassLoader
Load class từ Classpath đến nơi chứa file“.class ” .
◦ 2) ExtensionClassLoader
Load class từ Extension Classpath, thư mục:
“%JAVA_HOME%\jre\lib\ext”
◦ 3) BootstrapClassLoader
Load class từ BootstrapClasspath, thư mục:
“%JAVA_HOME%\jre\lib\rt.jar”
22
Java Simplified / Session 22 / 23 of 4523
Java Simplified / Session 22 / 24 of 45
Để chạy ứng dụng Java, OS phải cài đặt JRE -
Java Runtime Environment, Standard Edition
(JRE):
◦ JRE là một tập con trong Java Development Kit
(JDK) là bộ công cụ để phát triển Java
◦ JRE bao gồm máy ảo Java, các lớp Java cơ bản
và các file hỗ trợ
Java Simplified / Session 22 / 25 of 45
J2SE ( Java 2 Platform, Second Edition)
• Một gói phát triển phần mềm từ Sun Microsystems
• Cung cấp một tập công cụ cơ bản cần thiết để viết, kiểm
tra và debug các ứng dụng Java đa mục đích:
Các ứng dụng độc lập chạy trên các nền khác nhau,
ứng dụng cho client cho các ứng dụng doanh nghiệp
applet,
J2EE (Java 2 Platform, Enterprise Edition (J2EE)
◦ Hỗ trợ phát triển các ứng dụng thương mại
◦ Nền tảng để xây dựng các ứng dụng phía server.
J2ME (Java 2 Platform, Micro Edition )
◦ Cho phép xây dựng các ứng dụng Java cho các “vi thiết
bị” di động, không dây
25
Java Simplified / Session 22 / 26 of 45
SUN cung cấp một số tiện ích cho phép biên dịch bắt lỗi
và tạo tài liệu cho một ứng dụng Java.
Các trình tiện ích của JDK bao gồm:
javac: Bộ biên dịch Java thành bytecode
java: Bộ thông dịch Java, thực thi bytecode
appletviewer: Thông dịch Java thực thi các Java applet.
javadoc: Tạo tài liệu dạng HTML từ mã nguồn.
jdb (Java debuger): Thực hiện từng dòng trong chương
trình, đặt các breakpoint, xem giá trị các biến.
javah: Tạo ra tập tin header của C để gọi hàm Java hoặc
ngược lại.
javap: Trình dịch ngược java (disassembler): Hiển thị
các nội dung đã dịch. (hiển thị nghĩa của bytecode)
26
Java Simplified / Session 22 / 27 of 45
Sun Java Studio Creator.
Borland JBuilder
NetBeans.
JDeveloper.
Eclipse
.
Java Simplified / Session 22 / 28 of 45
Download và cài đặt JDK 1.5
Thiết lập biến môi trường: PATH
◦ C:\Program Files\Java\jdk1.7.0_05\bin
◦ Hoặc:
Tạo biến JAVA_HOME
C:\Program Files\Java\jdk1.7.0_05
Thêm vào PATH:
◦ %JAVA_HOME%\bin;
Java Simplified / Session 22 / 29 of 45
Có hai kiểu ứng dụng
◦ Ứng dụng độc lập (Standalone Applicaiton) Cho
phép lập trình như các ngôn ngữ lập trình khác
như Pascal, C.
◦ Ứng dụng ký sinh (Applet) Cho phép tạo ra
chương trình liên kết với các văn bản Web và
được khởi động bởi trình duyệt Web Browser hỗ
trợ Java.
Kiểu kết hợp 2 loại trên
29
Java Simplified / Session 22 / 30 of 45
Tạo lập một lớp được định nghĩa bởi NSD có
phương thức main() và đảm bảo được đ/n
đúng
Tên chương trình trùng với tên lớp chính có
đuôi .java
Dịch tệp chương trình (dùng javac) để tạo ra
tệp mã bytecode, có đuôi là .class
Dùng chương trình thông dịch (java) để chạy
chương trình đã dịch.
30
Java Simplified / Session 22 / 31 of 4531
// This is a simple program called First.java
class First
{
public static void main (String [] args)
{
System.out.println ("My first program in Java ");
}
}
Java Simplified / Session 22 / 32 of 45
class First // tên lớp = tên file
public static void main (String [] args)
{
// nội dung chương trình
}
Public: được phép truy nhập đối với mọi lớp từ bên
ngoài và cho phép gọi để thực hiện bởi CTTD Java
Static: hàm phụ thuộc vào cả lớp (ko phụ thuộc
Object cụ thể)
Void: hàm main() không cần kq trả về.
String [] args: hàm main() có các đối số là
mảng các xâu (object) args[] của String
32
Java Simplified / Session 22 / 33 of 4533
class CommLineArg
{
public static void main (String [] pargs)
{
System.out.println("These are the arguments passed to
the main method.");
System.out.println(pargs [0]);
System.out.println(pargs [1]);
System.out.println(pargs [2]);
}
}
Java Simplified / Session 22 / 34 of 45
- Soạn code, ex: vd.java
- Biên dịch bằng javac vd.java -> vd.class
- Soạn file html (vd.html), nạp file vd.class vào:
- Tên của tệp lớp applet
- Kích thước của applet
Ex:
- Chạy file html bằng web Browser hoặc
appletviewer (JDK hỗ trợ):
appletviewer vd.html
34
Java Simplified / Session 22 / 35 of 45
import java.awt.*;
import java.applet.*;
public class Simple extends Applet
{
String str;
public void init()
{
str = "Java is interesting!";
}
public void paint(Graphics g)
{
g.drawString(str, 70, 80);
}
}
35
The first my Web
Hello everyone
<APPLET
code="Simple.class" width=200 height=200 >
Các file đính kèm theo tài liệu này:
- lap_trinh_mang_chapter2_java_introduction_0322.pdf