1. Trang chủ
  2. » Công Nghệ Thông Tin

Giáo trình lập trình với CoreJava - 2

7 4 0

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 7
Dung lượng 154,15 KB

Nội dung

Tham khảo tài liệu ''giáo trình lập trình với corejava - 2'', công nghệ thông tin, kỹ thuật lập trình phục vụ nhu cầu học tập, nghiên cứu và làm việc hiệu quả

Bài 2: Mơ t v Java N i dung • • • • • N m đ c đ c tr ng c a Java Các ki u ch ng trình Java Ð nh ngh a v máy o Java Các n i dung c a JDK(Java Development Kit) S l c đ c tr ng m i c a Java2 2.1 Mô t v Java Java m t ngơn ng l p trình đ c Sun Microsystems gi i thi u vào tháng n m 1995 T đó, tr thành m t cơng c l p trình c a l p trình viên chuyên nghi p Java đ c xây d ng n n t ng c a C C++ Do v y s d ng cú pháp c a C đ c tr ng h ng đ i t ng c a C++ Vào n m 1991, m t nhóm k s c a Sun Microsystems có ý đ nh thi t k m t ngơn ng l p trình đ u n thi t b n t nh Tivi, máy gi t, lò n ng, … M c dù C C++ có kh n ng làm vi c nh ng trình biên d ch l i ph thu c vào t ng lo i CPU Trình biên d ch th ng ph i t n nhi u th i gian đ xây d ng nên r t đ t Vì v y đ m i lo i CPU có m t trình biên d ch riêng r t t n Do nhu c u th c t địi h i m t ngơn ng ch y nhanh, g n, hi u qu đ c l p thi t b t c có th ch y nhi u lo i CPU khác nhau, d i môi tr ng khác “Oak” đ i vào n m 1995 đ c đ i tên thành Java M c dù m c tiêu ban đ u không ph i cho Internet nh ng đ c tr ng không ph thu c thi t b nên Java tr thành ngơn ng l p trình cho Internet 2.1.1 Java Java ngơn ng l p trình h ng đ i t ng, v y không th dùng Java đ vi t m t ch ng trình h ng ch c n ng Java có th gi i quy t h u h t công vi c mà ngơn ng khác có th làm đ c Java ngôn ng v a biên d ch v a thông d ch u tiên mã ngu n đ c biên d ch b ng công c JAVAC đ chuy n thành d ng ByteCode Sau đ c th c thi t ng lo i máy c th nh ch ng trình thơng d ch M c tiêu c a nhà thi t k Java cho phép ng i l p trình vi t ch ng trình m t l n nh ng có th ch y b t c ph n c ng c th Ngày nay, Java đ c s d ng r ng rãi đ vi t ch ng trình ch y Internet Nó ngơn ng l p trình h ng đ i t ng đ c l p thi t b , không ph thu c vào h u hành Nó khơng ch dùng đ vi t ng d ng ch y đ n l hay m ng mà đ xây d ng trình u n thi t b cho n tho i di đ ng, PDA, … 2.2 Các đ c tr ng c a Java • • • • • • • • n gi n ng đ i t ng c l p ph n c ng h u hành M nh B om t Phân tán a lu ng ng H 2.2.1 n gi n Nh ng ng i thi t k mong mu n phát tri n m t ngôn ng d h c quen thu c v i đa s ng i l p trình Do v y Java đ c lo i b đ c tr ng ph c t p c a C C++ nh thao tác tr , thao tác n p đè (overload),… Java không s d ng l nh “goto” c ng nh file header (.h) C u trúc “struct” “union” c ng đ c lo i b kh i Java 2.2.2 H ng đ i t ng Java đ c thi t k xoay quanh mơ hình h ng đ i t ng Vì v y Java, tiêu m d li u ph ng pháp thao tác lên d li u D li u ph ng pháp mô t tr ng thái cách ng x c a m t đ i t ng Java 2.2.3 c l p ph n c ng h u hành ây kh n ng m t ch ng trình đ c vi t t i m t máy nh ng có th ch y đ c b t k đâu Chúng đ c th hi n m c mã ngu n m c nh phân m c mã ngu n, ng i l p trình c n mơ t ki u cho m i bi n Ki u d li u Java nh t quán cho t t c h u hành ph n c ng khác Java có riêng m t th vi n l p c s Vì v y ch ng trình Java đ c vi t m t máy có th d ch ch y tr n tru lo i máy khác mà không c n vi t l i m c nh phân, m t ch ng trình biên d ch có th ch y n n khác mà không c n d ch l i mã ngu n Tuy v y c n có ph n m m máy o Java (s đ c p đ n ph n sau) ho t đ ng nh m t trình thơng d ch t i máy th c thi H ình 2.1 Trình biên d ch s chuy n ch ng trình vi t b ng C, C++ hay ngôn ng khác thành mã máy nh ng ph thu c vào CPU Nên mu n ch y lo i CPU khác, ph i biên d ch l i ch ng trình Hình 2.2 Mơi tr ng phát tri n c a Java đ c chia làm hai ph n: Trình biên d ch trình thơng d ch Khơng nh C hay C++, trình biên d ch c a Java chuy n mã ngu n thành d ng bytecode đ c l p v i ph n c ng mà có th ch y b t k CPU Nh ng đ th c thi ch ng trình d i d ng bytecode, t i m i máy c n ph i có trình thơng d ch c a Java hay g i máy o Java Máy o Java chuy n bytecode thành mã l nh mà CPU th c thi đ c 2.2.4 M nh m Java yêu c u ch t ch v ki u d li u ph i mô t rõ ràng vi t ch ng trình Chúng s ki m tra lúc biên d ch c th i gian thơng d ch v y Java lo i b ki u d li u d gây l i 2.2.5 B o m t Java cung c p m t s l p đ ki m tra b o m t l p đ u tiên, d li u ph ng pháp đ c đóng gói bên l p Chúng ch đ c truy xu t thông qua giao di n mà l p cung c p Java không h tr tr v y khơng cho phép truy xu t b nh tr c ti p Nó c ng ng n ch n không cho truy xu t thông tin bên c a m ng b ng k thu t tràn c ng cung c p k thu t d n rác b nh Các đ c tr ng t o cho Java an toàn có kh n ng c đ ng cao Trong l p th hai, trình biên d ch ki m sốt đ đ m b o mã an tồn L p th ba đ c đ m b o b i trình thơng d ch Chúng ki m tra xem bytecode có đ m b o qui t c an toàn tr c th c thi L p th t ki m soát vi c n p l p lên b nh đ giám sát vi c vi ph m gi i h n truy xu t tr c n p vào h th ng 2.2.6 Phân tán Java có th dùng đ xây d ng ng d ng có th làm vi c nhi u ph n c ng, h u hành giao di n đ h a Java đ c thi t k cho ng d ng ch y m ng Vì v y chúng đ c s d ng r ng rãi Internet, n i s d ng nhi u n n t ng khác 2.2.7 a lu ng Ch ng trình Java s d ng k thu t đa ti n trình (Multithread) đ th c thi công vi c đ ng th i Chúng c ng cung c p gi i pháp đ ng b gi a ti n trình c tính h tr đa ti n trình cho phép xây d ng ng d ng m ng ch y uy n chuy n 2.2.8 ng Java đ c thi t k nh m t ngôn ng đ ng đ đáp ng cho nh ng môi tr ng m Các ch ng trình Java b xung thông tin cho đ i t ng t i th i gian th c thi i u cho phép kh n ng liên k t đ ng mã 2.3 Các ki u ch ng trình Java Chúng ta có th xây d ng lo i ch ng trình Java nh sau: 2.3.1 Applets ây ch ng trình ch y Internet thơng qua trình t h tr Java nh IE hay Netscape B n có th dùng cơng c c a Java đ xây d ng Applet Applet đ c nhúng bên trang Web ho c file HTML Khi trang Web hi n th trình t, Applet s đ c n p th c thi 2.3.2 ng d ng th c thi qua dòng l nh 2.3.3 ng d ng đ h a Các ch ng trình ch y t d u nh c l nh không s d ng giao di n đ h a Các thông tin nh p xu t đ c th hi n t i d u nh c l nh ây ch ng trình Java ch y đ c l p cho phép ng i dùng t ng tác qua giao di n đ h a 2.3.4 Servlet Java thích h p đ phát tri n ng d ng nhi u l p Applet ch ng trình đ h a ch y trình t t i máy tr m ng d ng Web, máy tr m g i yêu c u t i máy ch Máy ch x lý g i ng c k t qu tr l i máy tr m Các ch ng trình Java API ch y máy ch giám sát trình t i máy ch tr l i yêu c u c a máy tr m Các ch ng trình Java API ch y máy ch m r ng kh n ng c a ng d ng Java API chu n Các ng d ng máy ch đ c g i Servlet ho c Applet t i máy ch Các x lý Form c a HTML cách s d ng đ n gi n nh t c a Servlet Chúng cịn cịn có th đ c dùng đ x lý d li u, th c thi transaction th ng đ c th c thi qua má y ch Web 2.3.5 ng d ng c s d li u Các ng d ng s d ng JDBC API đ k t n i t i c s d li u Chúng có th Applet hay ng d ng, nh ng Applet b gi i h n b i tính b o m t 2.4 Máy o Java (JVM-Java Virtual Machine) Máy o Java trái tim c a ngôn ng Java Môi tr ng Java bao g m n m ph n t sau: - Ngôn ng - Ð nh ngh a Bytecode - Các th vi n l p Java/Sun - Máy o Java (JVM) - C u trúc c a file class Các ph n t t o cho Java thành công - Ð nh ngh a Bytecode - C u trúc c a file class - Máy o Java (JVM) Kh n ng c đ ng c a file class cho phép ch ng trình Java vi t m t l n nh ng ch y Kh n ng có đ c nh s giúp đ c a máy o Java 2.4.1 Máy o Java ? b t k đâu Máy o m t ph n m m d a c s máy tính o Nó có t p h p l nh logic đ xác đ nh ho t đ ng c a máy tính Ng i ta có th xem nh m t h u hành thu nh Nó thi t l p l p tr u t ng cho: Ph n c ng bên d i, h u hành, mã biên d ch Trình biên d ch chuy n mã ngu n thành t p l nh c a máy o mà không ph thu c vào ph n c ng c th Trình thơng d ch m i máy s chuy n t p l nh thành ch ng trình th c thi Máy o t o m t môi tr ng bên đ th c thi l nh b ng cách: - N p file class - Qu n lý b nh - D n “rác” Vi c không nh t quán c a ph n c ng làm cho máy o ph i s d ng ng n x p đ l u tr thông tin sau: - Các “Frame” ch a tr ng thái c a ph ng pháp - Các toán h ng c a mã bytecode - Các tham s truy n cho ph ng pháp - Các bi n c c b Khi JVM th c thi mã, m t ghi c c b có tên “Program Counter” đ c s d ng Thanh ghi tr t i l nh th c hi n Khi c n thi t, có th thay đ i n i dung ghi đ đ i h ng th c thi c a ch ng trình Trong tr ng h p thơng th ng t ng l nh m t n i ti p s đ c th c thi M t khái ni m thông d ng khác Java trình biên d ch “Just In Time-JIT” Các trình t thơng d ng nh Netscape hay IE đ u có JIT bên đ t ng t c đ th c thi ch ng trình Java M c đích c a JIT chuy n t p l nh bytecode thành mã máy c th cho t ng lo i CPU Các l nh s đ c l u tr s d ng m i g i đ n 2.4.2 Qu n lý b nh d n rác Trong C, C++ hay Pascal ng i l p trình s d ng ph ng pháp nguyên th y đ c p phát thu h i b nh vùng “Heap” Heap vùng b nh l n đ c phân chia cho t t c thread qu n lý Heap, b nh đ c theo dõi qua danh sách sau: - Danh sách vùng nh r nh ch a c p phát - Danh sách vùng c p Khi có m t yêu c u v c p phát b nh , h th ng xem xét danh sách ch a c p phát đ l y kh i b nh đ u tiên có kích c sát nh t Chi n thu t c p phát gi m t i thi u vi c phân m nh c a heap “Coalescing” k thu t khác c ng gi m thi u vi c phân m nh c a heap b ng cách gom l i vùng nh ch a dùng li n Còn k thu t s p x p l i ph n dùng đ t o vùng nh r nh l n h n g i “Compaction” Java s d ng hai heap riêng bi t cho c p phát vùng nh t nh vùng nh đ ng M t heap (heap t nh) ch a đ nh ngh a v l p, h ng danh sách ph ng pháp Heap l i (heap đ ng) đ c chia làm hai ph n đ c c p phát theo hai chi u ng c M t bên ch a đ i t ng m t bên ch a tr tr đ n đ i t ng “Handle” c u trúc bao g m hai tr M t tr đ n b ng ph ng pháp c a đ i t ng, tr th hai tr đ n đ i t ng Chú ý r ng “compaction” c n c p nh t l i giá tr tr c a c u trúc “handle” Thu t toán d n rác có th áp d ng cho đ i t ng đ t heap đ ng Khi có u c u v b nh , trình qu n lý heap tr c tiên ki m tra danh sách b nh ch a c p phát N u khơng tìm th y kh i b nh phù h p (v kích c ) trình d n rác s đ c kích ho t h th ng r nh Nh ng đòi h i b nh c p bách trình d n rác s đ c kích ho t Trình d n rác g i hàm Finalize tr c d n d p đ i t ng Hàm s d n d p tài nguyên bên nh file m Công vi c không đ c trình d n rác th c thi 2.4.3 Quá trình ki m tra file class Vi c ki m tra đ c áp d ng cho t t c file class s p đ c n p lên b nh đ đ m b o tính an tồn Trình “Class Loader” s ki m tra t t c file class không thu c h u hành v i m c đích giám sát s tuân th nghi th c đ phát hi n file class có nguy c gây h h ng đ n b nh , h th ng file c c b , m ng ho c h u hành Quá trình ki m tra s xem xét đ n tính tồn v n toàn c c c a l p File class bao g m ba ph n logic là: - Bytecode - Thông tin v Class nh ph ng pháp, giao di n giá tr đ c t p h p trình biên d ch - Các thu c tính v l p Các thơng tin c a file class đ c xem xét riêng r b ng sau: - B ng Field ch a thu c tính - B ng Method ch a hàm c a class - B ng Interface ch a giao di n h ng s Quá trình ki m tra file class đ c th c hi n b n m c: • M c đ u tiên th c hi n vi c ki m tra cú pháp đ đ m b o tính c u trúc tính tồn v n cú pháp c a file class đ c n p • • • M c th hai s xem xét file class đ đ m b o file không vi ph m nguyên t c v s nh t quán ng ngh a M c th ba s ki m tra bytecode Trong b c thông tin so sánh s s thông s truy n c a hàm, kh n ng truy xu t sai ch s c a m ng, chu i, bi u th c M c th t s ki m tra th i gian th c thi đ gi ám s át c ác vi c l i m ba b c tr ên ch a l àm Ví d nh liên k t t i l p khác th c thi, hay ki m tra quy n truy xu t N u m i u th a mãn, l p s đ c kh i t o 2.5 B công c phát tri n JDK (Java Development Kit) Sun Microsystem đ a ngơn ng l p trình Java qua s n ph m có tên Java Development Kit (JDK) Ba phiên b n là: - Java 1.0 - S d ng l n đ u vào n m 1995 - Java 1.1 – Ð a n m 1997 v I nhi u u m h n phiên b n tr c - Java – Phiên b n m i nh t JDK bao g m Java Plug-In, chúng cho phép ch y tr c ti p Java Applet hay JavaBean b ng cách dùng JRE thay cho s d ng môi tr ng th c thi m c đ nh c a trình t JDK ch a cơng c sau: 2.5.1 Trình biên d ch, 'javac' Cú pháp: javac [options] sourcecodename.java 2.5.2 Trình thơng d ch, 'java' Cú pháp: java [options] classname 2.5.3 Trình d ch ng c, 'javap' Cú pháp: javap [options] classname 2.5.4 Công c sinh tài li u, 'javadoc' Cú pháp: javadoc [options] sourcecodename.java 2.5.5 Ch ng trình tìm l i - Debug, 'jdb‘ Cú pháp: jdb [options] sourcecodename.java OR jdb -host -password [options] sourcecodename.java 2.5.6 Ch ng trình xem Applet , 'appletviewer‘ Cú pháp: appletviewer [options] sourcecodename.java / url 2.6 Java Core API Nhân Java API đ c đ a qua phiên b n JFC 1.1 M t s package th ng dùng đ c li t kê nh sau: 2.6.1 java.lang Ch a l p quan tr ng nh t c a ngôn ng Java Chúng bao g m ki u d li u c b n nh Character, Integer,… Chúng c ng ch a l p làm nhi m v x lý l i l p nh p xu t chu n M t vài l p quan tr ng khác nh String hay StringBuffer 2.6.2 java.applet ây package nh nh t ch a m t l p Applet Các l p Applet nhúng trang Web đ u d n xu t t l p 2.6.3 java.awt Package đ c g i Abstract Window Toolkit (AWT) Chúng ch a tài nguyên dùng đ t o giao di n đ h a M t s l p bên là: Button, GridBagLayout, Graphics 2.6.4 java.io Cung c p th vi n nh p xu t chu n c a ngôn ng Chúng cho phép t o qu n lý dòng d li u theo m t vài cách 2.6.5 java.util Package cung c p m t s cơng c h u ích M t vài l p c a package là: Date, Hashtable, Stack, Vector StringTokenizer 2.6.6 java.net Cung c p kh n ng giao ti p v i máy t xa Cho phép t o k t n i v i Socket ho c URL 2.6.7 java.awt.event Ch a l p dùng đ x lý s ki n ch 2.6.8 java.rmi ng trình nh chu t, bàn phím Cơng c đ g i hàm t xa Chúng cho phép t o đ i t máy c c b ng máy khác s d ng đ i t ng 2.6.9 java.security Cung c p công c c n thi t đ mã hóa đ m b o tính an tồn c a d li u truy n gi a máy tr m máy ch 2.6.10 java.sql Package ch a Java DataBase Connectivity (JDBC), dùng đ truy xu t c s d li u quan h nh Oracle, SQL Server 2.7 Các đ c tr ng m i c a Java Các phiên b n tr c c a Java ch thích h p đ vi t ng d ng nh Web h n xây d ng ng d ng ch y m ng đ đ m nhi m toàn b công vi c c a c a m t công ty ho c h th ng phân tán Java đáp ng yêu c u M t vài đ c tr ng c a chúng là: - Swing ây m t t p l p giao di n m i dùng đ t o giai di n ng d ng đ h a b ng thi t k “Nhìn c n giác” (Look and Feel) - Kéo th ây kh n ng di chuy n thông tin gi a ng d ng hay ph n khác c a ch - Java 2D API - Âm - RMI ng trình Ch a t p h p l p h tr cho nh đ h a hai chi u T p h p đ c tr ng âm hoàn toàn m i cho Java RMI (Remote Method Invocation) cho phép ng d ng g i ph cho phép giao ti p v i chúng Tóm t t - Java ngơn ng biên d ch thông d ch Các đ c tr ng c a Java : n gi n, H ng đ i t ng, c l p ph n c ng, M nh, B o m t, ng pháp c a đ i t ng t i máy t xa - Phân tán, a lu ng, ng Máy o Java Java Development Kit Các đ c tr ng m i c a Java Bài t p - Cài đ t Java Gõ l nh sau t i d u nh c li t kê tham s khác c a chúng: javac java ... sau: - Ngôn ng - Ð nh ngh a Bytecode - Các th vi n l p Java/Sun - Máy o Java (JVM) - C u trúc c a file class Các ph n t t o cho Java thành công - Ð nh ngh a Bytecode - C u trúc c a file class -. .. nh c a trình t JDK ch a cơng c sau: 2. 5.1 Trình biên d ch, 'javac' Cú pháp: javac [options] sourcecodename.java 2. 5 .2 Trình thơng d ch, 'java' Cú pháp: java [options] classname 2. 5.3 Trình d... CPU khác, ph i biên d ch l i ch ng trình Hình 2. 2 Mơi tr ng phát tri n c a Java đ c chia làm hai ph n: Trình biên d ch trình thơng d ch Khơng nh C hay C++, trình biên d ch c a Java chuy n mã

Ngày đăng: 11/05/2021, 19:49

w