Kiểu dữ liệu trong Java với ví dụ cụ thể

Hiện nay, chúng ta có 2 loại ngôn ngữ lập trình chính: 

  • Statically 
  • Dynamically

Đầu tiên Statically là ngôn ngữ mà mỗi một biến hay một biểu thức đều được xác định kiểu dữ liệu tại thời điểm biên dịch. Khi khai báo một biến chúng ta cần chỉ rõ kiểu dữ liệu cho nó và không được thay đổi theo thời gian chạy của chương trình. Java, C/C++ là một ví dụ cho Statically.

Còn lại là Dynamically typed, ngược lại với Statically các biến và biểu thức có thể nhận và trả về các kiểu dữ liệu khác nhau theo thời gian. Ví dụ Ruby, Python.

Khái niệm

Data-types-in-Java

Java là một Statically language, vì vậy các kiểu dữ liệu trong Java (như số nguyên, số thực, ký tự, chuỗi etc) là một trong những thành cốt lỗi của Java, các hằng số, biến được sử dụng trong chương trình phải được chỉ định rõ kiểu dữ liệu.

Trong java có 2 kiểu dữ liệu chính:

  • Primitive
  • Non-primitive

Kiểu dữ liệu Primitive

Trong Java có 8 dữ liệu nguyên thuỷ bao gồm  

  • byte: kiểu dữ liệu byte có kích thước 8-bit. Khoảng giá trị [-128, 127], nó sẽ hữu ích khi bạn cần lưu một mảng có kích thước lớn, mà các giá trị trong mảng có khoảng giá trị nằm trong [-128, 127].
  • short: kiểu dữ liệu short có kích thước 16-bit. Khoảng giá trị [-32768, 32767], Như kiểu byte, nó cũng sẽ hữu ích khi bạn cần lưu mảng có kích thước lớn, mà các giá trị trong mảng nằm trong khoảng [-32768, 32767].
  • int: kiểu dữ kiệu int có kích thước 32-bit. Khoảng giá trị trong [-231, 231-1]. Từ java 8 trở về sau, bạn có thể sử dụng unsigned int để biểu diễn các số nguyên khoảng [0,232-1].
  • long: kiểu dữ kiệu long có kích thước 64-bit. Khoảng giá trị trong [-263, 263-1]. Từ java 8 trở về sau, bạn có thể sử dụng unsigned int để biểu diễn các số nguyên khoảng [0, 263-1].
  • float: float là kiểu dữ liệu single-precision 32-bit. Khoảng giá trị [-3.4028235 x 1038 , 3.4028235 x 1038]
  • double: double là kiểu dữ liệu double-precision 64-bit. Khoảng giá trị [-1.7976931348623157  x 10308 ,1.7976931348623157  x 10308]
  • boolean: boolean là kiểu dữ liệu có kích thước 1-bit, có 2 giá trị: true hoặc false.
  • char: char kiểu dữ liệu single 16-bit Unicode character, có khoảng giá trị [\u0000, \uffff].

Ví dụ: Khai báo các biến với từng kiểu giá trị của xuất ra màn hình console.

public class Main {

    public static void main(String[] args) {

        byte byte_value = 10;
        System.out.println("Gia tri cua byte: " + byte_value);

        short short_value = 1000;
        System.out.println("Gia tri cua short: " + short_value);

        int int_value = 13;
        System.out.println("Gia tri cua int: " + int_value);

        long long_value = 2000;
        System.out.println("Gia tri cua long: " + long_value);

        float float_value = 12.5f;
        System.out.println("Gia tri cua float:" + float_value);

        double double_value = 12.4345;
        System.out.println("Gia tri cua double: " + double_value);

        boolean boolean_value = true;
        System.out.println("Gia tri cua boolean: " + boolean_value);

        char char_value = 'r';
        System.out.println("Gia tri cua char: " + char_value);
        
    }
}

Output: 

Gia tri cua byte: 10
Gia tri cua short: 1000
Gia tri cua int: 13
Gia tri cua long: 2000
Gia tri cua float:12.5
Gia tri cua double: 12.4345
Gia tri cua boolean: true
Gia tri cua char: r

Giá trị mặc định

Đối các kiểu dữ liệu nguyên thuỷ chúng sẽ luôn có một giá trị khởi tạo cho trước trong trường hợp chúng ta khai báo mà không gán giá trị đầu cho chúng.

Bảng giá trị mặc định của các kiểu dữ liệu:

byte 0
short 0
int 0
long 0L
float o.of
double o.od
char ‘\u0000’
boolean false

Ví dụ: Khi khai báo một mảng với các dữ liệu trên, nếu chưa gán giá trị cho các phần tử của mảng mặc định các phần tử sẽ có giá trị mặc định của kiểu dữ liệu tương ứng.

<span style="font-size: 12pt;">public class Main {

    public static void main(String[] args) {
        int[] array_int = new int[10];
        boolean[] array_boolean = new boolean[10];
        // Print array Integer
        for (int i = 0; i < 10; i++) {
            System.out.print(array_int[i] + " ");
        }
        System.out.print("\n");
        // Print array boolean
        for (int i = 0; i < 10; i++) {
            System.out.print(array_boolean[i] + " ");
        }
    }
}
</span>

Output: 
0 0 0 0 0 0 0 0 0 0
false false false false false false false false false false

Kiểu dữ liệu Non-Primitive

Các kiểu dữ liệu Non-Primitive: 

  • Class: là một bản vẽ thiết kế hoặc prototype để tạo ra các object gồm các thuộc tính, method etc. Một class bao gồm các thành phần chính sau:
    • Modifiers: Quy định phạm vi truy cập của class. 
    • Name: Tên class.
    • Supper class: Class cha mà nó kế thừa.
    • Interface: Interface mà class implement, bắt buộc triển khai các abstract method được định nghĩa bên trong interface.
    • Body: Thân class bao gồm các biến, method etc.
  • Object: được tạo ra từ một class nó là một thực thể thực ánh xạ cho một bản thiết kế của của chúng. Ví dụ người việt nam thì có đứa cao, đứa lùn, da trắng, da đỏ etc mỗi người việt nam là một object và chúng được tạo ra từ class người việt nam =))). Các thành phần chính trong object:
    • State: Trạng thái của object ví dụ như lùn, cao, ốm, da vàng etc.
    • Behavior: Các hành động của object có thể làm được, ví dụ object person sẽ có behavior như đi, đứng, nằm, hát etc.
    • Indentify: Định danh riêng để phân biệt các object cùng loại khác. 
  • String: String là một chuỗi ký tự char dùng để lưu đoạn văn bản trong java.
  • Array: Một nhóm các giá trị có cùng kiểu dữ liệu. Các lưu ý trong array
    • Tất cả các array trong java đều được cấp phát vùng nhớ cách tự động.
    • Thứ tự các phần tử trong array bắt đầu từ 0 đến size – 1.
    • Kích thước của array phải được chỉ định tại thời điểm khởi tạo array với giá trị số int, không được sử dụng long hoặc short etc.
    •  
  • Interface: Giống như class chúng là một bản thiết kế cho các đối tượng ở mức chức năng. Các object không đựợc tạo ra từ interface mà từ các class implement chúng. Các object này sẽ triển khai các method mà interface định nghĩa.

Trong khuôn khổ loại bài java căn bản chúng ta chỉ dừng lại ở mức biết thôi nhé. Chúng ta sẽ đi sâu hơn phần này vào các loạt bài sau.

Nguồn tham khảo

https://www.geeksforgeeks.org/data-types-in-java/

0 0 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x