Bài giảng Ngôn ngữ Java - Chương 1: Tổng quan ngôn ngữ java - Phạm Duy Trung

MỘT SỐ ĐẶC TÍNH CỦA JAVA

• Đơn giản.

• Khả chuyển.

• Hướng đối tượng.

• Phân tán

• Đa tiểu trình (multithread).

• An toàn.

• Biên dịch và thông dịch

• Giải phóng bộ nhớ (Garbage Collection)10

MỘT SỐ ĐẶC TÍNH CỦA JAVA

• Đơn giản( simple): Java tương tự như C++ nhưng

bỏ bớt các đặc tính phức tạp của C++ như quản lý

bộ nhớ, pointer, overload toán tử, không dùng

include, bỏ struct, union. Java được kế thừa từ

C++, và được loại bỏ đi các tính năng khó nhất của

C++ nên java dễ sử dụng hơn.

• Tính khả chuyển (portable): của java do chương

trình biên dịch tạo ra mã byte (bytecodes) không

phụ thuộc hệ thống máy sử dụng. Bytecodes là tập

hợp các câu lệnh tương tự như lệnh mã máy

(machine code), nó được tạo ra khi một chương

trình Java được biên dịch xong.

pdf 68 trang kimcuc 6260
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Ngôn ngữ Java - Chương 1: Tổng quan ngôn ngữ java - Phạm Duy Trung", để 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 Ngôn ngữ Java - Chương 1: Tổng quan ngôn ngữ java - Phạm Duy Trung

Bài giảng Ngôn ngữ Java - Chương 1: Tổng quan ngôn ngữ java - Phạm Duy Trung
CHƯƠNG 1
TỔNG QUAN NGÔN NGỮ JAVA
Trường Đại học Thông tin Liên lạc
Khoa Công nghệ Thông tin
KS. Phạm Duy Trung
Bộ môn Kỹ thuật phần mềm
LỊCH SỬ RA ĐỜI
CỦA JAVA
3LỊCH SỬ RA ĐỜI CỦA JAVA
• Cuối năm 1990, James Gosling và các cộng 
sự được công ty Sun Microsystems giao 
nhiệm vụ xây dựng phần mềm lập trình cho 
các mặt hàng điện tử dân dụng nhằm mục 
đích cài chương trình vào các bộ xử lý của 
các thiết bị như VCR, lò nướng, PDA 
(personal data assistant).
4LỊCH SỬ RA ĐỜI CỦA JAVA
• Lúc đầu Gosling và các cộng sự định chọn ngôn 
ngữ C++ nhưng thấy rằng C++ có những hạn chế. 
Chương trình viết bằng C++ khi chuyển sang chạy 
trên một hệ thống máy có bộ vi xử lý khác thì đòi 
hỏi phải biên dịch lại. 
• Gosling quyết định xây dựng hẳn một ngôn ngữ 
mới dựa trên nền ngôn ngữ C,C++ và đặt tên là 
Oak (cây sồi, vì phòng làm việc của Gosling nhìn 
ra một cây sồi).
• Oak đòi hỏi phải độc lập cấu trúc nền (phần cứng, 
OS) do thiết bị có thể do nhiều nhà sản xuất khác 
nhau (Platform independent).
5• 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.
• 1995: Oak đổi tên với tên chính thức là Java. Java 
là tên một hòn đảo có trồng nhiều cà phê mà nhóm 
nghiên cứu phát triển đã tham quan và làm việc.
• 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, để 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 dụng khác nhau 
như cơ sở dữ liệu, mạng, Internet, games, viễn 
thông,
LỊCH SỬ RA ĐỜI CỦA JAVA
6BẢNG XẾP HẠNG CÁC NNLT
Nguồn: TIOBE
7BẢNG XẾP HẠNG CÁC NNLT
Nguồn: Github
MỘT SỐ ĐẶC TÍNH
CỦA JAVA
9MỘT SỐ ĐẶC TÍNH CỦA JAVA
• Đơn giản.
• Khả chuyển.
• Hướng đối tượng.
• Phân tán
• Đa tiểu trình (multithread).
• An toàn.
• Biên dịch và thông dịch
• Giải phóng bộ nhớ (Garbage Collection)
10
MỘT SỐ ĐẶC TÍNH CỦA JAVA
• Đơn giản( simple): Java tương tự như C++ nhưng 
bỏ bớt các đặc tính phức tạp của C++ như quản lý 
bộ nhớ, pointer, overload toán tử, không dùng 
include, bỏ struct, union. Java được kế thừa từ 
C++, và được loại bỏ đi các tính năng khó nhất của 
C++ nên java dễ sử dụng hơn.
• Tính khả chuyển (portable): của java do chương
trình biên dịch tạo ra mã byte (bytecodes) không
phụ thuộc hệ thống máy sử dụng. Bytecodes là tập
hợp các câu lệnh tương tự như lệnh mã máy
(machine code), nó được tạo ra khi một chương
trình Java được biên dịch xong.
11
Source
Code Java
(*.java)
Win9x/WinNT ...
Linux/Unix...
Bytecodes
Java
(*.class)
J
a
v
a
 C
o
m
p
ile
r (ja
v
a
c
)
J
a
v
a
 In
te
rp
re
te
r (ja
v
a
)
Win32
Linux
Solaris
.
MỘT SỐ ĐẶC TÍNH CỦA JAVA
Minh họa tính khả chuyển
12
MỘT SỐ ĐẶC TÍNH CỦA JAVA
• Tính hướng đối tượng (OO):
– Hướng đối tượng trong Java tương tự như C++ 
nhưng Java là một ngôn ngữ lập trình hướng đối 
tượng hoàn toàn, không thể viết một ứng dụng 
hướng thủ tục trong Java
– 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, thậm chí 
hàm chính (hàm main) của một chương trình viết 
bằng Java cũng phải đặt bên trong một lớp.
– 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.
13
MỘT SỐ ĐẶC TÍNH CỦA JAVA
• Phân tán (distributed): nhắm đến phân bố ứng 
dụng trên mạng, ứng dụng độc lập platform. Cụ thể 
là Java có hỗ trợ công nghệ lập trình RMI, CORBA, 
JavaBean. 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.
• Đa tiểu trình (multithread): đặc tính này của Java 
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.
14
MỘT SỐ ĐẶC TÍNH CỦA JAVA
• Tính an toàn (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.
15
MỘT SỐ ĐẶC TÍNH CỦA JAVA
• Biên dịch và thông dịch:
– Java là một ngôn ngữ lập trình có khả năng biên 
dịch và khả năng thông dịch. 
– Chương trình nguồn viết bằng ngôn ngữ lập trình 
Java có đuôi *.java đầu tiên được biên dịch thành 
tập tin có đuôi *.class và sau đó sẽ được trình thông 
dịch thông dịch thành mã máy.
– Java class file có thể được dùng ở bất kỳ flatform 
nào (Write Once Run Anywhere).
– 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)
16
Chương trình 
Java
Compile
r
Chương trình Bytecode độc 
lập platform
Java Runtime Interpreter/ JVM thực thi 
Javabytecode
IBM Macintosh Sparc
MỘT SỐ ĐẶC TÍNH CỦA JAVA
Minh họa biên dịch 
và thông dịch
17
MỘT SỐ ĐẶC TÍNH CỦA JAVA
• Giải phóng bộ nhớ (Garbage Collection)
– 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ớ
– 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
19
JAVA LÀ MỘT CÔNG NGHỆ
• Công nghệ Java phát triển mạnh mẽ nhờ vào 
Sun Microsystem cung cấp nhiều công cụ, thư 
viện lập trình phong phú hỗ trợ cho việc phát 
triển nhiều loại ứng dụng khác nhau.
• Java bao gồm:
– Ngôn ngữ lập trình
– Môi trường phát triển
– Môi trường thực thi và triển khai
20
CÁC DẠNG CÔNG NGHỆ JAVA
• Desktop applications - J2SE
– Phiên bản chuẩn – Java 2 Standard Edition.
J2SE 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 trên desktop
• Java Applets: ứng dụng nhúng hoạt động
trong trình duyệt web
21
CÁC DẠNG CÔNG NGHỆ JAVA
• Server applications - J2EE
– Nền tảng Java 2, phiên bản doanh nghiệp -
Java 2 Enterprise Edition. Hỗ trợ phát triển
các ứng dụng thương mại.
– 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, hỗ trợ gắn liền với
servlet, jsp và XML.
• Mobile (embedded) applications – J2ME
– Phiên bản thu nhỏ - Java 2 Micro Edition.
– 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,
22
CÁC DẠNG ỨNG DỤNG CỦA JAVA
• Dùng Java ta có thể viết các dạng ứng dụng sau:
– Ứng dụng độc lập (console application)
– Ứng dụng Applets
– Ứng dụng giao diện (GUI application)
– Ứng dụng Web (Servlet và Jsp)
– Ứng dụng nhúng (embedded application)
– Ứng dụng cơ sở dữ liệu (database application)
– Games.
23
JDK – JAVA DEVELOPMENT KIT
JDK- Java Development Kit- Bộ công cụ phát triển 
ứng dụng Java bao gồm 4 thành phần: ClasseS, 
Compiler, Debugger, Java Runtime Environment.
–JDK 1.0 1996
–JDK 1.1 1997
–JDK 1.2 1998
–JDK 1.3 2000
–Java 1.4 2002
–Java 5 (1.5) 2004
–Java 6 2006
Ghi chú: sau này JDK còn được gọi là SDK (Java SDK - Software Development Kit)
24
JDK – JAVA DEVELOPMENT KIT
• 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, FireFox
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 debugger)
– javap Trình dịch ngược bytecode
– jar Dùng để đóng gói lưu trữ các module viết bằng Java
(tạo ra file đuôi .jar), là phương pháp tiện lợi để phân phối
những chương trình Java.
25
JVM – JAVA VIRTUAL MACHINE
KIỂU DỊCH CỦA CÁC TRÌNH BIÊN DỊCH NGÔN NGỮ CŨ
26
JVM – JAVA VIRTUAL MACHINE
• Trình biên dịch chuyển mã nguồn thành tập các
lệnh không phụ thuộc vào phần cứng cụ thể.
• Trình thông dịch trên mỗi máy chuyển tập lệnh
này thành chương trình thực thi
• Máy ảo tạo ra một môi trường để thực thi các
lệnh bằng cách:
– Nạp các file .class
– Quản lý bộ nhớ
– Dọn “rác”
QUY TRÌNH BIÊN DỊCH VÀ THÔNG DỊCH CỦA JAVA:
27
Java 
Source 
(*.java)
Java Compiler
(javac)
Java 
Object 
(*.class)
Java Virtual Machine
Mã đối tượng được xác minh 
và nạp vào máy ảo Java
Computer Operating System
Trình thông dịch kiểm soát tất cả các 
truyền thông với OS của máy tính thực
Java Interpreter
(java)
Chương trình 
được xử lý bởi 
trình thông dịch
JVM – JAVA VIRTUAL MACHINE
28
JVM – JAVA VIRTUAL MACHINE
• JVM là một phần mềm dựa trên cơ sở máy tính
ảo. JVM cũng được xem như là một hệ điều
hành thu nhỏ.
• Máy ảo phụ thuộc vào Platform (phần cứng, OS),
nó cung cấp môi trường thực thi cho Java (độc
lập với platform).
• Nó thiết lập cho các mã Java đã biên dịch có một
cái nhìn trong suốt (trasparence) về các phần
cứng bên dưới.
29
TẠI SAO LẠI LÀ THÔNG DỊCH
• Dễ thiết kế và viết hơn so với một trình biên dịch
• Đóng vai trò như một ‘bộ đệm’ -> an toàn khi
nhận các file từ Internet
30
IDE – INTEGRATED DEVELOPMENT ENVIRONMENT
• IDE: trong phần mềm máy tính, IDE để chỉ đến một bộ 
các công cụ phần mềm để soạn thảo, biên dịch, liên kết, 
gỡ rối, vv Ví dụ như bộ Visual Studio của Microsoft.
• IDE giúp phát triển ứng dụng nhanh chóng và hiệu quả 
hơn. Đơn giản hóa quá trình phát triển phần mềm
• Một số IDE dành cho lập trình Java là:
– JCreator
– NetBeans
– Eclipse
– EditPlus
– Borland Jbuilder
– Java Studio của Sun
– 
CẤU TRÚC MỘT
CHƯƠNG TRÌNH JAVA CƠ BẢN
KIẾN TRÚC CỦA JAVA
• Java Platform
– Java Virtual Machine (Java VM)
– Java Application Programming Interface 
(Java API)
Hardware-Platform
Java VM
Java API
myProgram.java
Java Platform
Mã nguồn
KIẾN TRÚC CỦA JAVA
• 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.
• Lập trình viên thường sử dụng các lớp chuẩn để 
phát triển ứng dụng.
• Các gói chuẩn của Java:
– java.lang
– java.applet
– java.awt
– java.io
– java.util
– java.net
– java.awt.event
– java.rmi
– java.security
– java.sql
CÁC BƯỚC PHÁT TRIỂN 
• Các bước phát triển một chương trình 
bằng Java:
`
public class Hello {
public static 
}
Hello.ja
va
Biên dịch
Thông dịch
-----------------------
------------------
------------------------
Hello.class 
(bytecode)
javac 
Hello.java
java Hello
010010
11
CẤU TRÚC MỘT CHƯƠNG TRÌNH CƠ BẢN
1 // Tên file : Hello.java
2 /* Tác giả : Barak Obama*/
3 
4 public class Hello
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 
13 } // Kết thúc lớp Hello
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
Khai báo lớp
Mỗi CT phải có ít nhất một 
khai báo lớp
Tên lớp chứa hàm 
main phải giống tên file
Điểm bắt đầu và kết thúc của 
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(): là điểm bắt đầu thực thi một ứng 
dụng.
• 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)
• 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.
PHƯƠNG THỨC MAIN
• Ngôn ngữ Java hỗ trợ ba kiểu chú thích sau:
/* text */
// text
/** documentation */ công cụ javadoc trong bộ JDK sử 
dụng chú thích này để chuẩn bị cho việc tự động phát sinh 
tài liệu.
- Dấu mở và đóng ngoặc nhọn “{“ và “}” là bắt đầu và kết thúc 
một khối lệnh.
- Dấu chấm phẩy “;” để kết thúc một dòng lệnh.
- Java được tổ chức theo lớp (class). Các lệnh và các hàm 
(kể cả hàm main) phải thuộc một lớp nào đó, chúng không 
được đứng bên ngoài của lớp.
CHÚ THÍCH TRONG JAVA
BIÊN DỊCH VÀ THỰC THI
• Biên dịch chương trình
– Vào chế độ Console của Windows
– Gõ câu lệnh javac Hello.java
– Nếu không có thông báo lỗi, file Hello.class sẽ 
được tạo ra
• Thực thi chương trình
– Gõ câu lệnh java Hello (không cần .class)
IDE PHÁT TRIỂN ỨNG DỤNG JAVA
PHẦN 2
HẰNG, BIẾN, KIỂU DỮ LIỆU
TOÁN TỬ
TỪ KHÓA (keyword)
• Từ khóa cho các kiểu dữ liệu cơ bản : 
byte, short, int, long, float, double, char, 
boolean.
• Từ khóa cho phát biểu lặp: do, while, for, 
break, continue.
• Từ khóa cho phát biểu rẽ nhánh: if, else, 
switch, case, default, break.
• Từ khóa đặc tả đặc tính một method: 
private, public, protected, final, static, 
abstract, synchronized.
• Hằng (literal): true, false, null.
• Từ khóa liên quan đến method: return, 
void.
TỪ KHÓA (keyword)
• Định danh là dùng biểu diễn tên của biến, của 
phương thức, của lớp.
• Trong Java, định danh có thể sử dụng ký tự chữ, ký 
tự số và ký tự dấu.
• Ký tự đầu tiên phải là ký tự chữ, dấu gạch dưới (_), 
hoặc dấu dollar ($).
• Có sự phân biệt giữa ký tự chữ hoa và chữ thường.
Ví dụ: Hello, _prime, var8, tvLang
ĐỊNH DANH (identifier)
• Biến là vùng nhớ dùng để lưu trữ các giá trị của chương 
trình. 
• Mỗi biến gắn liền với một kiểu dữ liệu và một định danh duy 
nhất gọi là tên biến.
• Tên biến thông thường là một chuỗi các ký tự (Unicode), ký 
số.
• Tên biến phải bắt đầu bằng một chữ cái, một dấu gạch dưới 
hay dấu dollar.
• Tên biến không được trùng với các từ khóa (xem lại các từ 
khóa trong java).
• Tên biến không có khoảng trắng ở giữa tên.
• Trong java, biến có thể được khai báo ở bất kỳ nơi đâu trong 
chương trình.
BIẾN (variable)
• Cách khai báo
 ;
 = ;
• Gán giá trị cho biến
 = ;
• Biến công cộng (toàn cục): là biến có thể truy xuất ở khắp 
nơi trong chương trình, thường được khai báo dùng từ khóa 
public, hoặc đặt chúng trong một class.
• Biến cục bộ: là biến chỉ có thể truy xuất trong khối lệnh nó 
khai báo
BIẾN (variable)
KIỂU DỮ LIỆU (data type)
Kiểu dữ liệu:
– Kiểu dữ liệu cơ sở (Primitive data type)
– Kiểu dữ liệu tham chiếu hay dẫn xuất 
(reference data type)
– Kiểu dữ liệu cơ sở của Java bao gồm các 
nhóm sau: số nguyên, số thực, ký tự, kiểu 
luận lý (logic)
– Kiểu dữ liệu tham chiếu là các kiểu dữ liệu đối 
tượng. Ví dụ như: String, Byte, Character, 
Double, Boolean, Integer, Long, Short, 
Font, và các lớp do người dùng định nghĩa.
KIỂU DỮ LIỆU CƠ SỞ (primitive type)
Kiểu cơ sở
Kiểu luận lý
boolean
Kiểu số
kiểu nguyên kiểu 
thực
Kiểu ký tự
char
byte short int long float double
KIỂU DỮ LIỆU CƠ SỞ
• Kiểu số nguyên
• Kiểu số thực
Kiểu Kích thước Khoảng giá trị
byte 8 bits -128127
short 16 bits -3276832767
int 32 bits -231231 – 1
long 64 bits -263263 – 1
Kiểu Kích thước Khoảng giá trị
float 32 bits -3.4e383.4e38
double 64 bits -1.7e3081.7e308
• Kiểu boolean: Nhận giá trị true hoặc false
• Kiểu char: Kiểu ký tự theo chuẩn Unicode
Một số hằng ký tự:
Ký tự Ý nghĩa 
\b Xóa lùi (BackSpace) 
\t Tab 
\n Xuống hàng 
\r Dấu enter 
\” Nháy kép 
\’ Nháy đơn 
\\ Số ngược 
\f Đẩy trang 
\uxxxx Ký tự unicode 
KIỂU DỮ LIỆU CƠ SỞ
KIỂU DỮ LIỆU CƠ SỞ
Kiểu số nguyên
– Bốn kiểu số nguyên khác nhau là: byte, short, 
int, long
– Kiểu mặc định của các số nguyên là kiểu int
– Không có kiểu số nguyên không dấu
– Không thể chuyển biến kiểu int và kiểu
boolean như trong ngôn ngữ C/C++
VD: int x = 0;
long y=100;
int a=1,b,c;
KIỂU DỮ LIỆU CƠ SỞ
• Kiểu số nguyên:
boolean b = false;
if (b == 0)
{
System.out.println("Xin chao");
}
Lúc biên dịch, đoạn chương trình trên sẽ báo 
lỗi vì ta không được so sánh biến kiểu 
boolean với biến kiểu int.
KIỂU DỮ LIỆU CƠ SỞ
Một số lưu ý đối với các phép toán trên số nguyên:
-Nếu hai toán hạng kiểu long thì kết quả là kiểu long.
-Một trong hai toán hạng không phải kiểu long sẽ được
chuyển thành kiểu long trước khi thực hiện phép toán.
- Nếu hai toán hạng đầu không phải kiểu long thì phép
tính sẽ thực hiện với kiểu int.
- Các toán hạng kiểu byte hay short sẽ được chuyển 
sang kiểu int trước khi thực hiện phép toán.
KIỂU DỮ LIỆU CƠ SỞ
Kiểu dấu chấm động:
• Kiểu float có kích thước 4 byte và giá trị mặc 
định là 0.0f
• Kiểu double có kích thước 8 byte và giá trị mặc 
định là 0.0d
• Khai báo và khởi tạo giá trị cho các biến kiểu 
dấu chấm động:
float x = 100.0/7;
double y = 1.56E6;
KIỂU DỮ LIỆU CƠ SỞ
Một số lưu ý với các phép toán trên số dấu chấm 
động:
- Nếu mỗi toán hạng đều có kiểu dấu chấm động thì 
phép toán chuyển thành phép toán dấu chấm động.
- Nếu có một toán hạng là double thì các toán hạng 
còn lại sẽ được chuyển thành kiểu double trước khi 
thực hiện phép toán.
- Biến kiểu float và double có thể ép chuyển sang kiểu 
dữ liệu khác (trừ kiểu boolean).
KIỂU DỮ LIỆU CƠ SỞ
• Kiểu ký tự 
– Biểu diễn các ký tự trong bộ mã Unicode 
– 216 = 65536 ký tự khác nhau : 
– từ '\u0000' đến '\uFFFF' 
• Kiểu luận lý (boolean) 
– Hai giá trị: true hoặc false
– Giá trị mặc định: false 
– Không thể chuyển thành kiểu nguyên và 
ngược lại
KIỂU DỮ LIỆU CƠ SỞ
• Kiểu mảng
– Khai báo: int[] iarray; hoặc int iarray[];
– Cấp phát: iarray = new int[100];
– Khởi tạo: 
int[] iarray = {1, 2, 3, 5, 6};
char[] carray = {‘a’, ‘b’, ‘c’};
Chú ý: Luôn khởi tạo hoặc cấp phát mảng trước 
khi sử dụng
– Một số khai báo không hợp lệ: 
int[5] iarray;
int iarray[5];
KIỂU DỮ LIỆU CƠ SỞ
Kiểu mảng
– Truy cập mảng
• iarray[3] = 0;
• carray[1] = ‘z’;
Chú ý: Chỉ số của mảng được tính từ 0
– Lấy số phần tử mảng:
iarray.length
KIỂU DỮ LIỆU CƠ SỞ
• Khi gặp phải sự không tương thích kiểu dữ liệu
chúng ta phải tiến hành chuyển đổi kiểu dữ liệu cho
biến hoặc biểu thức
KIỂU DỮ LIỆU CƠ SỞ
• Toán tử ép kiểu:
 = (kiểu_dữ_liệu) ;
float fNum = 2.2;
int iCount = (int) fNum
• Ép kiểu rộng (widening conversion): từ kiểu nhỏ 
sang kiểu lớn (không mất mát thông tin)
• Ép kiểu hẹp (narrow conversion): từ kiểu lớn 
sang kiểu nhỏ (có khả năng mất mát thông tin)
HẰNG (LITERAL)
• Hằng là một giá trị bất biến trong chương trình
• Tên hằng được đặt theo qui ước giống như tên 
biến 
• Tiếp vĩ ngữ: l, L, f, F, d, D
int i=1;
long i=1L; 
• Hằng ký tự: là một ký tự đơn nằm giữa 2 dấu 
nháy đơn.
HẰNG (LITERAL)
• Hằng chuỗi: là tập hợp các ký tự được đặt giữa 
hai dấu nháy kép “”. Một hằng chuỗi không có ký 
tự nào là một hằng chuỗi rỗng. 
Ví dụ: “Hello Wolrd”
Lưu ý: Hằng chuỗi không phải là một kiểu dữ liệu 
cơ sở nhưng vẫn được khai báo và sử dụng 
trong các chương trình
• Toán tử số học
Toán tử Ý nghĩa 
+ Cộng 
- Trừ 
* Nhân 
/ Chia nguyên 
% Chia dư 
++ Tăng 1 
-- Giảm 1 
TOÁN TỬ (OPERATOR)
TOÁN TỬ (OPERATOR)
• Toán tử quan hệ & logic
Toán tử Ý nghĩa 
== So sánh bằng 
!= So sánh khác 
> So sánh lớn hơn 
< So sánh nhỏ hơn 
>= So sánh lớn hơn hay bằng 
<= So sánh nhỏ hơn hay bằng 
|| OR (biểu thức logic) 
&& AND (biểu thức logic) 
! NOT (biểu thức logic) 
• Toán tử gán (assignment)
Toán tử Ví dụ Giải thích
= int c=3, d=5, 
c=4;
+= c+=7 c=c+7
-= d-=4 d=d-4
*= e*=5 e=e*5
/= f/=3 f=f/3
%= g%=9 g=g%9
TOÁN TỬ (OPERATOR)
TOÁN TỬ (OPERATOR)
• Toán tử điều kiện
 ? : 
int x = 10;
int y = 20;
int Z = (x<y) ? 30 : 40;
• Độ ưu tiên của các phép toán trong ngôn ngữ Java cũng gần 
giống như ngôn ngữ C/C++. Thứ tự ưu tiên từ trái qua phải 
và từ trên xuống dưới như bảng sau:
1 . [] ()
2 ++ -- ! ~
3 * / %
4 + -
5 > >>>
6 =
7 == !=
8 &
9 ^
10 &&
11 ||
12 ?:
13 =
ĐỘ ƯU TIÊN CỦA CÁC PHÉP TOÁN
Ví dụ:
import java.lang.*;
import java.io.*;
class VariableDemo
{
static int x, y;
public static void main(String[] args)
{
x = 10;
y = 20;
int z = x+y;
System.out.println("x = " + x);
System.out.println("y = " + y);
System.out.println("z = x + y =" + z);
System.out.println("So nho hon la so:" +
Math.min(x, y));
char c = 80;
System.out.println("ky tu c la: " + c);
}
}
MỘT VÍ DỤ VỀ PHÉP TOÁN
HẾT
CHƯƠNG 1

File đính kèm:

  • pdfbai_giang_ngon_ngu_java_chuong_1_tong_quan_ngon_ngu_java_pha.pdf