Thao tác với byte trong JAVA

Ngày đăng: 24/06/2020   -    Cập nhật: 27/06/2020
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.

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

  • Kiểu dữ kiệu nguyên thuỷ (Primitive)
  • Kiểu đối tượng (Object).

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

> Nếu muốn tìm hiểu đầy đủ các kiểu dữ liệu trong Java thì bạn có thể xem hướng dẫn 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.


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 các số nguyên có kích thướ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 <tên biến> = [giá trị biến];
 
 
Ví dụ:



byte niit = 100;
 


Để hiểu hơn về byte và cách sử dụng, 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 các phần tử 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 = { 78737384 };

        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 thức 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: 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, Cầu Giấy, Hà Nội
SĐT: 02435574074 - 0914939543 - 0353655150 
Email: hello@niithanoi.edu.vn
Fanpage: https://facebook.com/NIIT.ICT/
 
#niit #niithanoi #niiticthanoi #hoclaptrinh #khoahoclaptrinh #hoclaptrinhjava #hoclaptrinhphp #java #php #python

Bình luận Facebook
Khóa học liên quan đến bài viết

Khóa học PHP Full stack [2023] cho người mới bắt đầu

96 giờ
Khóa học Lập trình PHP Full stack, phiên bản cập nhật lần thứ 8. Dạy Lập trình PHP bài bản từ Front end đến Back end + Laravel. Hướng dẫn làm 2 Dự Án Web lớn

Lập trình PHP với Laravel Framework

42 giờ
Khóa học Lập trình PHP với Laravel Framework được NIIT - ICT HÀ NỘI xây dựng nhằm hoàn thiện kỹ năng lập trình web các các bạn đã biết Lập trình Web PHP thuần.

Khóa học Java Full stack (IJFD)

104 giờ
Học lập trình Java Fullstack với khóa học được xây dựng theo lộ trình bài bản, từ JAVA CƠ BẢN đến JAVA WEB và nâng cao về JAVA FRAMEWORK như: Spring Boot, Hibernate
Mục lục
Đăng ký tư vấn
Nhân viên gọi điện tư vấn miễn phí sau khi đăng ký
Được cập nhật các ưu đãi sớm nhất
Hotline: 0383180086
Tên không được để trống
Số điện thoại không được để trống
Email không được để trống
Hãy đăng ký để nhận những thông tin mới nhất về học bổng mới nhất tại NIIT - ICT Hà Nội
top
Đóng lại Đăng ký học tại NIIT - ICT Hà Nội
6260+ học viên đã theo học tại NIIT - ICT Hà Nội và có việc làm tốt trong ngành lập trình. Nắm lấy cơ hội ngay hôm nay!
Chọn khóa học
  • KHÓA HỌC LẬP TRÌNH FRONT END VỚI REACT.JS
  • KHÓA HỌC LẬP TRÌNH PHP WEB
  • Khóa học PHP Full stack [2023] cho người mới bắt đầu
  • Khóa học BIG DATA với Hadoop và Spark
  • Khóa học Lập trình Android tại Hà Nội
  • [Tuyển sinh 2023] Lập trình viên Quốc tế DigiNxt
  • Khóa học Tiền lương & Phúc lợi (C&B Excel) tại Hà Nội
  • LẬP TRÌNH GAME
    • Khóa học Lập trình Game Unity
  • LẬP TRÌNH WEB FRONT END
    • KHÓA HỌC PYTHON HƯỚNG ĐỐI TƯỢNG
    • KHÓA HỌC ANGULAR & TYPESCRIPT (FRONT END)
  • LẬP TRÌNH WEB BACK END
    • LẬP TRÌNH JAVA WEB VỚI FRAME WORK
    • Lập trình Web với Django
    • Lập trình PHP với Laravel Framework
  • CHƯƠNG TRÌNH ĐÀO TẠO ỨNG DỤNG CÔNG NGHỆ
    • Khóa học Tiền lương & Phúc lợi (C&B Excel) tại TP HCM
  • LẬP TRÌNH WEB FULL STACK
    • Khóa học Java Full stack (IJFD)
  • LẬP TRÌNH MOBILE
    • FRONT-END VỚI REACTJS VÀ REACT NATIVE
    • Lập trình Android Nâng cao
  • ĐÀO TẠO CHO DOANH NGHIỆP
    • KHÓA HỌC BUSINESS ANALYSIC TỪ CƠ BẢN ĐẾN NÂNG CAO 2023
    • Khóa học Magento: Làm chủ CMS TMĐT lớn nhất
    • Khóa học IOT: Xây dựng Sản phẩm IOT với Raspberry Pi
    • Khóa học Automation Testing Chuyên nghiệp
  • KHÓA HỌC DỰ ÁN
    • Học sử dụng bộ Office: Word, Excel, Power Point, Mail chuyên nghiệp
  • KHÓA HỌC KHÁC
    • VBA Excel Toàn Tập (Cơ Bản - Nâng Cao)
    • VBA Excel Nâng cao
    • Khóa học JMeter: Performance Testing
    • Khóa học Tester đạt chuẩn Quốc tế ISTQB Foundation Level
    • Khoá Học Tester đạt chuẩn quốc tế ISTQB Advanced Level
Bạn chưa chọn khóa học cần đăng ký
Tên không được để trống
Số điện thoại không được để trống
Email không được để trống
Đăng ký học thành công!
Cảm ơn bạn đã đăng ký học tại NIIT - ICT HÀ NỘI!