Bài giảng Lập trình mạng - Chương 2: Giới thiệu sơ lược về ngôn ngữ Java

54 13 0
Bài giảng Lập trình mạng - Chương 2: Giới thiệu sơ lược về ngôn ngữ Java

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

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Bài giảng Lập trình mạng - Chương 2: Giới thiệu sơ lược về ngôn ngữ Java trình bày về sơ lược về ngôn ngữ Java, các khái niệm cơ bản, biên dịch và thực thi dùng JDK, một số kỹ thuật, ngoại lệ, nhập xuất, Thread.

Giới thiệu sơ lược ngôn ngữ Java        Sơ lược ngôn ngữ Java Các khái niệm Biên dịch thực thi dùng JDK Một số kỹ thuật Ngoại lệ Nhập xuất Thread Bộ môn HTMT&TT, Khoa Công Nghệ Thông Tin TT, ĐH Cần Thơ Sơ lược ngôn ngữ Java  Lịch sử phát triển:     1990: Ngôn ngữ Oak tạo James Gosling dự án Green Sun MicroSystems nhằm phát triển phần mềm cho thiết bị dân dụng 1995: Oak đổi tên thành Java 1996: trở thành chuẩn công nghiệp cho Internet Đặc điểm:        Ngơn ngữ hồn tồn hướng đối tượng (Pure OOP) Ngôn ngữ đa nền: "Viết lần , Chạy nhiều nền” Ngôn ngữ đa luồng (multi-threading): xử lý tính tốn song song Ngơn ngữ phân tán (distributed): cho phép đối tượng ứng dụng phân bố thực thi máy tính khác Ngôn ngữ động: cho phép mã lệnh chương trình tải từ máy tính máy người u cầu thực thi chương trình Ngơn ngữ an toàn: hạn chế thao tác nguy hiểm cho máy tính thật Ngơn ngữ đơn giản, dễ học, kiến trúc chương trình đơn giản, sáng Bộ mơn HTMT&TT, Khoa Công Nghệ Thông Tin TT, ĐH Cần Thơ Sơ lược ngôn ngữ Java  Khả năng:  Ngơn ngữ bậc cao  Có thể dùng để tạo loại ứng dụng để giải vấn đề số, xử lý văn bản, tạo trị chơi, nhiều thứ khác  Có thư viện hàm hỗ trợ xây dựng giao diện (GUI) AWT, Swing, …  Có mơi trường lập trình đồ họa JBuilder, NetBeans, Eclipse, …  Có khả truy cập liệu từ xa thông qua cầu nối JDBC  Hỗ trợ lớp hữu ích, tiện lợi lập trình ứng dụng mạng (Socket) truy xuất Web hay nhúng vào trang Web (Applet)  Hỗ trợ lập trình phân tán (Remote Method Invocation) cho phép ứng dụng xử lý phân tán máy tính khác  Lập trình thiết bị cầm tay (J2ME)  Xây dựng ứng dụng mơi trường xí nghiệp (J2EE)  Bộ môn HTMT&TT, Khoa Công Nghệ Thông Tin TT, ĐH Cần Thơ Sơ lược ngôn ngữ Java  Máy ảo Java: java Để thực thi ứng dụng Java hệ điều hành cụ thể, cần phải cài đặt máy ảo tương ứng cho hệ điều hành đó: JRE (Java Runtime Environment) class Bộ môn HTMT&TT, Khoa Công Nghệ Thông Tin TT, ĐH Cần Thơ Sơ lược ngôn ngữ Java Java Platform, Standard Edition (Java SE) Bộ môn HTMT&TT, Khoa Công Nghệ Thông Tin TT, ĐH Cần Thơ Sơ lược ngôn ngữ Java  Các kiểu ứng dụng Java Applet: • Ứng dụng nhúng vào trang web • Mã ứng dụng lấy từ web server Bộ môn HTMT&TT, Khoa Công Nghệ Thông Tin TT, ĐH Cần Thơ Sơ lược ngôn ngữ Java  Các kiểu ứng dụng Java Application: • Ứng dụng thực thi máy ảo Java • Bộ thơng dịch dịch mã bytecode ứng dụng thành mã máy đích Bộ mơn HTMT&TT, Khoa Công Nghệ Thông Tin TT, ĐH Cần Thơ Sơ lược ngôn ngữ Java  Các kiểu ứng dụng Java Mobile: • Ứng dụng thực thi máy ảo Java điện thoại di động thiết bị cầm tay Bộ môn HTMT&TT, Khoa Công Nghệ Thông Tin TT, ĐH Cần Thơ Java Development Kit (JDK)  Bộ phát triển ứng dụng java gồm:  javac: Bộ biên dịch chương trình viết ngôn ngữ java thành mã thực thi(byte code) máy ảo Java  java (máy ảo java – Java Virtual Machine): Thông dịch mã bytecode chương trình kiểu application thành mã thực thi hệ điều hành máy đích  appletviewer: Bộ thơng dịch thực thi applet  javadoc: Tạo tài liệu tự động  jdb: Gở rối  rmic: Tạo stub cho ứng dụng kiểu RMI  rmiregistry: Phục vụ tên (Name Server) hệ thống RMI  … Bộ môn HTMT&TT, Khoa Công Nghệ Thông Tin TT, ĐH Cần Thơ Các kiểu liệu    Kiểu số KÝch th­íc byte short int long float double byte bytes bytes bytes bytes bytes Kiểu ký tự char:  bytes theo mã UNICODE  127 ký tự đầu trùng với mã ASCII Kiểu chuỗi String:    Tªn kiĨu Là lớp ngơn ngữ java Có nhiều phương thức thao tác chuỗi Kiểu Boolean:  nhận giá trị true / false Bộ môn HTMT&TT, Khoa Công Nghệ Thông Tin TT, ĐH Cần Thơ 10 Java – Nhập xuất với Stream  Ví dụ java.io.InputStream • Nhập chuỗi ký tự từ bàn phím • Hiển thị hình chuỗi ký tự • Kết thúc nhập vào chuỗi “EXIT” Bộ môn HTMT&TT, Khoa Công Nghệ Thông Tin TT, ĐH Cần Thơ 40 Java – Nhập xuất với Stream  Ví dụ java.io.InputStream • Đọc nội dung file vào vùng đệm • Hiển thị hình nội dung Bộ mơn HTMT&TT, Khoa Công Nghệ Thông Tin TT, ĐH Cần Thơ 41 Java – Nhập xuất với Stream  Lớp java.io.OutputStream  Các phương thức chính:       public abstract void write(int b) throws IOException: xuất ra1 ký tự có giá trị b public void write(byte b[]) throws IOException: xuất tất byte liệu lưu mảng b[] public void write(byte b[], int offset, int len) throws IOException pubic void flush() throws IOException pubic void close() throws IOException System.out đối tượng thuộc lớp PrintStream (thừa kế từ OutputStream), nối kết với hình   Cho phép xuất hình nhiều dạng liệu khác Có thể sử dụng phương thức OutputStream Bộ môn HTMT&TT, Khoa Công Nghệ Thông Tin TT, ĐH Cần Thơ 42 Java – Nhập xuất với Stream  Ví dụ java.io.OutputStream Ghi file với dạng liệu khác Nội dung file kết Bộ môn HTMT&TT, Khoa Công Nghệ Thông Tin TT, ĐH Cần Thơ 43 Java – Nhập xuất với Stream  Nhập từ bàn phím chuỗi  Cách 1: Sử dụng lớp InputStream   Nhập vào mảng byte[] Chuyển đổi từ mảng byte[] thành chuỗi byte b[] = new byte[100]; // Tạo vùng đệm cho mảng, dự kiến không 100 ký tự int n = System.in.read(b); // Nhập liệu từ bàn phím lưu vào mảng b[] String str = new String(b, 0, n-2); // Chuyển đổi từ mảng b[] sang chuỗi  Cách 2: Sử dụng lớp thừa kế BufferedReader   Tạo đối tượng BufferedReader từ System.in Sử dụng hàm readLine() để nhập chuỗi (có xuống hàng) BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str = br.readLine(); // Kết nhập từ bàn phím lưu chuỗi str Bộ môn HTMT&TT, Khoa Công Nghệ Thông Tin TT, ĐH Cần Thơ 44 Java – Nhập xuất với Stream  Xuất chuỗi  Cách 1: Sử dụng lớp OutputStream   Chuyển đổi từ chuỗi cần ghi vào mảng byte[] Ghi mảng byte[] stream xuất FileOutputStream f2 = new FileOutputStream("C:/Test2.txt"); String str = "Day la chuoi thu can ghi vao file \r\n"; byte b[] = str.getBytes(); // Doi chuoi mang byte[] f2.write(b); f2.close(); Bộ môn HTMT&TT, Khoa Công Nghệ Thông Tin TT, ĐH Cần Thơ 45 Java – Nhập xuất với Stream  Xuất chuỗi  Cách 2: Sử dụng lớp PrintWriter   Dùng hàm print, println, … để xuất nhiều dạng liệu Gọi thêm lệnh flush() để đẩy liệu từ vùng đệm ngồi Bộ mơn HTMT&TT, Khoa Cơng Nghệ Thơng Tin TT, ĐH Cần Thơ 46 Luồng (Thread)  Khái niệm: Trong hệ điều hành đại Đơn vị sử dụng CPU luồng (thread) Trong hệ điều hành cổ điển Đơn vị sử dụng CPU trình (process) Mỗi q trình có: • Thanh ghi đếm chương trình • Thanh ghi trạng thái • Ngăn xếp • Không gian địa riêng Luồng cung cấp chế tính tốn xử lý song song ứng dụng Mỗi luồng: • Có riêng đếm chương trình, trạng thái ghi ngăn xếp • Chia sẻ không gian địa => Dễ dàng chia sẻ file, hiệu báo Bộ môn HTMT&TT, Khoa Công Nghệ Thông Tin TT, ĐH Cần Thơ 47 Luồng (Thread)  Các trạng thái   Tương tự trạng thái trình: chạy (running), sẵn sàng (ready), nghẽn (blocked) kết thúc (Dead) Mỗi hệ điều hành có cách cài đặt luồng khác => có sơ đồ chuyển trạng thái khác sơ đồ chuyển trạng thái Thread sử dụng hệ điều hành Sun Solaris Bộ môn HTMT&TT, Khoa Công Nghệ Thông Tin TT, ĐH Cần Thơ 48 Luồng (Thread)  Ví dụ: so sánh thời gian chạy giải thuật xếp Bộ môn HTMT&TT, Khoa Công Nghệ Thông Tin TT, ĐH Cần Thơ 49 Luồng (Thread)  Luồng Java    Luồng đối tượng thuộc lớp java.lang.Thread Một chương trình java cài đặt luồng cách tạo lớp (extends) lớp java.lang.Thread Thread có phương thức để điều khiển:     public native synchronized void start() public void run() : công việc thực luồng public final void stop() Luồng kết thúc khi:   Tất công việc phương thức run() thực Hoặc phương thức stop() kích hoạt Bộ mơn HTMT&TT, Khoa Cơng Nghệ Thơng Tin TT, ĐH Cần Thơ 50 Luồng (Thread)  Ví dụ Tạo luồng thực thi song song việc đếm số từ đến 50 Bộ môn HTMT&TT, Khoa Công Nghệ Thông Tin TT, ĐH Cần Thơ 51 Luồng (Thread)  Luồng Java:  Các phương thức khác lớp java.lang.Thread      public static void sleep(long m) throws InterruptedException: Blocked khoảng m ms public final void suspend(): chuyển từ Ready -> Blocked public final void resume(): chuyển từ Blocked -> Ready public final void yield(): chuyển từ Running -> Ready Các phương thức thừa kế từ java.lang.Object    public void wait(long m) throws InterruptedException: dừng Thread m ms xác định public final void notify(): đánh thức Thread hàng đợi public final void notifyAll(): đánh thức tất Thread hàng đợi Bộ môn HTMT&TT, Khoa Công Nghệ Thông Tin TT, ĐH Cần Thơ 52 Luồng (Thread)  Độ ưu tiên luồng   void setPriority( int x): Đặt độ ưu tiên luồng x int getPriority(): Trả giá trị ưu tiên luồng Thread.MAX_PRIORITY = 10 Thread.NORM_PRIORITY = Thread.MIN_PRIORITY = Bộ môn HTMT&TT, Khoa Công Nghệ Thông Tin TT, ĐH Cần Thơ 53 Luồng (Thread)  Đồng hóa luồng  Trong thời điểm, có Thread thực thi phương thức có khai báo thuộc tính synchronized Bộ mơn HTMT&TT, Khoa Cơng Nghệ Thơng Tin TT, ĐH Cần Thơ 54 ... TT, ĐH Cần Thơ Sơ lược ngôn ngữ Java Java Platform, Standard Edition (Java SE) Bộ môn HTMT&TT, Khoa Công Nghệ Thông Tin TT, ĐH Cần Thơ Sơ lược ngôn ngữ Java  Các kiểu ứng dụng Java Applet: •... dụng java gồm:  javac: Bộ biên dịch chương trình viết ngơn ngữ java thành mã thực thi(byte code) máy ảo Java  java (máy ảo java – Java Virtual Machine): Thông dịch mã bytecode chương trình. .. Ngơn ngữ đơn giản, dễ học, kiến trúc chương trình đơn giản, sáng Bộ môn HTMT&TT, Khoa Công Nghệ Thông Tin TT, ĐH Cần Thơ Sơ lược ngôn ngữ Java  Khả năng:  Ngôn ngữ bậc cao  Có thể dùng để tạo

Ngày đăng: 08/05/2021, 15:34

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan