이 포스팅은 백기선님이 2020년 11월 진행하신 라이브 스터디과정을 토대로 작성되었습니다. 아래 URL에 들어가시면 다른 분들이 정리하신(그리고 제가 참고한) 자료들이 올라와 있습니다.
https://github.com/whiteship/live-study/issues/2
==========================================================
목표
자바의 프리미티브 타입, 변수 그리고 배열을 사용하는 방법을 익힙니다.
학습할 것
- 프리미티브 타입 종류와 값의 범위 그리고 기본 값
- 프리미티브 타입과 레퍼런스 타입
- 리터럴
- 변수 선언 및 초기화하는 방법
- 변수의 스코프와 라이프타임
- 타입 변환, 캐스팅 그리고 타입 프로모션
- 1차 및 2차 배열 선언하기
- 타입 추론, var
==========================================================
1. 프리미티브 타입 종류와 값의 범위 그리고 기본 값
프리미티브 타입?
- 기본자료형 or 원시자료형이라고 불림
- 값을 할당할 때 변수의 주소값에 값이 그대로 저장되는 데이터 타입
- 값이 할당되면 JVM Runtime Data Area의 stack영역에 값이 저장됨
종류
- byte, short, signed/unsigned int, signed/unsigned long, float, double, boolean, char
출처: https://velog.io/@jaden_94/2주차-항해일지
2. 프리미티브 타입과 레퍼런스 타입
레퍼런스 타입?
- 참조자료형 이라고 불림
- 값이 할당되면 JVM Runtime Data Area의 heap영역에 할당됨
- 프리미티브 타입은 변수를 선언할 때 메모리에 고정된 크기로 저장되고, 변수에 데이터 값 자체를 저장하지만 레퍼런스 타입은 변수를 선언할 때 크기가 정해져있지 않고 값에 할당된 heap의 주소가 저장되어 있음
종류
- class, interface, enum, array, String type
3. 리터럴
- 소스코드의 고정된 값(변하지 않는 값)
- 프로그래밍 상의 리터럴 == 상수
- 이러한 상수는 메소드 영역에 저장됨
- 자바의 리터럴 사용법: 변수 앞에 "final"을 붙이면 됨
int a = 10; //리터럴은 10
final int a = 10; //상수로 선언된 값
4. 변수 선언 및 초기화하는 방법
변수의 선언
- 변수를 선언한다 == 메모리에 데이터를 저장할 공간을 지정해준다
- 변수가 선언되면, 변수 타입에 따라 메모리에 용량이 할당됨
변수의 초기화
1) 명시적 초기화
//변수타입 변수명 = 초기화 값;
int a = 10;
2) 생성자 활용 초기화
// 1. 기본 생성자
Phone phone = new Phone();
phone.name = "iPhone 11";
phone.color = "purple";
// 2. 매개변수가 정해진 생성자가 정의되어 있을 경우
Phone phone = new Phone("iPhone 11", "purple");
5. 변수의 스코프와 라이프타임
변수의 스코프
- 변수가 존재할 수 있는 영역
- 스코프에 따라 클래스 변수, 인스턴스 변수, 지역 변수로 나뉨