Backend/Do it 자바 완전 정복 강의

02장 자료형

solog 2025. 1. 10. 23:59

2-1. 자료형의 개요

<자료형의 의미>

- 저장할 수 있는 값의 형태를 지정

- Java 프로그램의 모든 변수/상수는 자료형 선언 후 사용가능

- 정수(int), 실수(double), 문자열(string) => 3가지는 꼭 기억

- 선언은 딱 한번만 하면 된다.

 

Tip : Java의 모든 변수/상수는 자료형이 먼저 선언되어야 함

 

<자료형의 사용방법>

- a => 공간의 이름

- int a 는 정수만 저장가능한 공간이 정의된다.

- 선언과 값의 대입을 분리할 수 있다. (Java는 선언하지 않으면 공간만 생성되고, 텅 빈 값이 들어간다.)

 

<변수/상수/메서드 이름의 선정 규칙>

- 변수/상수/메서드의 이름은 자유롭게 선택 가능

- 단, 선정규칙은 준수하여야 함

 

- 변수 = 변할 수 있는 수

- 상수 = 항상 똑같은 수 (고정된 수)

 

- 권고사항 : 그래도 꼭 지켜주는 것이 좋다. (가독성 향상을 위해)

- ex. double main; => 가능하다. 메서드 이름과 변수이름은 동일해도 무관하다. (메서드 호출과 변수를 사용하는 방법이 다르기 때문)

- 상수는 값을 정의하면 값을 변경할 수 없다. => final double PI;

 

 

 

 

 

<변수의 생존기간>

- 변수는 자신인 선언된 열린 중괄호('{')의 쌍이 되는 닫힌 중괄호 ('}') 안에서만 사용 가능

- 메모리에 변수가 살아있는 기간

- JVM에서 변수를 언제 삭제시키느냐를 아는 것

 

Tip : 실제 단순히 중괄호({ }) 만을 삽입하는 경우는 드물며 클래스/제어문에 포함된 { } 내에서 변수를 선언하여 사용

 

<자료형의 종류 (기본자료형 vs 참조자료형)>

 

- 기본자료형 외의 모든 것들은 참조자료형이라고 생각하면 된다.

- 메모리의 구조 안 영역의 이름을 꼭 외우자.

- 기본자료형은 stack에 저장, 참조자료형은 heap에 저장 => 참조는 가리킨다는 의미, 실제 값을 가리킨다는 의미.

- 모든 변수는 stack에 저장 => 참조자료형의 값은 stack에 저장되는게 아니라 heap에 저장이 된다. 

 

2-2. 자료형 - 기본자료형1 (불리언, 정수, 실수)

 

- 기본자료형 및 자료크기는 암기하자 ★

- float은 지수와 가수로 표현한다. => 같은 크기로 넓은 범위를 저장할 수 있다.

- int도 4byte, float도 4byte가 동일한데 값의 범위는 float이 더 넓다. (표현하는 가지수는 동일하다.)

- int와 float의 차이점은 int는 값이 1씩 차이나지만, float은 값의 차이가 더 크다.

- short는 정수를 저장할 수 있고, char은 문자를 저장할 수 있다. (값의 범위가 다르다.)

- 정수 4가지, 실수 2가지인 이유 -> 각기 다른 크기의 값에 따라 담을 수 있는 그릇을 많이 준비해둔 것 (메모리 낭비를 줄이기 위해)

 

Tip 실수의 정밀도 (IEE-754 표준)

: float은 소수점 대략 7자리 정도의 정밀도

: double은 소수점 대략 15자리 정도의 정밀

 

- 자료형의 크기가 작다 크다라는 것의 의미는 값의 범위가 넓다 좁다라는 의미이다. 즉, long 보다 float이 더 크다.

 

2-3. 자료형-기본자료형2 (문자,리터럴,타입변환,자료형연산)

 

<진법의 표현>

1. 10진수

2. 2진수 : 0b + 정수

3. 8진수 : 0 + 정수 

4. 16진수 : 0x + 정수

 

<문자의 메모리 저장 방식 = 유니코드표>

- 기본자료형은 스택에 저장되고 값으로 저장된다.

- 메모리에는 문자가아니라, 숫자의 형태로 들어가야한다. 

- 문자에 대한 숫자의 매핑테이블이 유니코드표이다. 

- '\u + 16진수' = 유니코드 이다. 

 

 

- 왼쪽과 오른쪽의 등호의 값의 타입이 동일해야한다. ★

- 자동타입변환(업캐스팅)은 컴파일러가 자동으로 바꿔주는 것이고, 수동타입변환(다운캐스팅)은 내가 수동으로 바꿔주야하는 것을 의미한다.

- 작은데이터 값은 큰 그릇에 넣는 것은 아무문제가 되지 않는다. => 업캐스팅 (자동으로 컴파일러가 붙여준다.)

- int보다 작은 자료형인 byte/short에 대입되는 int는 byte 또는 short로 인식된다.

 

<기본 자료형 간의 타입변환>

 

- byte c = (byte) 128은  byte의 값이 범위가 -128 ~ 127이므로 범위에서 벗어나므로 위의 원형을 참고하면 127보가 128이 한칸 차이나므로 127에서 한칸 넘어가면 -128이 되서 결과 값이 -128이 나오는 것이다. 즉, 129하면 -127이 나온다.

 

- 다른 타입끼리의 연산의 경우 큰 자료형으로 결과가 매핑된다.

- 같은 타입이든 다른 타입끼리의 연산이든 int보다 작은 값의 자료형끼리 연산하면 결과의 자료형은 int 이다. (결과의 최소단위는 int 이다.)

- ★int b = 8 / 5 => int / int 이므로 int 값이 나올것이다. 실제 결과값은 1.6이나 int의 결과값이므로 값은 1이 나오는 것이다.

- byte value = 9 처럼 저장할 수 있는 값의 범위값을 byte나 short 에 입력하는 경우 정수는 각각 byte나  short로 캐스팅된다. 

 

 

https://www.youtube.com/@doit4312/playlists

 

Do it 자바 완전 정복 동영상 강의

Do it 자바 완전 정복 동영상 강의입니다.

www.youtube.com

강의를 참고하여 작성하였습니다.

'Backend > Do it 자바 완전 정복 강의' 카테고리의 다른 글

06장 클래스와 객체  (0) 2025.01.17
05장 참조 자료형  (0) 2025.01.14
04 제어문과 제어키워드  (0) 2025.01.14
03장 연산자  (0) 2025.01.14
01장 자바 시작하기  (0) 2025.01.10