Các Kiểu Dữ Liệu Trong Java

Bất kể một từ ngữ lập trình nào cũng có một tập các kiểu dữ liệu, kiểu dữ liệu là căn bản, & nó khá giống nhau với toàn bộ các từ ngữ.

Các vận dụng luôn giải quyết dữ liệu ở đầu vào & xuất dữ liệu kết quả ở đầu ra. Đầu vào, đầu ra & kết quả của các công cuộc tính toán đều liên quan đến dữ liệu. Trong môi trường tính toán, dữ liệu được phân lớp theo các tiêu chuẩn khác nhau lệ thuộc vào bản chất của nó.

Ở mỗi tiêu chuẩn, dữ liệu có một thuộc tính xác nhận & có một kiểu trổ tài tách biệt. Java phân phối một vài kiểu dữ liệu, chúng được phụ trợ trên toàn bộ các nền. Chẳng hạn, dữ liệu loại int (integer) của Java được trổ tài bằng 4 bytes trong bộ nhớ lưu trữ của toàn bộ các loại máy bất luận ở đâu chạy chương trình Java. Do đó các chương trình Java không cần phải biến đổi khi chạy trên các nền khác nhau

Java có 2 loại kiểu dữ liệu:

  • Các kiểu dữ liệu nguyên thủy (Primitive Data Types)
  • Các kiểu dữ liệu tham chiếu (Reference Types)

Ι. Kiểu Dữ Liệu Date Trong Java

Java phân phối lớp Date có sẵn trong java.util package, lớp này tóm tắt ngày tháng & thời gian giờ đây.

Lớp Date phụ trợ 2 constructor. Constructor trước nhất khởi tạo đối tượng với ngày & thời gian giờ đây.

Date( )

Constructor sau chấp thuận 1 tham số bằng số mili giây đã trôi qua từ nửa đêm ngày 1/1/1970.

Date(long millisec)

1 khi các bạn có 1 đối tượng Date có sẵn, các bạn có thể gọi bất kỳ công thức phụ trợ nào để thao tác với ngày tháng này:

STT
Công thức & Diễn tả

1
boolean after(Date date)Trả về true nếu gọi đối tượng Date chứa 1 ngày mà chậm hơn ngày đã xác nhận, nếu như không là false.

2
boolean before(Date date)Trả về true nếu gọi đối tượng Date chứa 1 ngày mà sớm hơn ngày đã xác nhận, nếu như không là false.

3
Object clone( )Copy đối tượng Date đang gọi

4
int compareTo(Date date)So sánh giá trị đối tượng đang gọi với giá trị đó của date. Trả về 0 nếu các giá trị đó là thăng bằng. Trả về 1 giá trị âm nếu đối tượng đang gọi là sớm hơn date. Trả về 1 giá trị dương nếu đối tượng đang gọi chậm hơn date.

5
int compareTo(Object obj)Tiến hành cũng giống như compareTo(Date) nếu đối tượng là của lớp Date. Nếu như không thì, nó cho một ClassCastException.

6
boolean equals(Object date)Trả về true nếu đối tượng Date đang gọi chứa thời gian & ngày tháng giống như date đã cho, nếu như không là false.

7
long getTime( )Trả về số mili giây đã trôi qua từ 1/1/1970

8
int hashCode( )Trả về 1 mã hóa băm (hash code) cho đối tượng đang gọi

9
void setTime(long time)Setup ngày tháng & thời gian như time đã cho, mà trình diễn một time đã trôi qua (giá trị mili giây) từ nửa đêm 1/1/1970

10
String toString( )Thay đổi đối tượng Date đang gọi thành 1 chuỗi & trả về kết quả

II. Kiểu Dữ Liệu Double Trong Java

Kiểu dữ liệu Double là 1 kiểu thập phân 64-bit có độ chuẩn xác kép.

Phạm vi giá trị của nó là không hạn chế. Kiểu dữ liệu Double thường được dùng cho các giá trị thập phân giống như float.

Kiểu dữ liệu Double cũng không khi nào nên được dùng cho các giá trị chuẩn xác, chẳng hạn như tiền tệ. Giá trị mặc định của nó là 0,0d.

Chẳng hạn:

double d1 = 12.3

III. Kiểu Dữ Liệu String Trong Java

Java phụ trợ các thao tác với chuỗi thông qua lớp String. Lớp này nằm trong gói java.lang.

Trong công cuộc sử dụng, import gói java.lang theo cú pháp sau:

import java.lang.String;

Hoặc:

import java.lang.*;

Lớp String phụ trợ hơn 50 hàm để thao tác với kiểu chuỗi. Tính năng của một số hàm thông thường:

STT
Nguyên mẫu hàm
Tính năng

1
public char charAt(int s)
Trả về ký tự có chỉ số là ι trong chuỗi cần tìm.

2
public String concat(String s2)
Trả về chuỗi đã được nối thêm vào chuỗi s2, s2 sẽ được nối vào sau chuỗi gọi hàm.

3
public boolean equals(String s2)
Trả về true nếu giá trị của chuỗi s2 bằng giá trị chuỗi đang xét, trả về false nếu trái lại. Phân biệt chữ hoa & chữ thường trong lúc so sánh.

4
public boolean equalsIgnoreCase(String s2)
Trả về true nếu giá trị của chuỗi s2 bằng giá trị chuỗi đang xét, trả về false nếu trái lại. Không phân biệt chữ hoa & chữ thường trong lúc so sánh.

5
public int length()
Trả về độ dài của chuỗi đang xét.

6
public String replace(char oldChar, char newChar)
Thay thế ký tự oldChar bằng ký tự newChar.

7
public String substring(int begin)
public String substring(int begin)
Lấy ra chuỗi con từ địa điểm begin đến hết chuỗi, hoặc từ địa điểm begin đến địa điểm end.

8
public int indexOf(String str)
Kiểm soát sự tồn tại của chuỗi str trong chuỗi đang xét. Nếu có, trả về vị trí thứ nhất của sự hiện ra, nếu như không trả về -1.

9
public String toUpperCase()
Chuyển toàn bộ ký tự trong chuỗi đang xét thành ký tự hoa.

10
public String toLowerCase()
Chuyển toàn bộ ký tự trong chuỗi đang xét thành ký tự thường.

11
public String toString()
Trả về giá trị của chuỗi đang xét. Trong 1 vài trường hợp, bạn có thể override lại để sử dụng đúng mục đích.

12
public String trim()
Trả về chuỗi đã được loại bỏ khoảng trắng.

Xem Thêm  Mỗi ngôn ngữ đánh dấu được sử dụng để làm gì - ngôn ngữ đánh dấu tiêu chuẩn để tạo các trang web

Dưới đây là một chẳng hạn về việc sử dụng một số hàm thông thường trong Java. Khi sử dụng, cảnh báo đến kiểu trả về & đối số truyền vào hàm để có kết quả chuẩn xác.

package TestString;

import java.lang.*;

public class main {
   
   public static void main(String[] args) {
      
      String s = "STDIO";
      
      // Access α single character at specific index
      System.out.println("1. s[3] = " + s.charAt(3));
      
      // Concatenate 2 strings
      System.out.println("2. Concatenate 2 strings: ");
      s = s.concat("-LAPTRINHJAVA");
      System.out.println(s);
      
      // Compare 2 strings
      if(s.equals("Im Michael"))
         System.out.println("3. Equal strings!");
      else
         System.out.println("3. Not equal strings!");
      
      // Get length of string
      System.out.println("4. Length of s: " + s.length());
      
      // Replace characters from string
      System.out.println("5. Replacing - by _ from s: " + s.replace('-', '_')); 
   }
}

IV. Kiểu Dữ Liệu Object Trong Java

Mặc định lớp Object là lớp cha của toàn bộ các lớp trong java. Nói cách khác nó là 1 lớp cáo nhất trong java.

Sử dụng lớp Object là hữu hiệu nếu bạn mong muốn tham chiếu bất kỳ đối tượng nào mà bạn chưa biết kiểu dữ liệu của đối tượng đó. Cảnh báo rằng biến tham chiếu của lớp cha có thể tham chiếu đến đối tượng của lớp con được gọi là upcasting.

Chẳng hạn: giả sử công thức getObject() trả về một đối tượng nhưng nó có thể là bất kỳ kiểu nào như Employee, Student… các bạn có thể sử dụng biến tham chiếu của lớp Object để tham chiếu tới đối tượng đó.

Object obj = getObject();//Chung ta khong biet doi tuong nao se duoc tra ve tu phuong thuc nay

Lớp Object phân phối một vài cách giải quyết chung cho toàn bộ các đối tượng như đối tượng có thể được so sánh, đối tượng có thể được cloned, đối tượng có thể được notified…

Các công thức của lớp Object

Lớp Object phân phối các công thức như trong bảng sau:

Công thức
Miêu tả

public final Class getClass()
trả về đối tượng lớp Class của đối tượng giờ đây. Từ lớp Class đó có thể lấy được các thông tin metadata của class giờ đây.

public int hashCode()
trả về số hashcode cho đối tượng giờ đây.

public boolean equals(Object obj)
so sánh đối tượng đã cho với đối tượng giờ đây.

protected Object clone() throws CloneNotSupportedException
tạo & trả về bản copy (clone) của đối tượng giờ đây.

public String toString()
trả về chuỗi ký tự đại diện của đối tượng giờ đây.

public final void notify()
đánh thức một luồng, đợi trình giám sát của đối tượng giờ đây.

public final void notifyAll()
đánh thức toàn bộ các luồng. đợi trình giám sát của đối tượng giờ đây.

public final void wait(long timeout)throws InterruptedException
khiến cho Thread giờ đây đợi trong khoảng thời gian là số mili giây rõ ràng và cụ thể, tới khi Thread khác cảnh báo (gọi công thức notify() hoặc notifyAll()).

public final void wait(long timeout,int nanos)throws InterruptedException
khiến cho Thread giờ đây đợi trong khoảng thời gian là số mili giây & nano giây rõ ràng và cụ thể, tới khi Thread khác cảnh báo (gọi công thức notify() hoặc notifyAll()).

public final void wait()throws InterruptedException
làm Thread giờ đây đợi, tới khi Thread khác cảnh báo (gọi công thức notify() hoặc notifyAll()).

protected void finalize()throws Throwable
Được gọi bởi Garbage Collector trước khi đối tượng bị dọn rác.

Khai báo Object

1 Object (đối tượng) nó chứa trong đó bao gồm các method (công thức) & properties (tính chất) để tạo nên 1 kiểu dữ liệu hữu hiệu.

Object xác nhận hành vi của class. Khi bạn gửi 1 thông điệp vào 1 object, có nghĩa là bạn đang yêu cầu gọi các object hoặc thực hiện 1 trong các công thức của nó.

Từ 1 quan niệm của lập trình hướng đối tượng, một đối tượng có thể là 1 kết cấu dữ liệu (data structure), 1 biến (variable) hoặc 1 tính năng (function).

Object được phân bổ địa điểm bộ nhớ lưu trữ. Các Object được kiến trúc như class phân cấp.

ClassName ReferenceVariable = new ClassName();

?. Kiểu Dữ Liệu Boolean Trong Java

Boolean là 1 trong những kiểu dữ liệu nguyên thủy trong Java, nó chỉ cho phép biến đưa 2 giá trị true (ĐÚNG) hoặc false (SAI).

Cùng với kiểu dữ liệu nguyên thủy thì Java cũng từng được lớn mạnh 1 lớp Boolean, nhằm phụ trợ lập trình viên nhiều hơn.

Boolean độc đáo với chủ yếu các kiểu dữ liệu khác vì nó chỉ cho phép 2 giá trị.

Vậy nên nó hay được dùng trong những trường hợp chỉ có 2 kết quả ĐÚNG hoặc SAI & đặc biệt thường sẽ được sử dụng làm điều kiện rẽ nhánh.

Để cho dễ hiểu thì mình sẽ liên hệ thực tiễn & phân phối 1 chẳng hạn về kiểu dữ liệu boolean này.

Chẳng hạn:

  • Bạn mong muốn lưu giá trị thời tiết vào một thời điểm khẳng định
  • Tại thời điểm đó chỉ có 2 trường hợp có thể xảy ra này là có mưa hoặc không có mưa.
  • Như thế ta chỉ cần lưu 1 biến troiMua với kiểu boolean, với giá trị true là có mưa còn false là không có mưa.

Khái niệm về kiểu dữ liệu boolean trong Java thì chỉ có từng ấy, khá là dễ hiểu đúng không nào? Đồng thời với kiểu dữ liệu nguyên thủy thì như chủ yếu kiểu dữ liệu nguyên thủy khác, Java đã được lớn mạnh một lớp Boolean với mục đích phụ trợ nhiều hơn cho lập trình viên.

Khởi đầu với 1 chẳng hạn dễ dàng xem thực trạng thời tiết giờ đây là mưa hay là không mưa.

public class Main
{
   public static void main(String[] args) {
      boolean troiMua = true;
      if (troiMua) {
         System.out.println("Trời đang mưa");
      }
      else
      {
         System.out.println("Trời không mưa");
      }
   }
}

Như bạn thấy, ở thời điểm ban đầu, vừa khai báo vài khởi tạo giá trị ban đầu của biến troiMua.

boolean troiMua = true;

Trong đó, kiểu dữ liệu của biến troiMua là boolean, giá trị khởi tạo là true.

Xem Thêm  JavaScript getElementsByName () - javascript lấy các phần tử theo tên

Tiếp đến, trong kết cấu điều kiện if … else, mình kiểm soát nếu biến troiMua mà đúng thì cảnh báo “Trời đang mưa”.

Trái lại thì cảnh báo “Trời không mưa”.

Bạn cũng có thể làm thế này.

if (troiMua == true)

VI. Kiểu Dữ Liệu Byte Trong Java

Kiểu dữ liệu byte là 1 chẳng hạn về kiểu dữ liệu nguyên thủy.

Kiểu byte gồm 8-bit. Phạm vi giá trị của nó nằm trong khoảng từ -128 đến 127. Giá trị ít nhất của nó là -128 & giá trị tối đa là 127. Giá trị mặc định của nó là 0.

Kiểu dữ liệu byte được dùng để lưu bộ nhớ lưu trữ trong các mảng lớn, trong đấy việc tiết kiệm bộ nhớ lưu trữ là bắt buộc nhất. Nó tiết kiệm không gian vì một byte bé hơn 4 lần đối với số integer. Nó cũng có thể được dùng thay cho kiểu dữ liệu ‘int’.

Chẳng hạn:

byte α = 10, byte ɓ = -20

VII. Ép Kiểu Dữ Liệu Trong Java

Ép kiểu là cách chuyển biến thuộc kiểu dữ liệu này thành biến thuộc kiểu dữ liệu khác.

Ý nghĩa:

  • Việc chuyển kiểu dữ liệu sẽ đến lúc phải cần trong công cuộc giải quyết chương trình
  • Có thể định dạng đúng kiểu dữ liệu mình mong chờ (Như cách hiển thị kiểu ngày tháng năm trên toàn cầu khác với viet nam nên ta sẽ chuyển kiểu ngày theo phong thái bản địa).

Cách dùng ép kiểu

Trong bài này chỉ nói tới ép kiểu dữ liệu so với dữ liệu nguyên thủy (Primitive Data Types), còn so với ép kiểu dữ liệu tham chiếu (Reference Types) thì cách ép kiểu là những hàm (công thức) ép kiểu do người ta viết riêng cho mỗi kiểu dữ tham chiếu đó.

Thì trong ép kiểu trong kiểu dữ liệu nguyên thủy được chia ra làm 2 loại:

  • Chuyển hóa kiểu ngầm định (implicit)
    Chuyển hóa kiểu tường minh (explicit)

Kiểu chuyển hóa ngầm định (implicit)

Việc chuyển hóa sẽ tự thực hiện bởi compiler & các bạn không cần làm gì. Việc chuyển hóa này gì giành cho kiểu dữ liệu nhỏ sang kiểu dữ liệu to hơn. Ta có thể xem chiều từ nhỏ sang lớn như sau:

Chẳng hạn: Ta lấy 1 biến kiểu int gán giá trị cho biến kiểu long

public class HelloWorld{

     public static void main(String []args){
        int α = 5;
        long ɓ = α;
        System.out.print(ɓ);
     }
}

Kiểu chuyển hóa tường minh (explicit)

Trái lại với cách chuyển hóa ngầm định, việc chuyển hóa tường minh là chiều trái lại từ kiểu dữ liệu to hơn sang kiểu dữ liệu bé hơn (với điều kiện giá trị đó kiểu dữ liệu sẽ biến đổi có thể lưu trữ được trong kiểu dữ liệu mới).

Với ép kiểu theo cú pháp:

(<Kiểu dữ liệuvàgt;) <Tên biếnvàgt;;

Chẳng hạn: Ta lấy một biến kiểu long gán giá trị cho biến kiểu int

public class HelloWorld{

     public static void main(String []args){
        long α = 6;
        int ɓ = (int) α;
        System.out.print(α);
     }
}

Note:

Nếu ép kiểu dữ liệu kí tự char sang kiểu dữ liệu số hoặc trái lại.

Khi ép kiểu char sang số thì sẽ ép kiểu ngầm định chuyển kí tự sang hệ thập phân ASCII tương ứng kí tự đó.

Nếu trái lại thì phải dùng ép kiểu tường minh để chuyển sang kiểu kí tự.

VIII. Kiểm Tra Kiểu Dữ Liệu Trong Java

Nội dung này sẽ khái niệm 1 lớp dùng để kiểm soát dữ liệu & có thể sử dụng lại được, nó sẽ cho mọi người 1 cái nhìn khái quát về kết cấu của biểu thức chính quy. Áp dụng chạy lặp đi lặp lại việc yêu cầu người dùng nhập vào một chuỗi cho đến khi nhập đúng theo mẫu mà biểu thức chính quy đã đặt ra thì thôi.

import java.util.regex.Pattern;
import java.util.regex.Matcher;
public class RegexTestHarness {
 public static void main(String[] args) {
 Console console = System.console();
 if (console == null) {
 System.err.println("No console.");
 System.exit(1);
 }
 while (true) {
 Pattern pattern =
 Pattern.compile(console.readLine("%nNhập vào một biểu thức chính quy: "));
 Matcher matcher =
 pattern.matcher(console.readLine("Nhập vào một chuỗi để tìm kiếm: "));
 boolean found = false;
 while (matcher.find()) {
 console.format("Tìm thấy " +
 " "%s" bắt đầu tại " +
 "index %d và kết thúc tại %d.%n",
 matcher.group(),
 matcher.start(),
 matcher.end());
 found = true;
 }
 if (!found) {
 console.format("Không tìm thấy, không tương thích.%n");
 }
 }
 }
}

Trước khi tiếp tục chuyển sang nội dung kế tiếp, các bạn hãy lưu & chạy đoạn mã trên để bảo đảm rằng môi trường lớn mạnh của các bạn phụ trợ các gói yêu cầu. Trong trường hợp môi trường lớn mạnh của các bạn không phụ trợ Console, bạn có thể thực thi đoạn code sau để thay thế:

import java.util.regex.Pattern;
import java.util.regex.Matcher;
public class RegexTestHarness {
 public static void main(String[] args) {
 Scanner scanner=new Scanner(System.in);
 while (true) {
 System.out.print("Nhập vào một biểu thức chính quy: ");
 Pattern pattern = Pattern.compile(scanner.nextLine());
 System.out.print("Nhập vào một chuỗi để tìm kiếm: ");
 Matcher matcher = pattern.matcher(scanner.nextLine());
 boolean found = false;
 while (matcher.find()) {
 System.out.printf("Tìm thấy " +
 " "%s" bắt đầu tại " +
 "index %d và kết thúc tại %d.%n",
 matcher.group(),
 matcher.start(),
 matcher.end());
 found = true;
 }
 if (!found) {
 System.out.printf("Không tìm thấy, không tương thích.%n");
 }
 }
 }
}

IX. Kiểu Số Thực Trong Java

Cùng http://phptravels.vn/ tham khảo 1 chẳng hạn về kiểu số thực trong Java nhé

Bạn hãy viết chương trình tạo nên 2 biến α, ɓ kiểu số thực. Sau đó gán giá trị cho α = 10.5, ɓ = 7 & thực hiện hiển thị ra màn hình:

α / ɓ = {Ρ}

Với {Ρ} là thương của α & ɓ ({Ρ} là kết quả của phép chia α / ɓ).

Xem Thêm  Nền trong suốt - Độ mờ của hình ảnh trong CSS và HTML - độ mờ nền html css

Lý thuyết

Để khai báo & gán giá trị cho biến kiểu số thực bạn dùng keyword double:

// Khai báo biến α kiểu số thực & gán giá trị cho α = 10.5
double α = 10.5;

Chẳng hạn chương trình tạo & hiển thị biến kiểu số thực ra màn hình:

public class Variable {
   public static void main(String[] args) {
      // Khai báo biến α kiểu số thực & gán giá trị cho α = 1.5
      double α = 1.5;
      System.out.println("a = " + α);
   }
}

Kết quả khi chạy chương trình:

α = 1.5

Ngoài double ra thì trong Java còn một kiểu dữ liệu nữa cũng được dùng để lưu trữ số thực nữa là float nhưng trong chủ yếu mọi trường hợp chúng ta nên sử dụng kiểu double.

Cảnh báo: Bạn chẳng thể dùng biến kiểu int để lưu trữ số thực & kết quả của phép toán giữa 2 số nguyên là một số nguyên. Chẳng hạn:

public class Variable {
   public static void main(String[] args) {
      int α = 4;
      int ɓ = 3;
      System.out.println(α / ɓ);
      System.out.println(4 / 3);
   }
}

Kết quả sau thời điểm chạy chương trình:

1
1

Kết quả sẽ là 1 mà không phải 1.(3) do cả α & ɓ đều là biến kiểu số nguyên nên kết quả sẽ là 1 số nguyên. Thành ra khi thực hiện các phép toán trong Java bạn cần chú ý tới kiểu dữ liệu. Để chương trình trên hiển thị đúng kết quả bạn có thể làm như sau:

public class Variable {
   public static void main(String[] args) {
      double α = 4;
      double ɓ = 3;
      System.out.println(α / ɓ);
      System.out.println(4.0 / 3);
   }
}

Kết quả sau thời điểm chạy chương trình:

1.3333333333333333
1.3333333333333333

Đọc tới đây các bạn đã hiểu về cách khai báo & sử dụng biến kiểu số thực. Hãy thực hành để tinh thông hơn về cách làm nhé.

Ҳ. Kiểu Dữ Liệu Bigdecimal Trong Java

BigDecimal đại diện cho 1 số thập phân có độ chuẩn xác cao. Một BigDecimal object là immutable & được chia làm 2 phần:

  • Precision- Trình diễn tất các ký số có trong BigDecimal dưới dạng số nguyên không phân biệt phần thập phân.
  • Scale (32 bit) – Số nguyên trình diễn số chữ số thập phân.

Chẳng hạn BigDecimal 3.14 có phần Precision là 314 & scale là 2.

các bạn sử dụng BigDecimal cho các phép tính số đua đòi hỏi độ chuẩn xác cao như các bài toán liên quan đến tiền tệ etc.

Khởi tạo BigDecimal

các bạn có thể khởi tạo BigDecimal object từ String, mảng character int, long, double, BigInteger.

BigDecimal bdFromString = new BigDecimal("0.1");
BigDecimal bdFromCharArray = new BigDecimal(new char[ {'3','.','1','6','1','5'});
BigDecimal bdlFromInt = new BigDecimal(42);
BigDecimal bdFromLong = new BigDecimal(123412345678901L);
BigInteger bigInteger = BigInteger.probablePrime(100, new Random());
BigDecimal bdFromBigInteger = new BigDecimal(bigInteger);

các bạn cũng có thể tạo BigDecimal với double, nhưng hãy cẩn trọng, xem ví dụ sau:

BigDecimal bdFromDouble = new BigDecimal(0.1d);
System.out.println(bdFromDouble.toString()); // 0.1000000000000000055511151231257827021181583404541015625

Trên mình đã khởi tạo BigDecimal với giá trị là 0.1d, mong muốn BigDecimal của mình mang giá trị 0.1 thế nhưng kết quả lại khác hoàn toàn. Đó là vì 0.1 không có giá trị chính xác trong double, BigDecimal chỉ đơn giản là lấy giá trị sai của 0.1 trong double sang và tất nhiên là giá trị cũng sẽ bị sai.

Vì vậy các bạn nên sử dụng String để khởi tạo 1 giá trị double hoặc sử dụng BigDecimal.valueOf() để có giá trị chính xác như mong muốn.

BigDecimal bdFromLong1 = BigDecimal.valueOf(123412345678901L); // 123412345678901
        
BigDecimal bdFromLong2 = BigDecimal.valueOf(123412345678901L, 2); // 1234123456789.01
        
BigDecimal bdFromDouble = BigDecimal.valueOf(0.1d); // 0.1

Phép tính trong BigDecimal

BigDecimal cũng giống như các kiểu dữ liệu Number khác(Integer, Long, Double, etc) nó cung cấp đầy đủ các phép tính cộng, trừ, nhân, chia, so sánh, etc.

Kiểm tra các thành phần trong BigDecimal như unscaled, scale, sign.

int precision = bd.precision(); // 9
int scale = bd.scale(); // 4
int signum = bd.signum(); // -1

So sánh BigDecimal

compareTo()

Sử dụng compareTo() method để so sánh giữa BigDecimal với một BigDecimal khác. Method compareTo() trả về -1 nếu nhỏ hơn BigDecimal được so sánh, 0 nếu bằng và 1 nếu lớn hơn.

BigDecimal bd1 = new BigDecimal("1.0");
BigDecimal bd2 = new BigDecimal("1.00");
BigDecimal bd3 = new BigDecimal("2.0");
System.out.println(bd1.compareTo(bd2)); // 0
System.out.println(bd1.compareTo(bd3)); // -1
System.out.println(bd3.compareTo(bd1)); 1

Note: các bạn nhận thấy rằng compareTo() bỏ qua phần scale khi so sánh. 1.0 = 1.00

XI. Kiểu Dữ Liệu Enum Trong Java

Enum trong java là 1 kiểu dữ liệu đặc biệt của Java được sử dụng để định nghĩa các tập hợp các hằng số. Cụ thể hơn, Java enum là một kiểu đặc biệt của lớp trong java. Một enum có thể chứa các trường, phương thức và Constructor.

Nó có thể được dùng để định nghĩa các ngày trong tuần (SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY), các mùa trong năm (SPRING, SUMMER, FALL, WINTER), …

Enum trong java có thể được định nghĩa bên trong hoặc bên ngoài 1 lớp, vì nó tương tự như lớp trong java.

Ví dụ enum trong java: định nghĩa bên trong một lớp

package vn.viettuts.javaenum;
 
public class EnumExample1 {
    // define enum
    enum Season {
        SPRING, SUMMER, FALL, WINTER;
    }
 
    public static void main(String[] args) {
        Season season = Season.WINTER;
        System.out.println(season);
    }
}

Kết quả:

WINTER

Chẳng hạn enum trong java: khái niệm bên ngoài một lớp

package vn.viettuts.javaenum;
 
// define enum
enum Season {
    SPRING, SUMMER, FALL, WINTER;
}
 
public class EnumExample2 {
    public static void main(String[] args) {
        Season season = Season.WINTER;
        System.out.println(season);
    }
}

Kết quả:

WINTER

Chẳng hạn enum trong java: khái niệm trong một file tách biệt

File Season.java

package vn.viettuts.javaenum;
 
public enum Season {
    SPRING, SUMMER, FALL, WINTER;
}

File EnumExample3.java

package vn.viettuts.javaenum;
 
public class EnumExample3 {
    public static void main(String[] args) {
        Season season = Season.WINTER;
        System.out.println(season);
    }
}

Kết quả:

WINTER

The bài viết Các Kiểu Dữ Liệu Trong Java first appeared on Techacademy.

source

source https://techacademy.edu.vn/cac-kieu-du-lieu-trong-java/

Viết một bình luận