좋은 메소드는 응징도와 결합도에 의해 정해진다.
참조형
스택영역에 있는 힙의 런타임 변수를 참조형 변수라고 한다.
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라고 할 때, T가 n개 연속하여 할당되어 구성된 자료구조.
· 초기값이 있는 경우
→ 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를 입력 해줘야 한다.)
'JAVA' 카테고리의 다른 글
[Java] 2차 배열 평균 구하기 (0) | 2022.05.23 |
---|---|
[Java] 배열 역순으로 저장하기. (0) | 2022.05.23 |
[Java] 1~n의 합 구하기 (0) | 2022.05.23 |
[Java] 프로세스 메모리맵, 메소드, 스코프 (0) | 2022.05.23 |
[Java] 2중 for문으로 구구단 만들기 (0) | 2022.05.22 |