Công nghệ Java - Tổng quan về ngôn ngữ lập trình java

ppt 35 trang vanle 1610
Bạn đang xem 20 trang mẫu của tài liệu "Công nghệ Java - Tổng quan về ngôn ngữ lập trình java", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pptcong_nghe_java_tong_quan_ve_ngon_ngu_lap_trinh_java.ppt

Nội dung text: Công nghệ Java - Tổng quan về ngôn ngữ lập trình java

  1. CÔNG NGHỆ JAVA CH1. TỔNG QUAN VỀ NGÔN NGỮ LẬP TRÌNH JAVA Quang Dieu Tran PhD 7/5/2021 1
  2. Nội dung 1- Lịch sử của Java 2- Những đặc điểm cơ bản của Java 3- Máy ảo Java- JVM 4- Môi trường lập trình Java 5- Chương trình Java đầu tiên 7- Tóm tắt 8- Trắc nghiệm và bài tập 7/5/2021 2
  3. Lịch sử các ngôn ngữ lập trình 7/5/2021 3
  4. Lịch sử phát triển Java • Phát triển từ ngôn ngữ Oak • Được công ty Sun Microsystems đặt tên là Java từ năm 1996 • Oracle mua lại và tiếp tục phát triển từ năm 2010 • Java là một trong những ngôn ngữ lập trình hướng đối tượng rất phổ biến hiện nay 7/5/2021 4
  5. Lịch sử phát triển Java 7/5/2021 5
  6. Đặc tính • Đơn giản( simple) • Hướng đối tượng (OO) • Phân tán (Distributed) • Mạnh (Robust) • Bảo mật (Secure) • Hiệu suất cao (high performance) • Đa luồng (multithreading) • Linh động (dynamic) 7/5/2021 6
  7. Đặc tính • Tính khả chuyển, tương thích (Portability) 7/5/2021 7
  8. Đặc tính • Thực thi dạng thông dịch: (Interpretive execution), chỉ 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) 7/5/2021 8
  9. Đặc tính • Tính khả chuyển, tương thích (Portability) 7/5/2021 9
  10. Các thành phần chính • 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 7/5/2021 10
  11. Java Virtual Machine • 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ụ 77/5/2021/5/2021 11
  12. Java Virtual Machine • 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 7/5/2021 12
  13. Java Runtime Environment • Môi trường run-time của Java: – Cung cấp các Java API – Máy ảo Java – JVM – Các thư viện • Hai giai đoạn của 1 chương trình Java: – Compile-time – Run-time 7/5/2021 13
  14. Java Runtime Environment • Giai đoạn 1: Compile-time – Viết và biên dịch chương trình Begin Java source code (*.java) Biên dịch bằng javac .class file End 7/5/2021 14
  15. Java Runtime Environment -Giai đoạn 2: Run-time .class Nhờ class Loader, Begin file kiểm tra an toàn Net Nạp .class file work Nhờ chức năng Kiểm tra bytecode bytecode verifier, kiểm tra code format và quyền truy xuất Interpreter JIT code Generator Run-time code Hardware End 77/5/2021/5/2021 15
  16. 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. 77/5/2021/5/2021 16
  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ớ) 7/5/20217/5/2021 17
  18. Java Development Kit • 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 Phiên bản hiện tại: 1.8 7/5/2021 18
  19. Java Development Kit • Công cụ chính – Javac.exe : Java Compiler: Dịch source code → Independent Bytecode – Java.exe : Thực thi class file trong JVM – Appletviewer.exe : cho phép chạy applet mà không cần Browser. 7/5/2021 19
  20. Chương trình java đầu tiên • Yêu cầu: Viết chương trình xuất chuỗi “Hello world!” ra màn hình. • Phân tích: - 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, JPadPro, Jbuilder, cho phép vừa viết code vừa thực thi. 7/5/2021 20
  21. Chương trình java đầu tiên 7/5/2021 21
  22. 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) 7/5/2021 22
  23. Trắc nghiệm ➢ Java hỗ trợ những đặc điểm nào sau đây? A) Hướng đối tượng B) Độc lập platform C) Bảo mật D) Tất cả các đặc điểm trên 7/5/2021 23
  24. Trắc nghiệm ➢Source code của java có tên mở rộng là: A).class B).java C).com D)Tất cả đều sai. 7/5/2021 24
  25. Trắc nghiệm ➢ Java source code được trình biên dịch java biên dịch thành: A)Bytecode B)Executable code C)Machine code D)Tất cả đều sai 7/5/2021 25
  26. Trắc nghiệm ➢ Trình nào sẽ chuyển đổi java source code thành file .class A) javac B) java C) appletviewer D) Tất cả đều sai E) Tất cả đều đúng 7/5/2021 26
  27. Trắc nghiệm ➢ Chương trình nào thực thi 1 class file trong JVM A) javac B) java C) appletviewer D) Tất cả đều sai E) Tất cả đều đúng 7/5/2021 27
  28. Trắc nghiệm ➢ Trình nào cho phép ta chạy applet bên ngoài trình duyệt (browser) A)appletviewer B)WWW C)java D)Tất cả đều sai E)Tất cả đều đúng 7/5/2021 28
  29. Trắc nghiệm ➢Chọn phát biểu sai. a)Có thể xây dựng một ứng dụng hướng thủ tục trong Java. b) Không thể xây dựng một ứng dụng hướng thủ tục trong Java 7/5/2021 29
  30. Trắc nghiệm ➢ Cơ chế quản lý bộ nhớ của Java gồm 2 heap, static heap và dynamic heap. Chọn các phát biểu sai. a- Static heap chứa các định nghĩa class + dữ liệu của các đối tượng + code chương trình. b- Static heap chứa các định nghĩa class + code chương trình. c- Dynamic heap chứa các định nghĩa class + dữ liệu của các đối tượng + code chương trình. d- Dynamic heap chứa các định nghĩa class + code chương trình. 7/5/2021 30
  31. Trắc nghiệm ➢ Chọn các phát biểu đúng. a- Dynamic heap trong Java chứa dữ liệu của đối tượng. b- Dynamic heap trong Java chứa thông tin về mối quan hệ giữa đối tượng trong dynamic heap và code trong static heap. c- Dynamic heap trong Java chứa thông tin về mối quan hệ giữa đối tượng và code trong dynamic heap. d- Dynamic heap trong Java chứa thông tin về mối quan hệ giữa đối tượng trong static heap và code trong static heap. 7/5/2021 31
  32. Trắc nghiệm ➢ Chọn các phát biểu sai, Các đối tượng của Java: a) Được cấp phát động nên ta cần chủ động trả bộ nhớ khi không dùng đến đối tượng nữa. b) Được cấp phát động, ta không cần chủ động trả bộ nhớ khi không dùng đến đối tượng nữa. c) Máy ảo không tự động thu hồi bộ nhớ đối với những đối tượng không dùng đến đối tượng nữa. 7/5/2021 32
  33. Trắc nghiệm ➢ Có thể dùng một trình editor chuẩn bất kỳ để viết code java? a- Đúng b- Sai 7/5/2021 33
  34. Trắc nghiệm ➢ Cơ chế nào cho phép 1 ứng dụng Java độc lập với platform (chọn 2)? a- Mỗi platform có một trình Java.exe riêng để thông dịch file.class. b- file.class có cấu trúc độc lập với flatform. c- Mỗi nhà cung cấp hệ điều hành tạo ra các cách riêng để chạy ứng dụng Java 7/5/2021 34
  35. 7/5/2021 35