리터럴
- 소스코드 내에서 직접 입력된 값을 리터럴이라고 부른다.
- 사실 리터럴은 상수(constant)와 같은 프로그램에서 상수를 “값을 한 번 저장하면 변경할 수 없는 변수”로 정의하기 때문에 이와 구분하기 위해 리터럴이라는 용어를 사용
변수 값 읽기
자바에서는 초기화되지 않은 변수는 읽을 수가 없다.
(C는 IDE에서 워닝은 띄워주지만 읽을 수는 있지 않나?)
기본(원시: primitive) 데이터 타입
- 원시 데이터 타입
- 정수
- byte → 1 byte
- char → 2 byte (c에서의 char과 다름에 주의)
- short → 2 byte
- int → 4 byte
- long → 8 byte
- 실수
- float → 4 byte
- double → 8 byte
- 논리
- boolean → 1 byte
- 정수
- 특징
- 정수 타입의 경우, 저장할 수 있는 값의 범위를 초과할 시 최소값부터 다시 반복 저장 ex> byte 타입에 128 대입 시 -128 저장됨
- char 타입이 2바이트인 이유 → 자바에서는 모든 문자를 유니코드(Unicode)로 처리
- String 타입은 기본 타입이 아니다.
- String은 클래스 타입
- 따라서 String 변수는 참조 변수 → 문자열이 변수에 직접 저장되는 것이 아니라, String 객체가 생성되고 String 변수는 String 객체의 주소를 참조
- short 타입은 C언어와의 호환을 위해 사용됨, 자바에서는 잘 사용되지 않음
- int 타입은 자바에서 정수 연산을 하기 위한 기본 타입 → byte 타입 + short 타입을 해도 int 타입으로 변환 후 연산되고 결과도 int 타입 → 따라서 int로 선언한 것과 성능 차이가 거의 없다.
- 타입 변환
- 자동(묵시적) 타입 변환
- 작은 크기를 가지는 타입이 큰 크기를 가지는 타입에 저장될 때, 큰 크기 타입으로 자동 변환됨
- byte < short < int < long < float < double
- float가 long보다 표현 값의 범위가 더 커서 더 큰 크기 타입인 점을 주의
- 강제(명시적) 타입 변환
- 캐스팅 연산자 ()를 사용하여 강제 타입 변환 가능
- 주의 사항
- float는 부호 1비트 + 지수 8비트 + 가수 23비트 로 이루어져있음 → int값은 32비트이기 때문에 모든 int값을 정밀도 손실 없이 실수 타입으로 안전하게 변환시키기 위해서는 가수부가 52비트인 double 타입을 사용해야한다.
- 자동(묵시적) 타입 변환
'프로그래밍 > Java' 카테고리의 다른 글
Lists.newArrayList vs new ArrayList<>() (0) | 2022.03.25 |
---|---|
자바 메서드 파라미터 개수를 가변으로 받고 싶을 때 사용 가능한 문법 (0) | 2022.02.25 |
1. 자바의 특징 (0) | 2021.12.16 |
0. 자바 학습 시작 (0) | 2021.12.16 |