1. Các kiểu dữ liệu trong Java

Trong Java, dữ liệu được chia thành 2 loại lớn:

  • Kiểu dữ liệu nguyên thủy – Primitive Data Types : Gồm byte , short , int , long , float , double , boolean , char
  • Kiểu dữ liệu đối tượng – Object Types : Gồm kiểu dữ liệu không nguyên thủy – chẳng hạn như Chuỗi , Mảng và Lớp ,…

2. Kiểu dữ liệu nguyên thủy trong Java

Java cung cấp sẵn cho chúng ta 8 kiểu dữ liệu cơ bản và các kiểu dữ liệu này sẽ chứa các giá trị tương ứng và kích thước như sau

Kiểu dữ liệu Giá trị Giá trị mặc định Kích thước
byte 0 -128 → 127 Số nguyên 8 bít
short 0 -32768 → 32767 Số nguyên 16 bit
int 0 -2147483648 → 2147483647 Số nguyên 32 bit
long 0L -2^63 → 2^63 – 1 Số nguyên 64 bit
float 0.0f 2^-149 → (2-2^(-23))*2^127 Số thực 32 bit
double 0.0d 2^(-1074) → (2-2^(-52))*2^1023 Số thực 64 bit
boolean ‘\u0000’ (hay kí tự số ‘0’) TRUE / FALSE Kiểu luận lý
char false 0 → 65,535 Kiểu kí tự Unicode 16 bit

Trong trường hợp mà ta khai báo biến ở một kiểu dữ liệu A mà lại gán nó với giá trị của kiểu dữ liệu B thì Java sẽ báo lỗi. Ví dụ:

class Main{
    private int number = "lập trình từ đầu";
}

Tương ứng với 8 kiễu dữ liệu trên thì Java cũng đã cung cấp cho chúng ta 8 class tương ứng với từng kiểu dữ liệu để chúng ta có thể xử lí với dữ liệu thuộc kiểu dữ liệu đó. Nó được gọi là Wrapper class. Những Wrapper class đó là:

  • byte : Byte
  • short : Short
  • int : Integer
  • long : Long
  • float : Float
  • double : Double
  • boolean : Boolean
  • char : Character

Để biểu diễn một số trong Java, chúng ta có rất nhiều kiểu dữ liệu khác nhau như int, short hay long chẳng hạn. Tuy nhiên phạm vi cũng như bộ nhớ của chúng là hoàn toàn khác nhau. Trong một chương trình đơn giản, sẽ không có vấn để gì nếu chúng ta lựa chọn kiểu dữ liệu có kích thước lớn nhất như kiểu long chẳng hạn. Vì như thế chúng ta sẽ không phải lo lắng việc dữ liệu đem gán vào biến có lớn hơn kích thước của biến đó hay không.

Tuy nhiên, với các chương trình lớn hơn, việc sử dụng các kiểu dữ liệu lớn cho tất cả biến mà không xem xét kích thước lớn nhất mà biến đó cần, sẽ khiến cho chương trình sử dụng dư thừa bộ nhớ, gây lãng phí tài nguyên máy tính. Vì thế, chúng ta cần phải biết phạm vi giá trị, kích thước của biến khi sử dụng, để có thể chỉ định kiểu dữ liệu cho phù hợp nhất.

3. Kiểu dữ liệu đối tượng trong Java

Kiểu đối tượng trong Java bao gồm mảng, class và kiểu chuỗi… Tất cả các kiểu dữ liệu không phải kiểu nguyên thủy đều là kiểu dữ liệu đối tượng trong Java.

Kiểu dữ liệu đối tượng được dùng để lưu trữ các đối tượng xử lý trong chương trình, ví dụ như là mảng, chuỗi String, hoặc là thực thể tạo ra từ class chẳng hạn. Hãy lưu ý rằng biến thuộc các kiểu dữ liệu đối tượng sẽ không lưu giữ trực tiếp giá trị của đối tượng, mà là địa chỉ của đối tượng đó trong bộ nhớ máy tính.

Ta có bảng một số kiểu dữ liệu đối tượng sau:

Kiểu dữ liệu Mô tả
Array Một mảng của các dữ liệu cùng kiểu.
Class Dữ liệu kiểu lớp đối tượng do người dùng định nghĩa. Chứa tập các thuộc tính và phương thức..
Interface Dữ liệu kiểu lớp giao tiếp do người dùng định nghĩa. Chứa các phương thức của giao tiếp.

Ví dụ: Tạo một đối tượng có tên “myObj” và in giá trị của x:

class Main {
  int x = 5;

  public static void main(String[] args) {
    Main myObj = new Main();
    System.out.println(myObj.x);
  }
}