본문 바로가기
Tech/Java

Java 참조 자료형(클래스, 인터페이스, 배역, 열겨 타입)

by Dog발자. 2020. 5. 23.
반응형

https://www.slideshare.net/javajigi/java-virtual-machine-call-stack-java-byte-code

 

 

- JAVA 참조 자료형

참조 자료형은 기본 자료형과 달리 Stack에 직접 값을 할 당하는것이 아니라 Stack에는 Heap의 주소를 참조하고 있고 실제 값은 Heap영역에 올린다. 이렇게 직접 값을 가지고 있지안고 주소를 가지고 있는 자료형을 참조 자료형 이라고한다.

 

참조 자료형은 특징은 다음과 같다.

  • new 키워드로 생성한 객체 
  • String 과 배열을 new 없이 객체를 생성할 수 없지만 참조 자료형에 속한다.
  • class, array. interface, Enummeration 을 참조 자료형 이라고한다.

<참조자료형 - Class Type>

public class ReClass {
	private int a = 100;

	public int getA() {
		return a;
	}

	public void setA(int a) {
		this.a = a;
	}
	
}
public class ReClassMain {
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		ReClass rc = new ReClass();
		System.out.println(rc.getA());
	}
}

rc 객체는 a라는 멤보변수를 가지고 있는 class type 참조 자료형이다.

 

< 참조자료형 - 인터페이스(Interface) Type>

 java interface는 보통 추상적 클래스로 만이 알고있습니다. 이또한 맞는말입니다. 그리고 참조 자료형이라고 해도 맞는 말입니다. 저도 그리 중요하지 안다고 생각해 아~ 자료형이라고도 할 수 있구나 하고 인지만 하고 있습니다. 사실 현업에서 자료형으로서 interface를 사용해보지 못하였습니다.

interface ReInter<T> {
	void number(T value);
}

< 참조자료형 - 배열(Array) Type >

배열 타입 참조 자료형은 말그대로 배열입니다. 배열의 객체는 실제 Stack에 값을 가지고 있지안고 Heap 영역의 주소를 가지고 있습니다. 배열 타입은 new 를 사용하여 객체를 생성가거나 생략하고 생성이 가능합니다.

 

public class ArrayType {
	int[] a = new int[3];
	char[] b = new char[4];
	// new 없이 
	int[] c = {1, 2};
	char[] d = {'a', 'b'};
}

 

< 참조자료형 - 열거(Wrapper) Type >

보통 Wrapper Class 라고 한다. 열거(감싸다) 타입은 말그대로 기본타입을 Class 형식으로 기본형 자료형을 감싼 형태를 말합니다.

기본형 Wrapper Class
byte Byte
short Short
int Int
long Long
float Float
double Double
char Char
boolean Boolean

 ※ 기본 자료형은 null 초기화 할 수 없지만 Wrapper Class는 null로 초기화 할 수 있습니다. 그렇게 때문에 Sql 작업에서null 이 필요하다면 getter에 Wrapper Class 종종 사용합니다.

 

public class MyClass {
	public static void main(String[] args) {
		Integer myInt = 5;
	    Double myDouble = 5.99;
	    Character myChar = 'A';
	    System.out.println(myInt);
	    System.out.println(myDouble);
	    System.out.println(myChar);
	    System.out.println(myInt.intValue());
	    System.out.println(myInt.doubleValue());
	    System.out.println(myDouble.doubleValue());
	    System.out.println(myChar.charValue());
	  }
}

< 참조자료형 - String Class Type >

보통 String 은 new 없이 기본 자료형처럼 써서 Stack 에 값이 직접 있다고 생각 할 수 있습니다. 하지만 String 은 참조 자료형이기때문에 Stack 에 직접 값을 가지고 있지 안습니다.

 

 

https://jktech.tistory.com/11

 

JVM 더 깊이 있게 알아보자

- JDK (Java Development Kit) JDK 는 단어 그대로 자바 개볼 도구 이다 그래서 개발자들의 개발을 도와주는 도구들을 포함하고 있다 그리고 JRE을 포함호고 있다. 하지만 개발자가 아닌 일반 사용자들은 �

jktech.tistory.com

 

반응형

댓글