[이것이 자바다] 05. 참조 타입

SeonJin·2023년 8월 29일
0

Java

목록 보기
3/11
post-custom-banner

📚 이것이 자바다 [개정판]


sec01. 데이터 타입 분류

  • 자바의 데이터 타입은 기본 타입과 참조 타입으로 분류된다
  • 참조 타입(reference type)
    1. 배열타입
    2. 열거타입
    3. 클래스
    4. 인터페이스

✍🏻 기본 타입 변수 vs. 참조 타입 변수
[기본 타입 변수] int age = 25; , double price = 100.5;
선언된 변수는 값 자체를 저장하고 있다

[참조 타입 변수] String name = "자바"; String job = "programmer";
선언된 변수는 객체가 생성된 메모리 번지를 저장한다


sec02. 메모리 사용 영역

  • java 명령어로 JVM이 구동되면 운영체제에서 할당받은 메모리를 사용
메소드 영역클래스별로 상수, 정적 필드, 메소드 코드, 생성자 코드 등이 저장
힙 영역new 연산자를 통해 생성한 객체 저장, 메소드 영역과 스택 영역의 상수와 변수를 통해 객체의 번지를 참조한다.런타임 시 동적으로 할당하여 사용하는 메모리 영역
스택 영역메소드를 호출할 때 저장되고, 호출이 끝날 때 제거

sec05. 문자열(String) 타입


sec06. 배열(Array) 타입

1. 배열

배열은 같은 타입의 값만 관리한다

  • 배열의 길이는 늘리거나 줄일 수 없다
  • 배열을 생성한 경우 항목은 모두 해당 타입의 기본값으로 초기화된다
// 배열 변수 선언
타입[] 변수명;
타입 변수명[];

// 배열 생성
타입[] 변수명 = {0,1,2, ...};
타입[] 변수명 = new 타입[길이];

// 😨 배열 변수를 미리 선언한 후에 값 목록을 변수에 대입할 수 없다
타입[] 변수명;
변수명 = {0,1,2, ...};

2. 다차원 배열

// 배열 변수 선언
타입[][] 변수명;
타입 변수명[][];
타입[] 변수명[];

// 배열 생성
타입[] 변수명 = {
		{0,1,2, ...},
		{0,1,2, ...},
		{0,1,2, ...}
}
타입[][] 변수명 = new 타입[1차원 길이][2차원 길이];

스택 메모리에 1차원의 주소 저장, 1차원 인덱스에 2차원 주소 저장

3. 객체를 참조하는 배열

  • 참조 타입 배열은 각 항목에 객체의 번지를 저장한다
String[] strArr = new String[4];
strArr[0] = "Java";
strArr[1] = "Java";
strArr[2] = "Python";
strArr[3] = new String("Java");


sec11. main() 메소드의 String[] args 매개변수 용도

  • 윈도우의 명령 프롬프트 또는 맥OS의 터미널에서 프로그램을 실행할 때 요구하는 값이 있을 수 있다
  • 예를 들어 두 수를 입력받아 덧셈을 수행하는 Sum 프로그램을 실행해보자.
    java Sum 10 20
  • 공백으로 구분된 10과 20은 문자열로 취급되며 Stirng[] 배열의 항목 값으로 구성된다
    public static void main(String[] args) {...}
  • main() 메소드가 호출될 때 String배열인 args 변수에 배열 항목 값으로 저장되어 매개값으로 사용된다

sec12. 열거(Enum) 타입

몇 가지로 한정된 값을 갖는 데이터 (계절, 요일 등)

  • 한정된 값을 갖는 타입을 의미한다
  • 모두 대문자로 작성하며, 여러 단어일 경우 언더바(_)로 연결하는 것이 관례
public enum Week {
	MONDAY,
	TUESDAY,
	WEDNESDAY,
	THURSDAY,
	FRIDAY,
	SATURDAY,
	SUNDAY
}
Week today; // 하나의 데이터 타입이므로 변수를 선언하고 사용해야 한다
Week today = Week.SUNDAY;
Week birthday = null; // 참조 타입이므로 null 대입이 가능하다
profile
study notebook
post-custom-banner

0개의 댓글