Bài giảng Công nghệ Java - Chương 1: Tổng quan về ngôn ngữ lập trình Java - Trần Quang Diệu

Nội dung

1- Lịch sử của Java

2- Những đặc điểm cơ bản của Java

3- Máy ảo Java- JVM

4- Môi trường lập trình Java

5- Chương trình Java đầu tiên

7- Tóm tắt

8- Trắc nghiệm và bài tập

pdf 35 trang yennguyen 3260
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Công nghệ Java - Chương 1: Tổng quan về ngôn ngữ lập trình Java - Trần Quang Diệu", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Bài giảng Công nghệ Java - Chương 1: Tổng quan về ngôn ngữ lập trình Java - Trần Quang Diệu

Bài giảng Công nghệ Java - Chương 1: Tổng quan về ngôn ngữ lập trình Java - Trần Quang Diệu
4/7/2018 1
CÔNG NGHỆ JAVA
CH1. TỔNG QUAN VỀ NGÔN NGỮ LẬP TRÌNH JAVA
Quang Dieu Tran PhD
4/7/2018 2
Nội dung
1- Lịch sử của Java
2- Những đặc điểm cơ bản của Java
3- Máy ảo Java- JVM
4- Môi trường lập trình Java
5- Chương trình Java đầu tiên
7- Tóm tắt
8- Trắc nghiệm và bài tập
4/7/2018 3
Lịch sử các ngôn ngữ lập trình
4/7/2018 4
Lịch sử phát triển Java
• Phát triển từ ngôn ngữ Oak
• Được công ty Sun Microsystems đặt tên là
Java từ năm 1996
• Oracle mua lại và tiếp tục phát triển từ
năm 2010
• Java là một trong những ngôn ngữ lập
trình hướng đối tượng rất phổ biến hiện
nay
4/7/2018 5
Lịch sử phát triển Java
4/7/2018 6
Đặc tính
• Đơn giản( simple)
• Hướng đối tượng (OO)
• Phân tán (Distributed)
• Mạnh (Robust)
• Bảo mật (Secure)
• Hiệu suất cao (high performance)
• Đa luồng (multithreading) 
• Linh động (dynamic)
4/7/2018 7
Đặc tính
• Tính khả chuyển, tương thích (Portability)
4/7/2018 8
Đặc tính
• Thực thi dạng thông dịch: (Interpretive
execution), chỉ 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) 
4/7/2018 9
Đặc tính
• Tính khả chuyển, tương thích (Portability)
4/7/2018 10
Các thành phần chính
• 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
4/7/2018 11
• 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 Virtual Machine
4/7/2018 12
• 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
Java Virtual Machine
4/7/2018 13
• Môi trường run-time của Java:
– Cung cấp các Java API
– Máy ảo Java – JVM
– Các thư viện
• Hai giai đoạn của 1 chương trình Java:
– Compile-time
– Run-time
Java Runtime Environment
4/7/2018 14
• Giai đoạn 1: Compile-time
– Viết và biên dịch chương trình
Java Runtime Environment
Biên dịch bằng javac
Begin
Java source code (*.java)
.class file
End
4/7/2018 15
Java Runtime Environment -Giai đoạn 2: Run-time
Begin
Nạp .class file
Kiểm tra bytecode
Interpreter
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
4/7/2018 16
• 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- Garbage Collection
4/7/2018 17
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ớ) 
Cơ chế gom rác
4/7/2018 18
• 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
Phiên bản hiện tại: 1.8
Java Development Kit
4/7/2018 19
• Công cụ chính
– 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.
Java Development Kit
4/7/2018 20
• Yêu cầu: Viết chương trình xuất chuỗi “Hello world!” 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.
Chương trình java đầu tiên
4/7/2018 21
Chương trình java đầu tiên
4/7/2018 22
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) 
4/7/2018 23
 Java hỗ trợ những đặc điểm nào sau đây?
A) Hướng đối tượng
B) Độc lập platform 
C) Bảo mật 
D) Tất cả các đặc điểm trên
Trắc nghiệm
4/7/2018 24
Source code của java có tên mở rộng là: 
A).class 
B).java 
C).com 
D)Tất cả đều sai.
Trắc nghiệm
4/7/2018 25
 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
Trắc nghiệm
4/7/2018 26
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
Trắc nghiệm
4/7/2018 27
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
Trắc nghiệm
4/7/2018 28
 Trình nào cho phép ta chạy applet bên ngoài trình duyệt 
(browser) 
A)appletviewer 
B)WWW 
C)java 
D)Tất cả đều sai 
E)Tất cả đều đúng
Trắc nghiệm
4/7/2018 29
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
Trắc nghiệm
4/7/2018 30
 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.
Trắc nghiệm
4/7/2018 31
 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.
Trắc nghiệm
4/7/2018 32
 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.
Trắc nghiệm
4/7/2018 33
 Có thể dùng một trình editor chuẩn bất kỳ để
viết code java?
a- Đúng
b- Sai
Trắc nghiệm
4/7/2018 34
 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
Trắc nghiệm
4/7/2018 35

File đính kèm:

  • pdfbai_giang_cong_nghe_java_chuong_1_tong_quan_ve_ngon_ngu_lap.pdf