스터디할래 / 자바 스터디 과제 #2 자바 데이터 타입, 변수 그리고 배열
스터디할래 / 자바 스터디 과제 #2 자바 데이터 타입, 변수 그리고 배열
Prologue
과제 키워드
- 프리미티브 타입 종류와 값의 범위 그리고 기본 값
- 프리미티브 타입과 레퍼런스 타입
- 리터럴
- 변수 선언 및 초기화하는 방법
- 변수의 스코프와 라이프타임
- 타입 변환, 캐스팅 그리고 타입 프로모션
- 1차 및 2차 배열 선언하기
- 타입 추론, var
프리미티브 타입 종류와 값의 범위 그리고 기본 값
참거짓, 문자, 숫자, 소수점의 형태가 있음
boolean
true
혹은false
1byte
(가장 작은 크기)(2^8)
char
유니코드 문자 1글자의 크기인
2byte
(2^16)
byte
1byte
(2^8)
short
2byte
(2^16)
int
4byte
(2^32) = 2^10 * 2^10 * 2^10 * 2 = 1024 * 1024 * 1024 * 2 = 약 2 * 10^9 = 21억
참고로 int의 양수의 최대 값에서
+1
을 하면 음수의 최솟값이 나온다.
2147483647 + 1 = -2147483648
long
8byte
2^64
약 900경
float
4byte
실수를 부동소수점(floating-point
)으로 저장1.4*(10^-45) ~ 3.4*(10^38)
(-
취해 음수도 가능)
double
8byte
4.9*(10^-324) ~ 1.8*(10^308)
프리미티브 타입과 레퍼런스 타입
프리미티브 타입의 특징
프리미티브 타입은 실제 값을 저장함
레퍼런스 타입의 특징
값이 저장되어 있는 메모리 주소(4byte
)를 저장함
리터럴
상수의 또 다른 이름, 변수나 상수에서 값 그 자체를 의미하는 것.
실무에서 많이 쓰는 '하드코딩' 이라는 말은 상황에 따라 바뀌는 변수로 만든 것이 아니라 리터럴로 표현했다는 것을 의미한다.
int a = 100 // 100이 리터럴
final int A = 200 // 200이 리터럴
변수 선언 및 초기화 방법
int a; // 변수 선언
int b = 0; // 선언 및 초기화
변수의 스코프와 라이프타임
일반적으로 블록 스코프{}
를 따른다.
단, static으로 선언되면 프로그램이 끝날 때까지 메모리에 상주한다.
메모리영역
추가로 변수들은 메모리 영역 중 Stack
영역에 저장된다.
단, Object
의 경우는 내용은 Heap
에 저장되며, 주소 값을 가진 참조는 Stack
영역에 저장된다.
참조 : https://yaboong.github.io/java/2018/05/26/java-memory-management/
타입 변환과 캐스팅
타입 캐스팅은 두가지 종류가 있다.
- 자신의 표현 범위를 모두 포함한 데이터 타입으로 변환 (타입 프로모션)
- 자신의 표현 범위를 모두 포함하지 못한 데이터 타입으로 변환 (타입 캐스팅)
여기서 표현 범위란, 정수 실수 등을 포함하는 개념이기 때문에 단순히 바이트 크기가 아니다.
1차 및 2차 배열 선언하기
- 1차원 배열
- Stack 영역에 참조를 두고, Heap 영역에 배열 데이터를 보관 (오브젝트와 같다.)
- 2차원 배열
- Stack 영역에 참조를 두고, Stack 영역이 참조하는 Heap 영역에도 다른 Heap을 가리키는 주소값을 참조하는 값이 들어있음. 그리고 실제 값은 또 Heap의 다른 위치에 저장됨.
타입 추론, var
- 공식 문서의 설명 내용
- 자바 10 이상부터
type inference
기능 추가
실질적으로 var
갖다쓰라고 나왔다기보다는 Map
이나 List
쓸 때 문법 깔끔하게 쓰라고 나온듯 함.
Author And Source
이 문제에 관하여(스터디할래 / 자바 스터디 과제 #2 자바 데이터 타입, 변수 그리고 배열), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@jakeseo_me/스터디할래-자바-스터디-과제-2-자바-데이터-타입-변수-그리고-배열저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)