Primitive type & Reference type
Java Data Type
- Primitive Type
- Boolean Type(boolean)
- Numeric Type
- Integral Type
- Integer Type(short, int, long)
- Floating Point Type(float, double)
- Character Type(char)
- Reference Type
- Class Type
- Interface Type
- Array Type
- Enum Type
- etc.
Primitive type
- 변수에 값 자체를 저장하며, 크기가 작고 고정적이기 때문에 stack 영역에 저장된다.
- 사용하기 전에 반드시 선언되어야 하며, 초기화를 하지 않으면 자료형에 맞는 기본 값이 들어간다.
- OS에 따라 자료의 길이가 변하지 않는다.
- 비객체 타입이며, Null 값을 가질 수 없다. Primitive type에 Null을 넣고 싶다면 Wrapper Class를 활용한다.
- 정수(byte, short, int, long), 실수(double, float), 문자(char), 논리(boolean)
boolean
byte
short
int
long
float, double
Reference type
- 기본형을 제외하면 참조형이라고 한다.
- new 키워드를 이용하여 객체를 생성하여 데이터가 생성된 주소를 참조하는 타입이다.
- 메모리 상에서 객체가 존재하는 주소를 저장하며, 데이터의 크기가 가변적, 동적이기 때문에 동적으로 관리되는 Heap 영역에 저장한다.
- 클래스형, 인터페이스형, 배열형, 열거형이 있다.
- String, StringBuffer, List, 개인이 만든 클래스 등
- String과 배열은 참조 타입과 달리 new 없이 생성이 가능하지만 기본 타입이 아닌 참조 타입이다.
- 더 이상 참조하는 변수가 없을 때 가비지 컬렉션에 의해 파괴된다.
- 빈 객체를 의미하는 Null이 존재한다.
- 참조 타입은 값이 저장된 곳의 주소를 저장하는 공간으로 객체의 주소를 저장한다. (Call-By-Value)
- JAVA에서 최상인 java.lang.Object클래스를 상속하는 모든 클래스들을 말한다.
- 문법상으로는 에러가 없지만 실행시켰을 때 에러가 나는 런타임 에러가 발생한다. 예를 들어 객체나 배열을 Null 값으로 받으면 NullPointException이 발생하므로 변수 값을 넣어야 한다.
- Heap 메모리에 생성된 인스턴스는 메소드나 각종 인터페이스에서 접근하기 위해 JVM의 Stack 영역에 존재하는 Frame에 일종의 포인터(C의 포인터와는 다릅니다.)인 참조값을 가지고 있어 이를 통해 인스턴스를 핸들링합니다.
String Class
클래스형에서도 String 클래스는 조금 특별합니다. 이 클래스는 참조형에 속하지만 기본적인 사용은 기본형 처럼 사용합니다. 그리고 불변(immutable)하는 객체입니다. String 클래스에는 값을 변경해주는 메소드들이 존재하지만 해당 메소드를 통해 데이터를 바꾼다 해도 새로운 String 클래스 객체를 만들어내는 것입니다. 일반적으로 기본형 비교는 == 연산자를 사용하지만 String 객체간의 비교는 .equals() 메소드를 사용해야 합니다.
Author And Source
이 문제에 관하여(Primitive type & Reference type), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@parkchanjong/Primitive-type-Reference-type저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)