Bài giảng Cấu trúc dữ liệu: Chương 1 - Nguyễn Xuân Vinh
lượt xem 5
download
Bài giảng Cấu trúc dữ liệu - Chương 1: Java basic trình bày về basic language elements, data types, literal, variables, constant, JVM memory, why string is immutable. Đây là tài liệu tham khảo dùng cho sinh viên chuyên ngành Công nghệ thông tin.
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Bài giảng Cấu trúc dữ liệu: Chương 1 - Nguyễn Xuân Vinh
- GV: NGUYỄN XUÂN VINH CẤU TRÚC DỮ LIỆU DATA STRUCTURES [214441] JAVA BASIC MÔN: CẤU TRÚC DỮ LIỆU Nguyễn Xuân Vinh 6/12/14 nguyenxuanvinh@hcmuaf.edu. vn /XX 1
- GV: NGUYỄN XUÂN VINH 1. Basic Language Elements • Identifiers – A name in a program is called an identifier – An identifier in java is composed of a sequence of characters (include: letter, digits or connecting symbols ($, _). The first character in an identifier can’t be a digit. MÔN: CẤU TRÚC DỮ LIỆU – – Identifiers in java are case sensitive. • Keywords – Key words are reserved identifiers. – In java, all keywords are in lower case. • Literals A literal denotes a constant value of a particular data type 6/12/14 – – The value a literal represents remains unchanged in the program. /XX 2
- 3 /XX 6/12/14 MÔN: CẤU TRÚC DỮ LIỆU GV: NGUYỄN XUÂN VINH 2. Data Types
- GV: NGUYỄN XUÂN VINH 2.1 Primitive Data Types Types Length Values Default value byte 8-bit -28 28 – 1 0 short 16-bit -216 216 – 1 0 int 32-bit -231 231 – 1 0 long 64-bit -263 263 – 1 0 MÔN: CẤU TRÚC DỮ LIỆU float 32-bit IEEE 754 floating +/-3.40282347E+38 +/- 0.0f point 1.40239846E-45 double 64-bit IEEE 754 floating +/-1.79769313486231570E 0.0d point +/-4.9065645841246544E- 324 boolean 1-bit true, false false char 16-bit Unicode \u0000 (0) \uffff (65.535) 6/12/14 /XX 4
- 5 /XX 6/12/14 MÔN: CẤU TRÚC DỮ LIỆU GV: NGUYỄN XUÂN VINH 2.1 Primitive Data Types
- GV: NGUYỄN XUÂN VINH 2.2 Reference Data Types • Reference to Tham chiếu tới một giá trị hay là tập hợp các giá trị mà biến khai báo. MÔN: CẤU TRÚC DỮ LIỆU • Các kiểu dữ liệu dẫn xuất: 6/12/14 /XX 6
- GV: NGUYỄN XUÂN VINH 3. Literal • The new keyword isn't used when initializing a variable of a primitive type. • A literal is the source code representation of a fixed value. • Literals are represented directly in your code without requiring computation MÔN: CẤU TRÚC DỮ LIỆU boolean result = true; char capitalC = 'C'; byte b = 100; short s = 10000; int i = 100000; 6/12/14 /XX 7
- GV: NGUYỄN XUÂN VINH 4. Variables • Parameters » The variables that are listed as part of a method declaration. Each parameter must have a unique name and a defined data type. public void method(int a, double b, boolean c) MÔN: CẤU TRÚC DỮ LIỆU { ... } 6/12/14 /XX 8
- GV: NGUYỄN XUÂN VINH 4. Variables q Instance variables » Every object of the class will have its own copies of these variables, which are local to object » The values of these variables at any given time constitute the state of the object » Instance variables exist as long as object they belong to exist MÔN: CẤU TRÚC DỮ LIỆU q Static variables » Belong only to the class, but not created for only object of the class » All objects of the class share the same copy of this variable » Class variables exist as long as class exist q Local Variables Variables declared in methods including parameters or blocks are 6/12/14 » called Local variables /XX » After execution of the method or block completes local variables are no longer accessible 9
- GV: NGUYỄN XUÂN VINH Instance variables and local variables • Instance variables are declared inside a class but not inside a method public class Student{ int num; // num is instance variable public void method(){} } MÔN: CẤU TRÚC DỮ LIỆU • Local variables are declared inside a method including method arguments. public class Student { public void sum(int a) { int x = a + 3; // a , x are local variables } 6/12/14 } /XX 10
- GV: NGUYỄN XUÂN VINH 5. Constant • Từ khóa final chỉ dẫn đến 1 biến không thể thay đổi giá trị. • Các hàm và lớp cũng có thể được khai báo final – Hàm final không thể viết chồng – Lớp final không thể là lớp con MÔN: CẤU TRÚC DỮ LIỆU static final int VAR = 1; 6/12/14 /XX 11
- GV: NGUYỄN XUÂN VINH 6. JVM Memory The JVM divided the memory into following sections. 1. Heap: contains Objects (may also contain reference variables). 2. Stack: contains methods, local variables and reference variables. Code: contains your bytecode MÔN: CẤU TRÚC DỮ LIỆU 3. 4. Static: contains Static data/methods. This division of memory is required for its effective management. 6/12/14 /XX 12
- 13 /XX 6/12/14 MÔN: CẤU TRÚC DỮ LIỆU GV: NGUYỄN XUÂN VINH 6. JVM Memory
- GV: NGUYỄN XUÂN VINH 6. JVM Memory Example 1 class A { B child = new B(); int e; // more code } class B { MÔN: CẤU TRÚC DỮ LIỆU int c; int d; // more code } public static void main(String args[]) { A parent = new A(); // more code } 6/12/14 /XX 14
- GV: NGUYỄN XUÂN VINH 6. JVM Memory: Example 2 Heap public void m1() { int x = 20; Account m2(10); [int] p=0 } 20 q=0 MÔN: CẤU TRÚC DỮ LIỆU public void m2(int b) { boolean c; Stack //more code m3(); m3 ref } 6/12/14 m2 b c m1 x /XX public void m3() { 15 Account ref = new
- 16 /XX 6/12/14 MÔN: CẤU TRÚC DỮ LIỆU GV: NGUYỄN XUÂN VINH 6. JVM Memory: Example 3 (Array)
- GV: NGUYỄN XUÂN VINH 6. JVM Memory: (Exp 4) Primitive vs Reference Types (byte,short,int,long,float,double,Boolean,chat) • Primitive Data int a = 1; int b = 1; int[] arrayInt = new int[2]; MÔN: CẤU TRÚC DỮ LIỆU arrayInt[0] = a; arrayInt[1] = b; • Reference Data Type: Student (int sid, String name) Student s1 = new Student(1, “A”); 6/12/14 Student s2 = new Student(2, “B”); Student s3 = new Student(1, “A”); /XX Student[] arrayStudent = new Student[3]; 17
- GV: NGUYỄN XUÂN VINH 6. JVM Memory (Exp 5) - String Pool String string1 = "abcd"; String string2 = "abcd"; MÔN: CẤU TRÚC DỮ LIỆU String pool (String intern pool) is a special storage area in Java 6/12/14 heap. When a string is created and if the string already exists in the pool, the reference of the existing string will be returned, instead of /XX creating a new object and returning its reference. 18
- GV: NGUYỄN XUÂN VINH 6. JVM Memory: (Exp 7) String Literal vs. String Object String s1 = "Hello"; // String literal String s2 = "Hello"; // String literal String s3 = s1; // same reference String s4 = new String("Hello"); //String Object String s5 = new String("Hello"); // String object MÔN: CẤU TRÚC DỮ LIỆU 6/12/14 /XX 19
- 20 /XX 6/12/14 MÔN: CẤU TRÚC DỮ LIỆU GV: NGUYỄN XUÂN VINH 7. Mutable vs Immutable
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Bài giảng Cấu trúc dữ liệu - Bài 1:Tổng quan về cấu trúc dữ liệu và giải thuật
47 p | 175 | 17
-
Bài giảng Cấu trúc dữ liệu 1: Chương 1 - Lương Trần Hy Hiến
7 p | 162 | 9
-
Bài giảng Cấu trúc dữ liệu và giải thuật trong C++ - Bài 8: Cấu trúc dữ liệu ngăn xếp
28 p | 77 | 9
-
Bài giảng Cấu trúc dữ liệu giải thuật: Các kiểu dữ liệu trừu tượng cơ bản - Cấu trúc dữ liệu tuyến tính
92 p | 116 | 9
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Cấu trúc dữ liệu cây đỏ đen - Bùi Tiến Lên
25 p | 81 | 8
-
Bài giảng Cấu trúc dữ liệu và giải thuật – Bài 17: Cấu trúc dữ liệu dạng cây
21 p | 77 | 8
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Các cấu trúc dữ liệu
193 p | 59 | 7
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 1 - Trần Minh Thái (2016)
62 p | 94 | 6
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 1 - Trần Minh Thái (Trường Đại học Hồng Bàng )
62 p | 159 | 6
-
Bài giảng Cấu trúc dữ liệu - Chương 3: Cấu trúc cây
65 p | 58 | 6
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Cấu trúc dữ liệu cây AA - Bùi Tiến Lên
30 p | 35 | 6
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 1 – Trần Minh Thái (2017)
67 p | 106 | 4
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Cấu trúc dữ liệu cây - Bùi Tiến Lên
68 p | 40 | 4
-
Bài giảng Cấu trúc dữ liệu: Chương 1 - ThS. Thiều Quang Trung (2018)
44 p | 43 | 4
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Cấu trúc dữ liệu cây AVL - Bùi Tiến Lên
38 p | 47 | 4
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 5 - Ngô Quang Thạch
24 p | 58 | 3
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 2 - Th.S Thiều Quang Trung
41 p | 68 | 3
-
Bài giảng Cấu trúc dữ liệu giải thuật: Cấu trúc dữ liệu
17 p | 50 | 2
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