primitive / reference type
Primitive type(기본형) - 변수에 값 자체를 저장
종류 byte / short / int / long / float / double / char / boolean / void
모두 첫 글자가 소문자
산술 연산이 가능
비객체 타입으로, Null을 가질 수 없는 형태
int a = null; (X)
int a = 0; (O)
Reference type(참조형) - 메모리상에 객체가 있는 위치를 저장
참조형은 기본적으로 java.lang.Object 를 상속
또한, 선언한 자료형이 기본형이 아닌경우 참조형이라 보면 된다.
참조형에는 Class, Interface, Arrays 이 있다.
-
Class Type
클래스형은 기본형과 다르게 객체를 참조하는 형태
class MyObject{ private int index; MyObject(int index) { this.index = index; } public int getIndex() { return index; } public void setIndex(int index) { this.index = index; } } // --------------------------------------------------------------------------------- public class ClassType { public static void main(String[] args) { MyObject a = new MyObject(2); MyObject b = new MyObject(4); System.out.println(a.getIndex()); // "a" result is 2. a = b; System.out.println(a.getIndex()); // "a" result is 4. b.setIndex(6); System.out.println(a.getIndex()); // "a" result is 6. } } // b객체의 멤버 변수 값을 바꿨지만 a객체도 같은 객체를 참조하기 때문에 동일한 값을 출력
1 - 1. String Class
참조형에 속하지만 기본적인 사용은 기본형처럼 사용.
일반적으로 기본형 비교는 == 연산자를 사용하지만 String 객체간의 비교는 .equals()메소드 사용
1 - 2. Wrapper Class
Primitive type으로 표현할 수 있는 간단한 데이터를 객체로 만들어야 할 경우
그러한 기능을 지원하는 클래스
public static void main(String[] args) {
Integer a = new Integer(3);
System.out.println(a.MIN_VALUE);
System.out.println(a.MAX_VALUE);
}
// 출력 시..
-2147483648
2147483647
Primitive Type ↔ Reference Type변환
primitive Type에서 Reference Type간에 변환할때
Boxing 과 Unboxing이라고 한다.
public static void main(String[] args) {
Integer a = new Integer(3);
int b = 3;
Integer c = (Integer) b; // 이것은 boxing
int d = (int) a; // 이것은 Unboxing
int e = a; // 자동으로 된다!!
Integer f = b; // 자동으로 된다!!
}
valueOf()와 parseInt()의 차이
// to int i from Integer ii
int i = ii.intValue();
// to Integer ii from int i
Integer ii = new Integer( i );
※ 정수로 파싱할 수 없는 String을 파라미터로 전달하면 에러
2. Interface Type
인터페이스를 만들게 되면 새로운 참조 자료형Reference Data Type을 만드는 것과 같다.
참고로 기존에 있는 자료형의 이름도 만들 수 있습니다(ex:Long).
그리고 인터페이스도 자료형이기 때문에 자료형으로써 자신을 구현한 객체의 주소를 가질 수 있습니다.
하지만 인터페이스에 정의된 메소드만 사용할 수 있음.
3. Array Type
배열은 기본형,참조형으로 만들 수 있다.
자료형에 대해 []를 선언함으로 배열을 지정할 수 있습니다.
참고로 배열형 변수 또한 배열의 주소를 가지고 있는 것이기 때문에 클래스형의 특징과 일치
같은 객체의 주소를 바라보게 만들면 동일한 배열을 가리키게 된다.
그리고 아래 코드의 마지막 라인처럼 [][]등으로 중첩 괄호를 사용하게 된다면 다중 배열로 사용할 수 있다.
public class ArrayType {
public static void main(String[] args) {
int [] i = new int[2];
Long [] l = new Long[2];
Object[][] o = null;
}
Author And Source
이 문제에 관하여(primitive / reference type), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@ha_jni/primitive-reference-type저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)