Chủ Nhật, 2 tháng 3, 2014

Tài liệu Hiểu thêm về Java doc

Thêm về Java
5
NguyễnViệtHà
boolean
1.79769313486231570e+3084.94065645841246544e-32464double
3.40282346638528860e+381.40129846432481707e-4532float
+ 2
63
-1-2
63
64long
+ 2
31
- 1, 0x7fffffff-2
31
, 0x8000000032int
32767 (2
15
-1)-32768 (-2
15
)16short
+127 (2
7
-1)-128 (-2
7
)8byte
0xffff0x016char
Giá trị cực đạiGiá trị cực tiểuĐộ rộng
(bits)
Kiểu
dữ liệu
Thêm về Java
6
NguyễnViệtHà
Dữ liệu đượclưu trữởđâu
 Dữ liệu kiểu nguyên thủy
 thao tác thông qua tên biến
 Dữ liệu là thuộc tính của đối tượng
 Đối tượng được thao tác thông qua tham
chiếu
 Vậy biến kiểu nguyên thủy, tham chiếu và
đối tượng được lưu trữở đâu?
Thêm về Java
7
NguyễnViệtHà
3 vùng bộ nhớ cho ứng dụng
static memory
stack memory
heap memory
code
static data
constants
temporary
data
dynamic
data
Thêm về Java
8
NguyễnViệtHà
Tham chiếu
 Đối tượng được thao tác thông qua tham chiếu
 là con trỏ tới đối tượng
 thao tác trực tiếp tới thuộc tính và phương thức
 không có các toán tử con trỏ
 phép gán (=) không phải là phép toán copy nội dung
đối tượng
 tham chiếu được lưu trữ trong vùng nhớ
static/stack như các con trỏ trong C/C++
Thêm về Java
9
NguyễnViệtHà
Toán tử New
 Phải tạo mọi đối tượng một cách tường
minh bằng toán tử new
 cấp phát vùng nhớ động
 được tạo trong bộ nhớ Heap
 Ví dụ:
MyDate d;
MyDate birthday;
d = new MyDate();
Thêm về Java
10
NguyễnViệtHà
Phép gán “=”
 Phép gán không phải là copy thông thường
 copy nội dung của tham chiếu
 hai tham chiếu sẽ tham chiếu đến cùng đối tượng
Integer m = new Integer(10);
Integer n = new Integer(20);
m = n;
n.setValue(50);
System.out.print(m);
Thêm về Java
11
NguyễnViệtHà
“New” và “=”
MyDate d;
MyDate birthday;
d = new MyDate(26,9,2005);
birthday = d;
new operation
assign operation
d
birthday
Static/Stack memory
26-9-2005
Heap memory
Thêm về Java
12
NguyễnViệtHà
Toán tử quan hệ “==”
 So sánh nội dung của các dữ liệu kiểu nguyên thủy (int,
long, float, …)
 So sánh nội dung của tham chiếu chứ không so sánh nội
dung của đối tượng do tham chiếu trỏ đến
Integer n1 = new Integer(47);
Integer n2 = new Integer(47);
System.out.println(n1 == n2);
System.out.println(n1 != n2);

false
true
Thêm về Java
13
NguyễnViệtHà
So sánh nội dung đốitượng
class MyDate {

boolean equalTo(MyDate d) {

}
}

MyDate d1 = new MyDate(10,10,1954);
MyDate d2 = new MyDate(d1);
System.out.println(d1.equalTo(d2));
Thêm về Java
14
NguyễnViệtHà
Giải phóng bộ nhớ động
(Garbage collection)
 Lập trình viên không cần phải giải phóng đối
tượng
 JVM cài đặt cơ chế “Garbage collection” để giải
phóng tự động các đối tượng không còn cần
thiết
 tuy nhiên, GC không nhất thiết hoạt động với mọi đối
tượng
 GC tăng tốc độ phát triển và tăng tính ổn định
của ứng dụng
 Không phải viết mã giải phóng đối tượng
 Do đó, không bao giờ quên giải phóng đối tượng

Không có nhận xét nào:

Đăng nhận xét