참조타입과 참조변수
참조 타입의 반대? 인 경우라고 생각할 수 있는 타입은 기본 타입이다 기본 타입은 정수, 실수, 문자, 논리 리터럴을 저장한다 참조 타입은 객체의 번지를 참조하는 타입이고 배열, 열거, 클래스, 인터페이스등이 존재한다
참조 타입 변수와 기본 타입 변수의 차이점
1
2
3
4
int age = 25;
double price = 1000.50;
String name = "minnnning";
String hobby = "game";
참조 타입은 말그대로 주소를 저장하고 해당 주소를 참조하는 형식이다 기본 타입은 값이 그대로 저장되어 있다
참조 타입 변수에서 ==, !=
참조 타입 변수에서 ==와 !=는 동일 객체를 참조하는지 알아볼때 사용한다 -> 번지 값을 비교한다
String 타입에서 문자열
String name1 = “minnnning”;
String name2 = “minnnning”;
name1과 name2는 같은 string 객체를 공유한다 == 연산시 true
저장하는 값이 다르다면 다른 객체를 가리키므로 false를 출력한다
따라서 값을 비교 할려면 str.equals(str)을 통해서 값을 비교해야 한다
배열
배열은 연속된 공간에 나열하고 각 데이터에 인덱스를 부여한 자료구조
같은 타입의 데이터만 저장할 수 있고 한번 생성된 배열의 크기를 조절할 수 없다
배열 선언
- 배열 변수 선언
int[] array;또는int array[];롤 배열을 선언한다
- 배열 생성
- 값으로 생성
타입[] 변수 = {값1,값2,값3...}- 배열이 생성된 뒤에 값 목록으로 배열 생성 불가능
int[] arr; arr = {1,2,3};=> 컴파일에러
- 배열이 생성된 뒤에 값 목록으로 배열 생성 불가능
- new연산자 이용
int[] arr =new int[20];- 값 목록으로 배열 값 저장시 new이용
arr = new int[]{1,2,3}; - new를 이용하면 배열은 자동적으로 기본값으로 초기화된다
- 값 목록으로 배열 값 저장시 new이용
- 값으로 생성
다차원 배열
int[][] arr = new int[2][3]; 2차원 배열로 2행 3열이다
1차원 배열이 다시 1차원 배열을 참조하는 구조
arr.length //2
arr[0].length // 3
배열 복사
for 문을 이용해서 하나씩 복사하는 방법과 System.arraycopy(Object src, int srcPos, Object dest, int destPos, int length)
ex) System.arraycopy(oldArray, 0 , newArray, 0, oldArray.length);
열거 타입
데이터중에서 한정된 값만가질 수 있는 타입이다
1
2
3
4
5
6
7
8
9
10
11
public enum Week {
mon,
tue,
wed,
thu,
fri,
sat,
sun
}
Week today;
today = Week.fri;