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 |