Chương 1

Tổng Quan Về Java

Chương 1: Tổng Quan Về Java

Lịch sử ra đời của Java

1

Một số đặc tính của Java

2

Công nghệ và ứng dụng Java

3

4 Kiến trúc Java

6 Viết một chương trình đơn giản

7 Hướng dẫn cài đặt

Lịch sử ra đời của Java

o Cuối năm 1990, James Gosling o Cuối năm 1990, James Gosling và các cộng sự của công ty Sun và các cộng sự của công ty Sun Microsystems phát triển ngôn Microsystems phát triển ngôn ngữ Java. ngữ Java.

Lịch sử ra đời của Java

o Sun Microsystems thành lập nhóm Green Team. o Sun Microsystems thành lập nhóm Green Team. o Green Team được giao nhiệm vụ xây dựng phần mềm o Green Team được giao nhiệm vụ xây dựng phần mềm

ngành điện tử tiêu dùng. ngành điện tử tiêu dùng.

o Do hạn chế của C++ (con trỏ, biên dịch lai,…) o Do hạn chế của C++ (con trỏ, biên dịch lai,…)  Ngôn ngữ mới tên Oak ra đời (cây sồi, vì phòng làm  Ngôn ngữ mới tên Oak ra đời (cây sồi, vì phòng làm việc của Gosling nhìn ra một cây sồi). việc của Gosling nhìn ra một cây sồi). o Oak tương tự C++. o Oak tương tự C++. o Bỏ một số tính năng nguy hiểm C++. o Bỏ một số tính năng nguy hiểm C++. o Chạy trên nhiều nền phần cứng khác nhau. o Chạy trên nhiều nền phần cứng khác nhau.

Lịch sử ra đời của Java

o 1993, Internet và Web bùng nổ, Sun chuyển Oak thành một o 1993, Internet và Web bùng nổ, Sun chuyển Oak thành một

môi trường lập trình Internet với tên dự án là Java. môi trường lập trình Internet với tên dự án là Java.

o 1995: Oak đổi tên với tên chính thức là Java. o 1995: Oak đổi tên với tên chính thức là Java. o Mục đích của Java: o Mục đích của Java:

- Phát triển ứng dụng cho các thiết bị điện tử thông minh. - Phát triển ứng dụng cho các thiết bị điện tử thông minh. - Để tạo các trang web có nội dung động (applet). - Để tạo các trang web có nội dung động (applet). - Hiện nay Java được sử dụng để phát triển nhiều loại ứng - Hiện nay Java được sử dụng để phát triển nhiều loại ứng dụng khác nhau như cơ sở dữ liệu, mạng, Internet, games, dụng khác nhau như cơ sở dữ liệu, mạng, Internet, games, viễn thông,… viễn thông,…

Một số đặc tính của Java

o Đơn giản. o Máy ảo JVM (Java Virtual Machine) o Hướng đối tượng. o Độc lập - Khả chuyển. o Đa tiểu trình (multithread). o Phân tán o Giải phóng bộ nhớ (Garbage Collection)

Một số đặc tính của Java

Đơn giản

o Java được kế thừa từ C++. o Được loại bỏ đi các tính năng khó nhất của C++ như: quản lý bộ nhớ, pointer, overload toán tử, không dùng include, bỏ struct, union.

Một số đặc tính của Java

o Các chương trình phải được biên dịch ra mã máy. o Chương trình thực thi trên Windows được biên

dịch dưới dạng .EXE, còn Linux .EFL.

o Một chương trình biên dịch trên Windows muốn

thực thi trên Linux thì phải biện dịch lại.

Các chương trình dịch truyền thống

Trình biên dịch của hệ điều hành cụ thể

Một số đặc tính của Java

Máy ảo Java (JVM)

o Chương trình biên dịch ra mã máy ảo (bytecode) o Chuyển mã bytecode thành mã máy tương ứng

Một số đặc tính của Java

Java API class files

Hello.class

Object.class

Mã bytecode

String.class

Java Virtual Machine

Java Compiler

Run-Time Environment

Hello.java

Thực thi

Biên dịch

Thông dịch

Chương trình

• Mã máy

• HĐH cụ thể

• java

• bytecode • .class

Một số đặc tính của Java

Hướng đối tượng

o Tất cả mọi thứ đề cập đến trong Java đều liên quan

đến các đối tượng được định nghĩa trước

o Hướng đối tượng trong Java không có tính đa kế

thừa (multi inheritance) như trong C++ mà thay vào đó Java đưa ra khái niệm interface để hỗ trợ tính đa kế thừa.

Một số đặc tính của Java

Độc lập nền – khả chuyển

o Chạy trên nhiều máy tính có hệ điều hành khác nhau. o Chỉ cần máy đó có cài đặt máy ảo java. o Write once run anywhere.

Đa tiểu trình Đa tiểu trình

o Cho phép tạo nhiều tiến trình, tiểu trình có thể chạy

song song cùng một thời điểm và có thể tương tác với nhau

Một số đặc tính của Java

Phân tán Phân tán

o Nhắm đến phân bố ứng dụng trên mạng, ứng dụng

độc lập platform.

o Cụ thể là Java có hỗ trợ công nghệ lập trình RMI,

CORBA, JavaBean.

o Các công nghệ này 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 (method) hoặc các đối tượng từ một máy ở xa.

Một số đặc tính của Java

Giải phóng bộ nhớ

o Java cung cấp một tiến trình mức hệ thống để theo

dõi việc cấp phát bộ nhớ

o Garbage Collection - Đánh dấu và giải phóng các vùng nhớ không còn

được sử dụng.

- Được tiến hành tự động. - Cơ chế hoạt động phụ thuộc vào các phiên bản

máy ảo.

Công nghệ Java

o J2SE (Java 2 Standard Edition)

oJ2EE (Java 2 Enterprise Edition)

oJ2ME (Java 2 Micro Edition)

Công nghệ Java

Desktop applications - J2SE Desktop applications - J2SE o Phiên bản chuẩn. o Phiên bản chuẩn. o Hỗ trợ viết các ứng dụng đơn, ứng dụng client-server. o Hỗ trợ viết các ứng dụng đơn, ứng dụng client-server. - Java Applications: ứng dụng Java thông thường - Java Applications: ứng dụng Java thông thường

trên desktop. trên desktop.

- Java Applets: ứng dụng nhúng hoạt động trong - Java Applets: ứng dụng nhúng hoạt động trong

trình duyệt web. trình duyệt web.

Công nghệ Java

Server applications - J2EE Server applications - J2EE

o Nền tảng Java 2, phiên bản doanh nghiệp. o Nền tảng Java 2, phiên bản doanh nghiệp. o Hỗ trợ phát triển các ứng dụng thương mại. o Hỗ trợ phát triển các ứng dụng thương mại. o Chạy trên máy chủ lớn với sức mạnh xử lý và dung o Chạy trên máy chủ lớn với sức mạnh xử lý và dung lượng bộ nhớ lớn. lượng bộ nhớ lớn. o Gắn liền với servlet, jsp và XML. o Gắn liền với servlet, jsp và XML.

Công nghệ java

Mobile (embedded) applications – J2ME Mobile (embedded) applications – J2ME o Phiên bản thu nhỏ. o Phiên bản thu nhỏ. o Hỗ trợ viết các ứng dụng trên các thiết bị di động, o Hỗ trợ viết các ứng dụng trên các thiết bị di động,

không dây, thiết bị nhúng,… không dây, thiết bị nhúng,…

Các ứng dụng Java o Ứng dụng độc lập (console application) o Ứng dụng Applets o Ứng dụng giao diện (GUI application) o Ứng dụng Web (Servlet và Jsp) o Ứng dụng nhúng (embedded application) o Ứng dụng cơ sở dữ liệu (database application) o Games.

Các ứng dụng Java

Ứng dụng độc lập (console application) Đa tiểu trình

o Nhập xuất ở chế độ văn bản ở chế dộ dòng lệnh

Các ứng dụng Java

Ứng dụng Applets Đa tiểu trình

o Có thể nhúng và chạy trong trang web của một trình duyệt web. o Sự phát triển mạnh của VB Script, JavaScript, HTML, DHTML, XML,… làm cho Java Applet lu mờ. Và cho đến bây giờ gần như các lập trình viên đều không còn “mặn mà” với Java Applet nữa.

Các ứng dụng Java

Ứng dụng giao diện (GUI application) Đa tiểu trình o Sử dụng thư viện AWT và JFC. o JFC (Swing) là thư viện rất phong phú và hỗ trợ mạnh mẽ hơn nhiều so với AWT. o JFC giúp cho người lập trình có thể tạo ra một giao diện trực quan của bất kỳ ứng dụng nào.

Các ứng dụng Java

Ứng dụng Web Đa tiểu trình

o Phát triển các ứng dụng Web thông qua công nghệ J2EE. o Công nghệ viết web hiện có của Java là Servlet và Jsp. o Ngoài ra còn có sự hỗ trợ của lập trình Socket, Java Bean, RMI và CORBA, EJB.

Các ứng dụng Java

Ứng dụng Nhúng Đa tiểu trình o Java Sun đưa ra công nghệ J2ME hỗ trợ phát triển

các chương trình, phần mềm nhúng.

o J2ME cung cấp một môi trường cho những chương trình ứng dụng có thể chạy được trên các thiết bị cá nhân như: điện thọai di động (MIDlet), máy tính bỏ túi PDA hay Palm, cũng như các thiết bị nhúng khác.

Các ứng dụng Java

Ứng dụng Cơ sở dữ liệu Đa tiểu trình o Java cũng hỗ trợ lập trình kết nối và tương tác được với hầu hết các hệ quan trị CSDL nổi tiếng như Oracle, SQL Server, MS-Access, MySQL,…

Các ứng dụng Java

Game o Lập trình Games bằng Java được phát triển mạnh mẽ. o Viết game cho desktop và các thiết bị di động.

Kiến trúc Java

Java PlatForm

myProgram.java

Mã nguồn

Java API

Java Platform

Java VM

Hardware-Platform

o Java VM (Java Virtual Machine) o Java API (Application Programming Interface)

Kiến trúc Java

o Thư viện lớp Java: bộ JDK bao gồm rất nhiều lớp

chuẩn đã được xây dựng sẵn.

o Lập trình viên thường sử dụng các lớp chuẩn để phát

triển ứng dụng.

java.net java.awt.event java.rmi java.security java.sql o Các gói chuẩn của Java: java.lang java.applet java.awt java.io java.util

JDK

o JDK(Java Development Kit) là bộ công cụ cho người

phát triển ứng dụng bằng Java.

o Nó bao gồm nhiều chương trình tiện ích như: - Trình biên dịch javac (java compiler). - Chương trình gỡ lỗi. - Appletviewer. - Trình phát sinh tài liệu javadoc. - Đóng gói dữ liệu jar v.v... - Ngoài ra còn có JRE(Java Runtime Enviroment) môi trường thực thi Java.

JDK

o JDK bao gồm 2 công cụ quan trọng là: * javac biên dịch mã nguồn sang dạng byte code (file *.class)

o * java thông dịch và chạy file *.class

Công cụ soạn thảo và biên dịch Java

o Jcreator o Netbeans o Forte của Sun MicroSystems o Microsoft Visual J++ o WebGain Café o IBM Visual Age for Java o Eclipse

Các bước phát triển chương trình Java

Hello.java

java Hello

01001011

public class Hello {

Thông dịch

public static …

}

-----------------------

Biên dịch

------------------

------------------------

javac Hello.java

Hello.class (bytecode)

Cấu trúc một chương trình cơ bản

Tên lớp chứa hàm main phải giống tên file

public class Hello {

Điểm bắt đầu và kết thúc của lớp

Dấu hiệu chú thích => Làm cho chương trình dễ hiểu hơn. Trình biên dịch sẽ bỏ qua những dòng có dấu chú thích

1 // Tên file : Hello.java 2 /* Tác giả : Barak Obama*/ 3 4 5 6 // Phương thức main, điểm bắt đầu của chương trình 7 public static void main( String args[ ] ) 8 { 9 System.out.println( “Hello World" ); 10 11 } // Kết thúc phương thức main 12 Khai báo lớp 13 } // Kết thúc lớp Hello

Mỗi CT phải có ít nhất một khai báo lớp

Phương thức main() sẽ được gọi đầu tiên. Mỗi CT thực thi phải có một phương thức main()

Hiển thị dãy ký tự ra màn hình

Các câu lệnh phải kết thúc bằng dấu chấm phẩy

Phương thức Main()

o Là điểm bắt đầu thực thi một ứng dụng. o Mỗi ứng dụng Java phải chứa một phương thức main

có dạng như sau:

public static void main(String[] args) o Phương thức main chứa ba bổ từ đặc tả sau:

- public: chỉ ra rằng phương thức main có thể được gọi bởi bất kỳ đối tượng nào. - static: chỉ ra rằng phương thức main là một phương thức lớp. - void: chỉ ra rằng phương thức main sẽ không trả về bất kỳ một giá trị nào.

Hướng dẫn cài đặt