[Java] Hiểu về Primitive Type và Wrapper Objects

[Java] Hiểu về Primitive Type và Wrapper Objects

  • Primitive type là gì? Wrapper Object là gì
  • Khi nào sử dụng Primitive type, khi nào sử dụng Wrapper Object

Primitive Types

+-----------+---------+-------------------------+
| Data Type | Size | Range |
+-----------+---------+-------------------------+
| byte | 1 byte | -128 to 127 |
| short | 2 bytes | -32,768 to 32,767 |
| int | 4 bytes | -2^31 to 2^31-1 |
| long | 8 bytes | -2^63 to 2^63-1 |
| float | 4 bytes | -3.4e38 to 3.4e38 |
| double | 8 bytes | -1.7e308 to 1.7e308 |
| boolean | 1 bit* | true or false |
| char | 2 bytes | '\u0000' to '\uffff' |
+-----------+---------+-------------------------+

Khai báo primitive type

byte b = '\u0045';
short s = 5;
int i = 10;
long l = 100L;
float f = 3.1415f;
double d = 500.25d;
boolean bool = false;
char c = 'A';

+-----------+---------------+
| Data Type | Default Value |
+-----------+---------------+
| byte | 0 |
| short | 0 |
| int | 0 |
| long | 0L |
| float | 0.0f |
| double | 0.0d |
| boolean | false |
| char | '\u0000' |
+-----------+---------------+

Wrapper Object

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

Integer a = new Integer (3)

a + = 1

AutoBoxing

List <Integer> numbers = new ArrayList <Integer>
for (int i = 0; i <10; i ++) {
numbers.add (i)
}

Unboxing

Integer a = new Integer(5)
int b = a

Hiệu suất Autoboxing và Unboxing

Integer number = new Integer(0)
for (int i = 0; i < 1000; i++){
number += i
}

  • number += i được chuyển đổi thành number = number + i
  • number được unboxing giá trị và cộng với i
  • kế tiếp sẽ autoboxing (tạo mới Integer object) với giá trị có được.
  • gán wrapper object tạo ở bước trên vào number

Cách sử dụng

  • Khi sử dụng với Collections.
  • Khi cần sử dụng giá trị null
  • Khi cần lấy giá trị MIN, MAX của primitive type