-
2. 자바 데이터 타입, 변수 그리고 배열Java 2020. 11. 25. 14:33
목표
자바의 프리미티브 타입, 변수 그리고 배열을 사용하는 방법을 익힙니다.
학습할 것
- 프리미티브 타입 종류와 값의 범위 그리고 기본 값
- 프리미티브 타입과 레퍼런스 타입
- 리터럴
- 변수 선언 및 초기화하는 방법
- 변수의 스코프와 라이프타임
- 타입 변환, 캐스팅 그리고 타입 프로모션
- 1차 및 2차 배열 선언하기
- 타입 추론, var
1. 프리미티브 타입 종류와 값의 범위 그리고 기본 값
- 실제 값이 저장되는 공간으로 Stack 메모리 공간에 저장되며 범위를 벗어날 경우 컴파일 에러가 발생한다.
- 객체가 타입이 아니고, 기본값이 있어서 Null 이 존재하지 않는다.
- 기본형 타입에 Null 을 넣고 싶다면 Wrapper Class 를 사용해야 한다.
Type Default value Size Range of Values Integer byte 0 1 byte -2^7 ~ 2^7-1 (-128 ~ 127) short 0 2 byte -2^15 ~ 2^15-1 (-32768 ~ 32767) int (default) 0 4 byte -2^31 ~ 2^31-1 (-2147483648 ~ 2147483647) long 0 8 byte -2^63 ~ 2^63-1 (-9223372036854775808 ~ 9223372036854775807) Floating-Point float 0.0 4 byte 소수점 7 자리까지 double (default) 0.0 8 byte 소수점 16 자리까지 Char char \u0000 2 byte (Unicode) 0 ~ 65,535 Bool boolean false 1 byte true, false
2. 프리미티브 타입과 레퍼런스 타입
- 기본형 타입을 제외한 타입들이 모두 레퍼런스 타입이다.
- 프리미티브 타입은 변수의 실제값을 메모리에 직접 저장한다.
- 레퍼런스 타입은 객체의 주소를 저장한다. (GC 의 관리 대상)
- ex) Class, Interface, Array, enum, Integer, String, etc ...
- 프리미티브 타입과 달리 스택영역에는 변수의 이름만 저장하고 객체의 주소를 힙영역에 저장하여 포인터로 가르킨다.
3. 리터럴
- 데이터 그 자체를 의미한다. 변수에 넣는 변하지 않는 데이터를 의미한다.
- 프로그램에서 직접 표현한 값이다.
- 소스 코드의 고정된 값을 대표하는 용어이다.
- 정수, 실수, 문자, 논리, 문자열 리터럴이 존재한다.
4. 변수 선언 및 초기화하는 방법
- 변수란 값을 저장할 수 있는 메모리 공간에 붙여진 이름이다.
- 변수를 선언하면 메모리 공간이 할당되고 할당된 메모리 공간에 이름이 붙는다.
- 변수를 선언하고 값을 저장하는 것을 변수 초기화라고 한다.
- 변수, 배열을 선언하거나 메모리를 할당하면 쓰레기 값이 다시 사용되지 않도록 반드시 초기화해야 한다.
5. 변수의 스코프와 라이프타임
- 인스턴스 변수
- Scope: throughout the class except in static methods
- Lifetime: until the object stays in memory
- 클래스 (스태틱) 변수
- Scope: throughout the class
- Lifetime: until the end of the program or as long as the class is loaded in memory
- 지역 (로컬) 변수
- Scope: within the block in which it is declared
- Lifetime: until the control leaves the block in which it is declared
6. 타입변환, 캐스팅 그리고 타입 프로모션
- 타입캐스팅이란 프리미티브 타입으로 선언한 변수메모리에 다른 유형의 데이터를 할당하는 경우를 말한다.
- 타입 프로모션이란 크기가 더 작은 자료형을 더 큰 자료형에 대입할 때, 자동으로 작은 자료형이 큰 자료형으로 변환되는 현상이다.
- 클래스에도 타입 변환이 존재한다.
- 기본적으로 클래스 타입들은 변환이 불가능하지만, 다형성이라는 성질을 통해서 타입 변환이 가능하다.
7. 1차 및 2차 배열 선언하기
- 변수는 하나의 데이터를 저장하지만, 배열은 여러개의 데이터들을 인덱스 구조에 저장한다.
- 배열의 길이는 한 번 생성하면 줄이거나 늘일 수 없고 같은 타입들만이 배열의 원소로 사용된다.
int[] a = { 1, 2, 3 }; int[][] b = {{1, 2, 3}, {3, 4, 5}, {5, 6, 7}};
8. 타입 추론, var
- 타입 추론이란 타입이 안 정해진 변수 타입을 컴파일러가 유추하는 기능이다.
- var 는 자바 10부터 추가되었다.
- 지역변수이면서 선언과 동시에 초기화가 반드시 되어야한다.
var msg = "Hello, World !";
※ 출처
velog.io/@roeniss/자바-기초지식-정리#2주차---데이터-타입
www.notion.so/2-00ffb2aeb41d450aa446675b8a9e91d5
* 스터디
'Java' 카테고리의 다른 글
4. 제어문 (0) 2020.12.04 3. 연산자 (0) 2020.11.28 1. JVM은 무엇이며 자바 코드는 어떻게 실행하는 것인가 (0) 2020.11.11 BufferedReader , BufferedWriter (0) 2020.08.28 java - 14 ) 컬렉션 프레임워크 (2) 2020.08.28