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

Bài giảng Cấu trúc dữ liệu: Chương 1 - Nguyễn Xuân Vinh

Chia sẻ: Xaydung K23 | Ngày: | Loại File: PPTX | Số trang:23

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

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.

Chủ đề:
Lưu

Nội dung Text: Bài giảng Cấu trúc dữ liệu: Chương 1 - Nguyễn Xuân Vinh

  1. 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
  2. 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. 3 /XX 6/12/14 MÔN: CẤU TRÚC DỮ LIỆU GV: NGUYỄN XUÂN VINH 2. Data Types
  4. 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. 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
  6. 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
  7. 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
  8. 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
  9. 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
  10. 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
  11. 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
  12. 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. 13 /XX 6/12/14 MÔN: CẤU TRÚC DỮ LIỆU GV: NGUYỄN XUÂN VINH 6. JVM Memory
  14. 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
  15. 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. 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)
  17. 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
  18. 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
  19. 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. 20 /XX 6/12/14 MÔN: CẤU TRÚC DỮ LIỆU GV: NGUYỄN XUÂN VINH 7. Mutable vs Immutable
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

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