[Study] Java | 05 참조 타입

DAVEMINS·2023년 10월 17일
0

Java

목록 보기
5/15
post-thumbnail

05-1 참조 타입과 참조 변수

  • 기본 타입과 참조 타입

참조타입 : 객체의 번지를 참조하는 타입

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

메모리의 번지를 변수 안에 저장

String 클래스 변수 = 참조 타입 변수

  • 메모리 사용 영역

메소드 영역 : 정적 필드 / 상수, 메소드 코드, 생성자 코드

힙 영역 : 객체 배열

JVM 스택 : 프레임 (로컬 변수 스택)

  • 참조 변수의 ==, != 연산

동일한 번지 값을 갖고 있는지 알아볼 때 사용됩니다.

  • null과 NullPointerException

참조 타입 변수는 힙 영역의 객체를 참조하지 않는다는 뜻으로 null 값을 가질 수 있습니다.

NullPointerException은 참조 변수를 잘 못 사용하면 발생합니다.

  • String 타입

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

new 연산자 : 힙 영역에 새로운 객체를 만들 때 사용하는 연산자 (객체 생성 연산자)

String name1 = new String("김민석");
String name2 = new String("김민석");

== 이 쓰일 때와 .equals()이 쓰일 때가 다르다.

05-2 배열

  • 배열이란?

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

  • 배열 선언
int [] intArray;
int intArray[];
  • 배열 생성

값 목록으로 배열 생성

String[] names = {"Dave","Sam", "Kim"};
String[] names = null;
names = new String[] {"Dave","Sam", "Kim"};

new 연산자로 배열 생성

int[] intArray = new int[5];
  • 배열 길이
intArray.length;
  • 명령 라인 입력

String[] args가 매개 변수를 통해서 명령 라인에서 입력된 데이터 수, 입력된 테이터를 알 수 있게 된다.

  • 다차원 배열
int[][] scores = new int[2][3];
  • 객체를 참조하는 배열

클래스, 인터페이스와 같은 참조 타입 배열은 각 항목에 객체의 번지를 가지고 있습니다.

  • 배열 복사
System.arraycopy(arr1, 0, arr2, 0, arr1.length);
  • 향상된 for문
int[] scores = {95, 71, 84, 93};
for (int score :scores) {
	sum = sum + score;
}

05-3 열거 타입

  • 열거타입 선언

한정된 값인 열거 상속 중에서 하나의 상수를 저장하는 타입입니다.

public enum Week {MON, TUE, WED, THU, FRI, SAT, SUN};

0개의 댓글