AutoBoxing và unboxing trong Java là gì?



Bài viết này sẽ cung cấp cho bạn một cách tiếp cận toàn diện về Autoboxing trong Java cùng với một số ví dụ để bạn hiểu rõ hơn.

Hầu hết chúng ta sử dụng các kiểu dữ liệu nguyên thủy trong khi viết một chương trình bằng bất kỳ ngôn ngữ nào. Nhưng có những tình huống mà kiểu dữ liệu nguyên thủy bị thiếu hụt trong lĩnh vực và là một trong số họ. Để khắc phục những hạn chế trong kiểu dữ liệu Nguyên thủy, chúng tôi sử dụng giấy gói . Thủ tục này được gọi là Autoboxing. Chúng ta sẽ thảo luận chi tiết về Autoboxing trong Java thông qua docket bên dưới:

Hãy bắt đầu nào.





cách tạo ứng dụng trong lực lượng bán hàng

Boxing và Autoboxing trong Java là gì?

Boxing và Autoboxing thường được dùng để chỉ cùng một khái niệm. Nhưng trên thực tế, chúng không hoàn toàn giống nhau. Đầu tiên chúng ta hãy nói về khái niệm quyền anh. Quyền anh là gì? Có vẻ như chúng ta đang giữ một thứ gì đó bên trong một chiếc hộp phải không? Đúng, khi chúng ta nói rằng chúng ta đang đóng gói hoặc gói một kiểu dữ liệu nguyên thủy, điều đó có nghĩa là chúng ta đang gói nó để tạo thành một đối tượng. Bạn vẫn còn bối rối? Hãy lấy một ví dụ.

int FirstNumber = 1

Biến 'FirstNumber' có kiểu int là một . Bây giờ, nếu tôi muốn chuyển đổi biến ‘FirstNumber’ thành một đối tượng thì sao? Java cung cấp một cách để làm điều đó.



Integer SecondNumber = new Integer (2)

Lưu ý rằng ‘SecondNumber’ không thuộc kiểu int nhưng nó là một đối tượng kiểu Integer. Quá trình chuyển đổi các kiểu dữ liệu nguyên thủy thành một đối tượng được gọi là boxing. Bạn có thể hỏi làm thế nào điều này là có thể? Hãy cùng suy nghĩ về cách đơn giản nhất để hoàn thành nhiệm vụ này. Chúng tôi có thể tạo ra một lớp học chứa một thuộc tính duy nhất của kiểu int, một hàm tạo nhận giá trị kiểu int và gán nó cho thuộc tính lớp của chúng ta và một số phương thức để thao tác với giá trị int này. Để tìm hiểu thêm về nó, hãy tham khảo tài liệu .

Chúng ta đã thấy cách chuyển kiểu int thành Java. Có cách nào để chuyển đổi các kiểu dữ liệu nguyên thủy khác thành các đối tượng không? Có, Java có lớp bao bọc cho các kiểu dữ liệu nguyên thủy khác nhau. Chúng tôi sẽ xem xét chúng trong phần tiếp theo của bài đăng này.

Hộp thư tự động

Đến đây, chúng ta đã biết quyền anh là gì. Bây giờ chúng ta hãy hiểu Autoboxing là gì. khi quá trình boxing được thực hiện bởi trình biên dịch mà không được đề cập rõ ràng, được gọi là autoboxing.



Hãy hiểu điều này bằng một ví dụ:

import java.util.ArrayList import java.util.Listclass Box {public static void main (String [] args) {List Mylist = new ArrayList () for (int i = 0 i<10 i++) Mylist.add(i) } }

Như chúng ta đã thảo luận trước đó chỉ chấp nhận các đối tượng và kiểu dữ liệu nguyên thủy không hoạt động. Trong chương trình trên, chúng ta không chuyển đổi kiểu đối tượng sang kiểu Số nguyên chương trình vẫn thực hiện mà không có lỗi nào. Làm sao? Câu trả lời cho câu hỏi này là, trình biên dịch đã tự động thực hiện quá trình quyền anh trước khi thêm giá trị vào ‘Mylist’ do đó có tên là Autoboxing.

Mylist.add (Integer.valueOf (i))

Dòng mã trên được trình biên dịch thêm vào chương trình của chúng tôi.

Ghi chú- Trong dòng mã ở trên, tên lớp mã ‘Integer ’được đề cập trước phương thức valueOf () vì valueOf () là một phương thức tĩnh. Để biết thêm ví dụ, hãy tham khảo tài liệu .

Unboxing và Autounboxing

Chúng tôi đã thấy cách của kiểu dữ liệu nguyên thủy được chuyển đổi thành các đối tượng. Nhưng đây chỉ là một nửa của câu chuyện. Phần còn lại của câu chuyện là chuyển đổi một đối tượng của một lớp trình bao bọc kiểu thành kiểu dữ liệu nguyên thủy của nó được gọi là mở hộp .

Ví dụ-

Integer FirstNumber = new Integer (1) int SecondNumber = FirstNumber.intValue () System.out.println (SecondNumber)

Đầu ra- 1

Autounboxing- Khi quá trình mở hộp được thực hiện bởi trình biên dịch mà không đề cập rõ ràng được gọi là Autounboxing.

Ví dụ-

Số nguyên = new Số nguyên (20) int num = Số

Đoạn mã trên là một ví dụ về Autounboxing. Trong phần tiếp theo, chúng ta sẽ tìm hiểu về các lớp wrapper.

Các lớp gói

Chúng tôi đã chuyển đổi trong đối tượng kiểu biến kiểu intl Integer. Lớp số nguyên này là một lớp trình bao bọc. Trong Java, một lớp trình bao bọc có sẵn cho mỗi . Các lớp trình bao bọc này giúp chúng ta chuyển đổi một biến từ kiểu nguyên thủy sang đối tượng kiểu lớp bao bọc tương ứng. Các phương thức của các lớp trình bao bọc rất hữu ích trong việc thao tác các giá trị.

Bảng dưới đây cho chúng ta biết về kiểu dữ liệu nguyên thủy và lớp trình bao bọc tương ứng của nó.

Loại nguyên thủy Lớp bọc

boolean

Boolean

tạm biệt

chuyển đổi đối tượng sang mảng php

Byte

char

Tính cách

Phao nổi

Phao nổi

int

Số nguyên

kết hợp dữ liệu hoạt cảnh bên trái tham gia

Dài

Dài

ngắn

Ngắn

gấp đôi

Gấp đôi

Lưu ý cách viết hoa trong các lớp Wrapper.

Như vậy là chúng ta đã kết thúc bài viết này về 'Autoboxing trong Java'. Nếu bạn muốn tìm hiểu thêm, hãy xem bởi Edureka, một công ty học trực tuyến đáng tin cậy. Khóa học đào tạo và cấp chứng chỉ Java J2EE và SOA của Edureka được thiết kế để đào tạo bạn về cả khái niệm Java cốt lõi và nâng cao cùng với các khung Java khác nhau như Hibernate & Spring.

Có một câu hỏi cho chúng tôi? Vui lòng đề cập đến nó trong phần nhận xét của blog này “autoboxing trong Java” và chúng tôi sẽ liên hệ lại với bạn sớm nhất có thể.