Mon, 25th Oct 2021

1. 참조 타입

배열, 열거, 클래스, 인터페이스

기본타입과 참조타입 / stack과 heap
참조변수의 ==, != 연산

2. null / NullPointerException

: 실무 시 가장 많이 접하는 예외코드

-> 변수가 힙 영역의 객체를 참조하지 않는다 : null

-> 실수로 null 값을 가지고 있는 참조변수 사용시 해당 예외 발생

 

3. String 타입

: 문자열 리터럴이 동일하다면 같은 String 객체 공유

String 타입

4. new 연산자를 이용한 String 객체 생성

: 힙 영역에 새로운 String 객체 생성

※ name1의 실제 주소값 불러오기 -> System.identityHashCode(name1) 

 

5. 배열 (Array)

같은 타입의 데이터를 연속된 공간에 나열시키고, 각 데이터에 인덱스(index)를 부여해 놓은 자료구조

배열의 index는 0부터 시작

배열은 같은 타입의 데이터만 저장가능

한번 생성된 배열은 길이를 늘리거나 줄일 수 없음

-> 중복된 변수 선언을 줄임, 반복문을 이용해서 요소들을 쉽게 처리 가능

 

6. 값 목록으로 배열 생성

데이터타입[] 변수 = { 값0, 값1, 값2, ... };

ex) int[] scores = { 90, 56, 78, 98, ... };

 

※ 배열 변수를 미리 선언한 후, 값 목록들이 나중에 결정되는 상황

데이터타입[] 변수;

변수 = new 타입[] { 값0, 값1, 값2, 값3, ... };

ex) int[] scores = null; //int[] scores; 도 가능

scores = new int[] { 34, 67, 84, 88, 52 };

or

데이터타입[] 변수 = new 타입[] { 값0, 값1, 값2, 값3, ... };

ex) int[] scores = new int[] { 34, 67, 84, 88, 52 };

 

7. new 연산자로 배열 생성 : 값의 목록을 가지고 있지 않지만, 향후 값들을 저장할 배열을 미리 만드는 경우

데이터타입[] 변수 = new 데이터타입[길이];

ex) int[] intArray = new int[3]; //배열만 미리 생성

intArray[0] = 33; //향후 배열에 새로운 값 저장(대입)

intArray[1] = 57;

intArray[2] = 65;

 

8. 배열의 길이

배열변수.length

※ 배열의 마지막 인덱스는 길이보다 1 적다. : 배열의 인덱스는 0부터 시작하고 배열의 길이는 1부터 시작

ex) int[] intArray = { 10, 20. 30, 40 };

                //index : 0   1   2   3

int num = intArray.length; //4

 

※ int 변수 = Integer.parseInt("문자열") or Integer.parseInt(String 타입의 변수명)

-> String 타입의 변수/문자열을 Int  타입으로 변환하는 메소드

 

9. 다차원 배열

int[][] scores = new int[2][3];

-> 2X3행렬

(0,0) (0,1) (0,2)

(1,0) (1,1) (1,2)

다차원 배열

10. 배열 복사 메소드

System.arraycopy(원본배열, 원본배열에서 복사할 시작 인덱스, 새 배열, 새 배열에서 붙여넣을 시작 인덱스, 길이)

ex) System.arraycopy(arr1, 0, arr2, 0, arr1.length)

 

11. 향상된 for문

for(②타입 변수 : ①배열) {

③실행문

}

: ①배열에서 가져올 첫 번째 값이 존재하는지 평가 -> 가져올 값이 존재하면 해당 값을 ②변수에 저장 -> ③실행문 실행 -> 다시 ①배열에서 가져올 두 번째 값이 존재하는지 평가... 반복 후 다음 가져올 항목이 없으면 for문 종료

ex)

int[] scores = { 95,  71, 84, 93, 87 };

 

for(int score : scores) {

sum = sum + score;

}

System.out.println("점수 총합: " + sum);

 

12. 열거

: 한정된 값만을 갖는 데이터 타입

: 한정된 값은 열거 상수 (Enumeration Constant)로 정의

열거타입 변수 = 열거타입.열거상수;

ex) Week today = Week.TUESDAY;

-> 열거상수는 메소드 영역에서 자신의 열거객체(힙 영역)를 참조한다.

today == Week.TUESDAY  //true

 

13. 열거 객체 메소드

리턴타입 메소드(매개변수) 설명
String name() 열거 객체의 문자열을 리턴
int ordinal() 열거 객체의 순번(0부터 시작)을 리턴
int compareTo() 열거 객체의 순번을 비교해서 순번차를 리턴
열거타입 valueOf(String name) 주어진 문자열의 열거 객체를 리턴
열거배열 values() 모든 열거 객체들을 배열로 리턴

 

+ Recent posts