Lập trình Java căn bản - Chương 1 Tổng quan về java
lượt xem 10
download
Mục tiêu trình bày: hiểu những đặc điểm và lợi ích cảu java, hiểu cơ chế thực thi của java. Hiểu các cơ chế dịch và chạy chương trình java.
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Lập trình Java căn bản - Chương 1 Tổng quan về java
- Chương 1- T ng quan v JAVA M c tiêu (1) Hi u nh ng ñ c ñi m và l i ích c a Java (2) Hi u cơ ch th c thi c a Java (3) Hi u cơ ch biên d ch và ch y 1 chương trình Java (4) Hi u c u trúc cơ b n c a m t chương trình Java 1 N i dung chương 1 1.1- L ch s c a Java 1.2- Nh ng ñ c ñi m cơ b n c a Java 1.3- Máy o Java- JVM 1.4- Môi trư ng l p trình Java 1.5- Chương trình Java ñ u tiên 1.7- Tóm t t 1.8- Tr c nghi m và bài t p 2 1
- 1.1- L ch s c a Java • Năm 1990, James Gosling, Bill Joy, Patrick Naughton(Sun Microsystem) phát tri n ngôn ng Oak 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), Oak ñòi h 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) - Ph i tin c y tuy t ñ i (extremely reliable) - Nh g n, ch c ch n (compact) • 1993, TV tương tác và PDA th t b i, 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. • 1994, HotJava Browser c a Sun xu t hi n (vi t b ng Java ch sau vài tháng) minh h a th m nh c a các applet cũng như kh năng phát tri n nhanh m t ng d ng c a Java. 3 L ch s Java (tt) • Cùng v i s bùng n c a Internet, Java tr thành ph n m m ưu th trong vi c phát tri n ng d ng ch y trên internet. • Tuy nhiên, nh ng b n Java ñ u chưa ñ m nh theo yêu c u c a ngư i s d ng. Thí d : Đ h a trong b n Java 1.0 thô và v ng v hơn so v i ñ h a khi ñư c x lý b ng C ho c ngôn ng khác. • Tuy lúc ñ u Java chưa thành công trong vi c xây d ng các ng d ng m c ngư i dùng, Java v n là ngôn ng r t thông d ng m c doanh nghi p, các ng d ng m c trung gian như: Lưu tr tr c tuy n, x lý giao tác, giao ti p v i database,… và càng thông d ng trên nh ng c u trúc n n nh (small platform) như ñi n tho i di ñ ng, PDA. 4 2
- Java là gì? • Là m t ngôn ng OOP ñ y ñ , không th vi t 1 ng d ng hư ng th t c trong Java. • Có th gi i các h bài toán như nh ng ngôn ng l p trình khác. • Cho phép t o Application ho c Applet. • Applet là nh ng chương trình nh ch y trong tài li u HTML v i ñi u ki n trình duy t có h tr Java (như IE, Netscape Navigator, HotJava,…) • S d ng 2 cơ ch : Interpreter | Compiler • Write code one, run it anywhere, anytime, forever 5 1.2- Đ c ñi m c a Java • Đơn gi n( simple). 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 • Hư ng ñ i tư ng (OO). M i th trong Java là ñ i tư ng • 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. • M nh (Robust). Đ nh ki u m nh, tư ng minh, ki m tra lúc biên d ch và ki m tra khi thông d ch trư c khi th c thi Gi i h n ñư c l i; ki m tra truy xu t ph n t c a m ng, chu i lúc th c thi, ki m tra ép ki u run-time. Có trình gom rác – garbage collection- programmer không c n ph i lo toan ñ n vi c h y ñ i tư ng. 6 3
- Đ c ñi m c a Java (tt) • B o m t (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. 7 Đ c ñi m c a Java (tt) • Tính tương thích Chương trình kh chuy n Java (Portability) Compiler Chương trình Bytecode ñ c l p platform Java Runtime Interpreter/ JVM th c thi Javabytecode IBM Macintosh Intel Sparc 8 4
- Đ c ñi m c a Java (tt) • Th c thi d ng thông d ch: (Interpretive execution) Ch th ch ñư c 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) (1) Các file tài nguyên trình biên d ch javac class file ñ c l p thi t b (2) Class file trình thông d ch java mã máy th c thi, không c n liên k t (link) L i ích (1) Java class file có th ñư c dùng b t kỳ flatform nào. (2) Tính module hóa cao, dùng b nh t t hơn v i class file hơn là file th c thi vì class file 9 Đ c ñi m c a Java (tt) • Hi u su t cao (high performance): bytecode native machine code d dàng nh Just-in-time compiler. • Đa lu ng (multithreading) Cho phép l p trình ña lu ng (nhi u chương trình ñ ng hành nh l p Thread : kh i t o, ngưng 1 lu ng, ki m tra tr ng thái c a lu ng) thread: m t lu ng th c thi c a CPU là 1 chương trình • Linh ñ ng (dynamic): Cho phép tương thích v is thay ñ i c a môi trư ng, Trong CT java có các thông tin run-time Ki m tra truy xu t l p an toán, an toàn ñ liên k t caùc l pvào CT dynamic 10 5
- 1.3- JVM- Java Virtual Machine • 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 • JVM là trung tâm c a Java • Các thành ph n d n ñ n s thành công c a Java: Bytecode definitions, the structure of .class file, JVM. 11 1.3.1- JVM là gì? • 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 Chương trình Java javac : compiler Java Bytecode Dùng cơ ch Just-In-Time thông d ch bytecode thành JVM l nh máy c th OS Hardware platform 12 6
- JVM là gì? (tt) • 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 • Vì s không tương thích ph n c ng, JVM dùng cơ ch máy-stack ch a các thông tin sau: (1) Các frame (khung thông tin) bi u di n tr ng thái các method. (2) Các toán h ng bytecode (3) Các tham s ñư c truy n cho các method (4) Các bi n c c b • Dùng thanh ghi l nh ghi nh ñ a ch l nh ñang th c thi. 13 1.3.2- JRE-Môi trư ng run-time c a Java • JRE: Java Run-time Environmet • Hai giai ño n c a 1 Java application: Compile-time, Run-time • Compile-time phase: Vi t và biên d ch chương trình Begin Java source code Biên d ch b ng javac .class file End 14 7
- JRE- Run-time phase Nh class .class Begin Loader, ki m tra file an toàn Net N p .class file work Nh ch c năng bytecode verifier, Ki m tra bytecode ki m tra code format và quy n truy xu t Interpreter JIT code Generator Run-time code Hardware End 15 1.3.3- Trình gom rác- Garbage Collection • 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. 16 8
- Trình gom rác (tt) Dynamic heap: có gom rác Static Heap Dynamic heap Section 1 -Class definitions Bi n ñ i tư ng O2 -Các h ng Bi n ñ i tư ng O1 -CMT1 (class1,method1,Add1) Dynamic heap Section 2 -CMT2 ( Các entry: 2 pointers) (class2,method2,Add2) (O1, CMT1) ….. (O2, CMT2) Static heap: không gom rác Section 2: Theo dõi ho t ñ ng c a các ñ i tư ng CMT: class method table 17 Cơ ch gom rác 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 ) 18 9
- 1.4- Môi trư ng l p trình Java • 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 Hi n nay ñã có b n Java 1.6 19 Các công c chính c a môi trư ng Java Trong thư m c BIN c a JDK (sau khi cài ñ t) có: • javac : Java Compiler: D ch source code Independent Bytecode • java : Th c thi class file trong JVM • appletviewer : cho phép ch y applet mà không c n Browser. 20 10
- 1.5- Chương trình java ñ u tiên • Yêu c u: Vi t chương trình xu t chu i “Hello world from java!” ra màn hình. • Phân tích: - C n tác v xu t S d ng l p System trong gói java.lang - 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, Netbeans, Eclipse, … cho phép v a vi t code v a th c thi. 21 Dùng NotePad, biên d ch dòng l nh Lưu tr v i tên HelloWorld.java- tên l p là tên file C:\PROGRA~1\JavaSoft\JRE\1.2\bin>javac e:\BaiGiang2004\java\HelloWorld.java e:\BaiGiang2004\java\HelloWorld.java:1: ';' expected. import java.io.* ^ L i thi u d u ch m ph y, code trên ñã s a 1 error E:\BaiGiang2004\Java>javac HelloWorld.java E:\BaiGiang2004\Java>java HelloWorld Ho c biên d ch v i thư m c hi n hành là Hello World From Java ! thư m c ch a source code . E:\BaiGiang2004\Java> Biên d ch thành công và ch y ng d ng Chú ý: Tên file .java có tính ch t case-sensitive 22 11
- K t q a biên d ch 23 Dùng JCreatorPro 24 12
- 1.6- 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) 25 13
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Lập trình Java căn bản
193 p | 1459 | 722
-
Thực hành lập trình nhúng căn bản Buổi 3
15 p | 351 | 106
-
Bài giảng Ngôn ngữ lập trình Java căn bản
115 p | 351 | 104
-
Bài giảng Lập trình Java cơ bản
239 p | 230 | 63
-
Bài giảng Lập trình Java căn bản: Chương 2 - ThS. Võ Đức Cẩm Hải
24 p | 19 | 8
-
Bài giảng Lập trình Java căn bản: Chương 6.2 - ThS. Võ Đức Cẩm Hải
30 p | 18 | 8
-
Lập trình Java căn bản - Giới thiệu
11 p | 110 | 8
-
Giáo trình Cơ sở lập trình java căn bản (Nghề: Lập trình viên máy tính - Cao đẳng) - Trường CĐ Nghề Kỹ thuật Công nghệ
139 p | 35 | 7
-
Bài giảng Lập trình Java căn bản: Chương 0 - ThS. Võ Đức Cẩm Hải
22 p | 10 | 6
-
Bài giảng Lập trình Java căn bản: Chương 9 - ThS. Võ Đức Cẩm Hải
50 p | 8 | 5
-
Bài giảng Lập trình Java căn bản: Chương 8 - ThS. Võ Đức Cẩm Hải
48 p | 15 | 5
-
Bài giảng Lập trình Java căn bản: Chương 7 - ThS. Võ Đức Cẩm Hải
29 p | 12 | 5
-
Bài giảng Lập trình Java căn bản: Chương 5 - ThS. Võ Đức Cẩm Hải
56 p | 14 | 5
-
Bài giảng Lập trình Java căn bản: Chương 4 - ThS. Võ Đức Cẩm Hải
27 p | 14 | 5
-
Bài giảng Lập trình Java căn bản: Chương 3 - ThS. Võ Đức Cẩm Hải
61 p | 12 | 5
-
Bài giảng Lập trình Java căn bản: Chương 10 - ThS. Võ Đức Cẩm Hải
87 p | 9 | 5
-
Bài giảng Lập trình Java căn bản: Chương 6.1 - ThS. Võ Đức Cẩm Hải
44 p | 8 | 4
-
Bài giảng Lập trình java: Chương 2 - ThS. Hoàng Mạnh Hà
25 p | 93 | 4
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn