Thao tác với byte trong JAVA

Bài viết này mình sẽ giúp bạn hiểu rõ về kiểu dữ liệu byte trong Java và biết cách tận dụng sức mạnh của biến có kiểu dữ liệu byte.

Kiểu dữ liệu byte trong Java

Kiểu dữ liệu byte trong Java

Biến trên thực tế là bộ nhớ để lưu một giá trị nào đó.

Khi khai báo biến tức là bạn đang khai báo với hệ thống rằng bạn cần một không gian trong bộ nhớ để lưu giá trị của biến.

Dựa trên kiểu dữ liệu của một biến, hệ điều hành cấp phát bộ nhớ và quyết định cái gì có thể được lưu giữ trong bộ nhớ dành riêng đó.

Do đó, sử dụng đúng kiểu dữ liệu trong Java, cấp phát đúng nhu cầu sẽ mang lại một chương trình có hiệu năng cực kỳ tốt.

Bạn đang đọc: Thao tác với byte trong JAVA

Trong Java có 2 kiểu dữ liệu có sẵn :

  • Kiểu dữ kiệu nguyên thủy ( Primitive )
  • Kiểu đối tượng người dùng ( Object ) .

Để tìm hiểu và khám phá hết đống kiểu dữ liệu này thật là mất khá nhiều thời hạn, nên trong bài viết này, mình chỉ tóm gọn cho những bạn hiểu về byte – một kiểu dữ liệu primitive trong Java .

Tự học Java (toàn tập).

> Hoặc tham gia khóa học Java (Phun sờ tắc) để nắm giữ ngôn ngữ Java nhanh hơn, học kinh nghiệm lập trình Java tốt hơn từ giảng viên doanh nghiệp.> Nếu muốn khám phá khá đầy đủ những kiểu dữ liệu trong Java thì bạn hoàn toàn có thể xem hướng dẫn ( toàn tập ). > Hoặc tham gia ( Phun sờ tắc ) để nắm giữ ngôn từ Java nhanh hơn, học kinh nghiệm tay nghề lập trình Java tốt hơn từ giảng viên doanh nghiệp .

1. Kiểu dữ liệu byte là gì? Chúng được sử dụng trong trường hợp nào

Nếu bạn đã từng xem qua các tài liệu về máy tính chắc hẳn đã nghe qua hai khái niệm bytebit.

Trong Java cũng thế, Java dựa trên máy tính mà lập trình và hoạt động được nên cũng có một kiểu dữ liệu byte nhằm giúp các lập trình viên lưu trữ một số giá trị biến phù hợp.

Vậy byte trong Java là gì?

Byte là một trong những kiểu dữ liệu nguyên thủy trong Java, là kiểu dữ liệu số nguyên nhỏ nhất.

Điều này có nghĩa byte là kiểu dữ liệu được đóng gói sẵn trong ngôn ngữ lập trình và việc của bạn là sử dụng nó khi nào cho hợp lý.

Một byte Java có cùng kích thước với một byte trong bộ nhớ máy tính

1 Byte8 bit và có thể giữ các giá trị từ -128 đến 127.

Hãy cẩn thận khi sử dụng byte, đặc biệt nếu số có khả năng lớn hơn 127 (hoặc nhỏ hơn -128).

Không có cách nào để lưu trữ giá trị lớn hơn phạm vi trên vào một byte, lúc đó chương trình chắc chắn sẽ bị tràn bộ nhớ.

Bạn hãy nhớ kỹ một điều rằng là:

  • BYTE chỉ dùng để lưu những số nguyên có kích cỡ 8 bit
  • Giá trị nhỏ nhất là -128

  • Giá trị lớn nhất là 127

  • Giá trị mặc định bằng 0

Kiểu dữ liệu byte được sử dụng để lưu giữ khoảng trống trong các mảng lớn, chủ yếu là các số nguyên.

Biến có kiểu dữ liệu byte đặc biệt hữu ích khi bạn đang làm việc với luồng dữ liệu từ mảng hoặc tệp.

Chúng cũng hữu ích khi bạn đang làm việc với dữ liệu nhị phân thô có thể không tương thích trực tiếp với các kiểu Java tích hợp khác.

2. Một số thao các cơ bản với kiểu dữ liệu byte trong Java

Byte trong Java

Là một kiểu dữ liệu nguyên thủy, việc khai báo một biến byte cũng đơn giản như các kiểu dữ liệu khác trong Java.

Cú pháp đơn giản nhất để khai báo một byte là:


byte  = [giá trị biến];
 

 
Ví dụ:


byte niit = 100;
 

Để hiểu hơn về byte và cách sử dụng, tất cả chúng ta cùng lướt qua một vài ví dụ nhé .

Ví dụ 1: Biến byte sử dụng lớp Byte trong Java

Bạn hãy tạo một class Demo


public class Demo {

    public static void main(String[] args) {

        byte b = 10; / / khai báo một biến byte và gán giá trị = 10

        Byte n1 = new Byte(b);

        Byte n2 = new Byte(” 4 “);

        System.out.println(n1); / / 10

        System.out.println(n2);/ / 4

}

}
 

Bạn có thể thấy trong chương trình, mình có thể sử dụng trực tiếp từ khóa byte để khai báo dữ liệu.

Tuy nhiên, mình cũng có thể sử dụng lớp Byte để tạo một đối tượng có kiểu dữ liệu như vậy. Bởi vì byte nằm trong Byte. (lớp bao bọc chính nó)

Ví dụ 2: Sử dụng biến byte trong phép cộng

Trong ví dụ dưới đây, mình sử dụng kiểu byte trong lớp CongByte để thêm hai số kiểu byte và lưu giá trị nó lại, bạn đoán xem kết quả như thế nào?


public class CongByte {

    public static void main(String[] args) {

        byte a = 30;

        byte b = 40;    

        byte c = (byte) (a + b);

        System.out.println(” Ket qua = ” + c);

}

}
 

3. Chuyển đổi qua lại giữa byte array và String

3.1. Cách chuyển đổi String thành một byte array

Chúng ta có thể sử dụng phương thức getBytes() của lớp String để thực hiện chuyển chuỗi thành một chuỗi các byte bằng cách sử dụng bộ ký tự mặc định.

Đây là một chương trình đơn giản chỉ ra cách chuyển đổi Chuỗi thành mảng byte trong java.


import java.util.Arrays;

public 

class

 StringToArrayByte {

    public static void main(String[] args) {

        String str = ” NIIT “;

        byte[] byteArr = str.getBytes();

        / / in những thành phần byte [ ]

        System.out.println(” Ket qua la : ” + Arrays.toString(byteArr));

        / / Ket qua la : [ 78, 73, 73, 84 ]

}

}
 

3.2. Cách chuyển đổi byte arry thành String

Hãy cùng xem một chương trình đơn giản chỉ ra cách chuyển đổi mảng byte thành Chuỗi trong Java.


public class ByteArrayToString {

    public static void main(String[] args) {

        byte[] byteArray = { ‘ N ‘, ‘ I ‘, ‘ I ‘, ‘ T ‘};

        byte[] byteArray1 = { 78, 73, 73, 84 };

        String str = new String(byteArray);

        String str1 = new String(byteArray1);

        System.out.println(str); / / NIIT

        System.out.println(str1); / / NIIT

}

}
 

Bạn có nhận thấy rằng mình đang cung cấp các kí tự trong khi tạo mảng byte không?

Nó hoạt động nhờ tính năng tự động chuyển đổi từ “N” sang 78 trong byte, tương tự với các giá trị khác.

Đó là lý do tại sao kết quả trả về là như nhau cho cả chuyển đổi mảng byte sang chuỗi.

4. Một số phương thức khi làm việc với lớp Byte trong Java

Ngoài ra khi làm việc với lớp bao bọc của chính kiểu bytelớp Byte (chú ý là trong Java byte khác với Byte nhé) các bạn có thể tham khảo một số phương thức nâng cao được hỗ trợ như:

  • valueOf(): Trả về đối tượng Byte được khởi tạo với giá trị được cung cấp

  • parseByte(): trả về giá trị byte bằng cách phân tích chuỗi trong cơ số được cung cấp. Khác với valueOf () vì nó trả về một giá trị byte nguyên thủy và valueOf () trả về đối tượng Byte

  • byteValue(): Trả về một giá trị byte tương ứng với đối tượng Byte

  • intValue(): Trả về một giá trị int tương ứng với đối tượng Byte (tương tự với long, double, float)

  • compareTo(): Được sử dụng để so sánh hai đối tượng Byte cho đẳng thức số.

  • Và nhiều phương pháp khác nữa, …


Làm việc với byte trong Java không phức tạp như bạn nghĩ, nó vốn là kiểu dữ liệu cơ bản và đơn giản.

Nhưng nhất định bạn phải biết rõ lợi ích của nó, nên dùng byte trong trường hợp nào thì bạn mới thực sự tận dụng được sức mạnh của ngôn ngữ Java.

Bản thân mình tiếp xúc với Java cũng đã khá lâu, nhưng vẫn chưa sử dụng hết các phương thức mà Byte hỗ trợ, nên bạn cũng cứ yên tâm, chỉ cần ghi nhớ tác dụng của nó, khi cần thì Google là được.

Tham khảo: Làm việc vớikhông phức tạp như bạn nghĩ, nó vốn là kiểu dữ liệu cơ bản và đơn thuần. Nhưng nhất định bạn phải biết rõ quyền lợi của nó, nên dùng byte trong trường hợp nào thì bạn mới thực sự tận dụng được sức mạnh của ngôn từ Java. Bản thân mình tiếp xúc với Java cũng đã khá lâu, nhưng vẫn chưa sử dụng hết những phương pháp mà Byte tương hỗ, nên bạn cũng cứ yên tâm, chỉ cần ghi nhớ công dụng của nó, khi cần thì Google là được. Tham khảo : https://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html

HỌC VIỆN ĐÀO TẠO CNTT NIIT – ICT HÀ NỘI

Dạy học Lập trình chất lượng cao ( Since 2002 ). Học làm Lập trình viên. Hành động ngay !

Đc : Tầng 3, 25T2, N05, Nguyễn Thị Thập, CG cầu giấy, TP. Hà Nội

SĐT : 02435574074 – 0914939543 – 0353655150

E-Mail : [email protected]

Fanpage: https://facebook.com/NIIT.ICT/

# niit # niithanoi # niiticthanoi # hoclaptrinh # khoahoclaptrinh # hoclaptrinhjava # hoclaptrinhphp # java # php # python