intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Lập trình Java căn bản - Chương 1 Tổng quan về java

Chia sẻ: Nguyễn Doãn Mạnh Đoàn | Ngày: | Loại File: PDF | Số trang:13

93
lượt xem
10
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

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.

Chủ đề:
Lưu

Nội dung Text: Lập trình Java căn bản - Chương 1 Tổng quan về java

  1. 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
  2. 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
  3. 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
  4. Đ 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
  5. Đ 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
  6. 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
  7. 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
  8. 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
  9. 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
  10. 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
  11. 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
  12. K t q a biên d ch 23 Dùng JCreatorPro 24 12
  13. 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
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2