Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |
Tags
- 이미지 라운딩
- 버튼 누르는 효과
- Retrofit+RxJava
- Gif넣기
- Lint found fatal errors while assembling a release target
- 버튼 클릭 효과
- Glide라이브러리
- ellipsize
- 안드로이드
- apk 빌드 오류
- Kotlin
- rounding
- 기본형
- 코틀린
- EditText
- 입력감지
- Android
- 글자 줄임 표시
- 참조형
- boxing
- maxLength
- 서버 통신
- android api호출
- retrofit
- compose
- 글자 수 제한
- XML
- 레트로핏
- Retrofit 2.0
- url에서 이미지 가져오기
Archives
- Today
- Total
단비의 개발블로그
[JAVA] 변수의 기본형(primitive type)과 참조형(reference type), Boxing과 Unboxing 본문
Java & Kotlin
[JAVA] 변수의 기본형(primitive type)과 참조형(reference type), Boxing과 Unboxing
단비냥 2021. 3. 17. 22:41반응형
JAVA
기본형(Primitive Type)
byte, short, int, long, float, double, boolean, char, void
위와 같은 변수들이 있다
특징으로는 다음과 같다.
- 실제 연산에 사용된다
- 모두 소문자로 시작된다
- 비객체 타입이므로 null 값을 가질 수 없다
- 저장공간에 실제 값을 가진다
참조형(Reference Type)
위의 8가지 자료형을 제외한 나머지가 모두 참조형이다.
특징으로는 다음과 같다.
- 값이 저장되는 공간의 주소를 저장하는 공간으로 객체의 주소를 저장한다
- null로 초기화 시킬 수 있다
- 클래스형(Class Type), 인터페이스형(Interface Type), 배열형(Array Type) 이 있다
Wrapper Class
기본형에 null을 넣고 싶거나 객체로 다루고 싶을 경우 Wrapper Class를 활용하면 된다.
래퍼 클래스는 기본형을 클래스로 감싼 형태이다.
인스턴스를 생성(Heap 메모리에 저장)하여 상속 및 재사용이 가능하다.
ex) int -> Integer
long -> Long
char -> Char
Boxing
기본 자료형을 래퍼클래스로 변환하는 것을 Boxing 이라고 한다.
int primitive = 10;
Integer boxing = new Integer(primitive);
Unboxing
반대로 래퍼클래스를 기본 자료형으로 변환하는 것이 Unboxing이다.
Integer reference = new Integer(10);
int unboxing = reference.intValue();
JDK 1.5 부터는 이것을 자동으로 해주는 것이 가능하다.
이것이 AutoBoxing, AutoUnboxing 이다.
Integer a = new Integer(10);
int b = a; // 오토언박싱
Integer c = b; // 오토 박싱
참고
Wrapper Class의 값은 == 등의 연산자 사용이 불가능하다.
== 이 연산자는 내부의 값을 저장하는 것이 아니라 참조 주소를 비교하기 때문이다.
Wrapper는 객체이므로 서로의 참조 주소가 다르다.
따라서 동치 비교를 할 때는 내부의 값만 비교하는 equals() 같은 메소드를 사용한다.
반응형
'Java & Kotlin' 카테고리의 다른 글
코틀린의 변수와 자료형 (Kotlin) (0) | 2021.03.23 |
---|
Comments