JAVA

[Java] 참조형, String, Array

SangRok Jung 2022. 5. 23. 10:37
반응형

 

 

 


좋은 메소드는 응징도와 결합도에 의해 정해진다.

 

 

 

 

 

참조형


스택영역에 있는 힙의 런타임 변수를 참조형 변수라고 한다.

runtime binding : 실행시간에 무언가를 한다.

 

- heap

프로그래머가 할당하면 해제는 Java가 처리한다. (garbage collector)

메모리를 넉넉하게 잡는 메카니즘이 잘 되어 있다.

※ data block 은 읽고 쓰는 용도다.

 

 

 

 

 

 

 

string


string : 문자를 저장하기 위한 데이터 타입. (참조형)

※ 컴파일 타임때 변수 값을 모른다? → runtime binding

new : heap에 데이터를 저장시킨다.

heap area 에 데이터를 저장하기 위해서는 new를 써야한다.

new 뒤에 나오는 형식과 변수 데이터 만큼 크기를 잡는다. new string 에서 string 만큼 잡는다. (string이 들어갈 수 있는 만큼 잡는다.)

new string("abc") = 힙에 "abc" 스트링 만큼 데이터를 저장해라.

파라미터를 통해서 기본값을 정한다.

모든 참조변수의 크기는 heap area에 저장한 데이터의 크기와 상관 없이 동일하다.

String a = new String ("abc")

String a = "abc"; ← sugar code

위 둘의 코드는 같은 코드다 (sugar code)

String a = new String ("abc");

String b = new String ("abc");

위 둘의 코드 a와b는 다르다.

즉 stack area의 저장한 참조값을 비교하는것이고 a의 주소와 b의 주소가 다르기 때문에 a와 b는 다른것이다.

String a = new String ("abc");

String b = new String ("abc");

a = b;

위 코드에서 a의 주소는 b의 주소로 대입되어 기존의 heap 영역의 a의 데이터는 garbage collector가 데이터를 삭제 시킨다.

+

String a = new String ("abc");

String b = new String ("abc");

a = b;

a == b;

b의 주소가 a에 대입되었기 때문에 a와 b는 같다.

 

 

 

 

 

 

배열(Array)


정의 : 어떤 Data Type을 T라고 할 때, Tn개 연속하여 할당되어 구성된 자료구조.

· 초기값이 있는 경우

→ int[] a = new int[] {11, 22, 33 ,44 ,55}

참조형 int[] a에 ~를 넣어라

· 초기값이 없는 경우

→ int[] a;

a = new int[] {11, 22, 33 ,44 ,55}

참조형 int[] a에 ~를 넣어라

→ int[] a = new int[5] {11, 22, 33 ,44 ,55}

Error (JAVA해당, c++은 5를 입력 해줘야 한다.)

반응형