THINK JAVA: CÁCH SUY NGHĨ NHƯ NHÀ KHOA HỌC MÁY TÍNH - Trang 87

ph

ng th c, thì Java s phát m t bi t l có tên

ươ

ệ ệ

NullPointerException, in m t thông báo l i và k t thúc

ế

ch

ng trình.

ươ

Point blank =

null

;

int

x = blank.x;

// NullPointerException

blank.translate(50, 50);

// NullPointerException

M t khác, s hoàn toàn h p l n u ta truy n m t đ i t

ng null làm đ i s ho c nh n m t null làm giá

ợ ệ ế

ộ ố ượ

ố ố

tr tr v . Th c ra, đi u này r t thông d ng, v i m c đích ch ng h n là bi u di n m t t p h p r ng hay

ị ả ề

ộ ậ

ợ ỗ

đ ch m t đi u ki n có l i.

ể ỉ ộ

9.10 Thu d n rác

M c

Ở ụ 9.8 ta đã nói v nh ng gì đã x y ra khi nhi u bi n cùng tham chi u t i m t đ i t ng. Th còn

ế

ế ớ

ộ ố ượ

ế

đi u gì s x y ra khi

ẽ ả

không có bi n nào tham chi u đ n đ i t

ng? Ch ng h n:

ế

ế

ế

ố ượ

Point blank =

new

Point(3, 4);

blank =

null

;

Dòng th nh t t o ra m t đ i t

ng

ấ ạ

ộ ố ượ Point m i r i khi n cho

ớ ồ

ế

blank tham chi u đ n nó. Dòng th hai s a

ế

ế

ch a

ữ blank đ cho, thay vì tham chi u đ n đ i t ng, nó không tham chi u đ n gì c (hay tham chi u

ế

ế

ố ượ

ế

ế

ế

đ n đ i t

ng null).

ế

ố ượ

N u không có ai tham chi u đ n đ i t

ng, thì cũng ch ng ai có th đ c hay ghi giá tr b t kì nào t nó,

ế

ế

ế

ố ượ

ể ọ

ị ấ

hay kích ho t m t ph

ng th c lên nó. H qu là, nó s ng ng t n t i. Ta có th v n gi đ i t

ng này

ươ

ồ ạ

ể ẫ

ữ ố ượ

trong b nh , song làm nh v y ch t n dung l

ng; b i v y khi ch

ng trình ch y, theo đ nh kì h

ư ậ

ỉ ố

ượ

ở ậ

ươ

th ng s tìm ki m các đ i t

ng lang thang r i thu h i l i nó, theo m t quá trình mang tên

ế

ố ượ

ồ ạ

thu d n

rác. Sau này, dung l

ng nh b chi m b i đ i t

ng s v tay ng

i dùng đ ph c v đ i t

ng m i.

ượ

ớ ị

ế

ở ố ượ

ẽ ề

ườ

ụ ụ ố ượ

B n không c n ph i làm b t c đi u gì đ ti n hành thu d n rác, và nói chung b n s không nh n th c

ấ ứ ề

ể ế

ạ ẽ

đ

c quá trình này. Song b n c n bi t r ng quá trình luôn đ

c ng m ch y m t cách đ nh kì.

ượ

ạ ầ

ế ằ

ượ

9.11 Các đ i t

ng và ki u nguyên th y

ố ượ

Trong Java có hai lo i ki u d li u, ki u nguyên th y và ki u đ i t

ng. Ki u nguyên th ,

ữ ệ

ố ượ

nh

ư int và boolean đ u b t đ u b ng ch vi t th ng; ki u đ i t ng b t đ u b ng ch vi t in. S phân

ắ ầ

ữ ế

ườ

ố ượ

ắ ầ

ữ ế

bi t này r t có ích vì chúng nh c ta m t s đi m khác nhau gi a chúng:

ộ ố ể

Khi khai báo m t bi n nguyên th y, b n đ

c m t dung l

ng l u tr dành cho giá tr nguyên th y. Khi

ế

ượ

ượ

ư

b n khai báo m t bi n đ i t

ng, b n nh n đ

c m t dung l

ng ch a tham chi u t i đ i t

ng. Đ

ế

ố ượ

ượ

ượ

ế ớ ố ượ

giành đ

c dung l

ng cho b n thân đ i t

ng đó, b n ph i dùng đ n

ượ

ượ

ố ượ

ế new.

N u b n không kh i t o m t ki u nguyên th y, thì nó s đ

c đi n giá tr m c đ nh tùy theo ki u đó là

ế

ở ạ

ẽ ượ

ị ặ ị

gì. Ch ng h n,

ạ 0 v i tr ng h p

ớ ườ

ợ int và false v i

ớ boolean. Giá tr m c đ nh c a ki u đ i t ng là

ị ặ ị

ố ượ

null,

nghĩa là không có đ i t

ng nào.

ố ượ

Các bi n nguyên th y tách bi t hoàn toàn, theo nghĩa b t c b n làm gì trong m t ph

ng th c này s

ế

ấ ứ ạ

ươ

không nh h

ng đ n m t bi n ph

ng th c khác. Các bi n đ i t

ng thì l i c n ph i khéo léo khi

ưở

ế

ế ở

ươ

ế

ố ượ

ạ ầ

thao tác vì chúng không đ

c bi t l p nh v y. N u b n truy n m t tham chi u đ n đ i t

ng đ làm

ượ

ệ ậ

ư ậ

ế

ế

ế

ố ượ

Liên Kết Chia Sẽ

** Đây là liên kết chia sẻ bới cộng đồng người dùng, chúng tôi không chịu trách nhiệm gì về nội dung của các thông tin này. Nếu có liên kết nào không phù hợp xin hãy báo cho admin.