[Java의 정석]Chapter2.변수(04~06)

Hello_Wendy·2022년 4월 2일
1

자바의 정석

목록 보기
6/61
post-thumbnail

Chapter 2. 변수

04. 변수의 타입

  • 변수에 저장할 값의 종류에 따라 변수의 타입을 선택하여 선언
  • 변수의 타입은 참조형과 8개의 기본형이 있지만, 자주 쓰이는 타입 소개
분류변수의 타입설명
숫자int정수(integer)를 저장하기 위한 타입
long정수(integer)타입, 20억이 넘을 때
float실수(floating-point number)타입 / float는 오차 없이 7자리
double실수타입 / 15자리
문자char문자(character)를 저장하기 위한 타입
String여러문자(문자열,string)를 저장하기 위한 타입
  • 이 중 4개의 타입은 기억
int x = 100; //정수(integer)를 저장할 변수의 타입
douvle pi = 3.14; //실수를 저장할 변수의 타입
char ch = 'a'; //문자(1개)를 저장할 변수의 타입
String str = "abc"; //여러문자(0~n개)를 저장할 변수의 타입

05. 상수와 리터럴

상수

  • 상수(constant)는 변수와 마찬가지고 '값을 저장할 수 있는 공간'이지만, 변수와 달리 한번 값을 저장하면 다른 값으로 변경 불가
  • 상수를 선언하는 방법은 변수와 동일하며, 단지 변수의 타입 앞에 키워드 final을 붙임
final int MAX_VALUE; //정수형 상수 MAX_VALUE를 선언
MAX_VALUE = 100; //상수에 처음으로 값 저장
MAX_VELUE = 200; //에러. 상수에 저장된 값을 변경 불가

상수의 이름은 모두 대문자로 하는 것이 관례이며, 여러 단어로 이루어져 있는 경우 _로 구분

리터럴(literal)

  • 원래 12, 123, 3.14, 'A'와 같은 값들이 '상수'인데, 프로그래밍에서는 상수를 '값을 한 번 저장하면 변경할 수 없는 저장공간'으로 정의하였기 때문에 상수대신 리터럴이라는 용어를 사용
    변수(variable) 하나의 값을 저장하기 위한 공간
    상수(constant) 값을 한번만 저장할 수 있는 공간
    리터럴(literal) 그 자체로 값을 의미하는 것
int year(변수) = 2014(리터럴);
final int MAX_VALUE(상수) = 100(리터럴);

06. 리터럴의 타입과 접미사

  • 변수의 타입은 저장될 '값의 타입(리터럴의 타입)'에 의해 결정되고, 이는 리터럴에도 타입이 있음을 의미
종류리터럴접미사
논리형false, true없음
정수형123, 0b0101, 077, 0xFF, 100LL
실수형3.14, 3.0e8, 1.4f, 0x1.0p-1f, d
문자형'A', '1', '\n'없음
문자열"ABC", "123", "A", "true"없음
  • 정수형과 실수형에는 여러 타입이 존재하므로, 리터럴에 접미사 혹은 접두사를 붙여 타입 구분

정수형

📍 long 타입의 리터럴에 접미사 l 또는 L 을 붙이고, 접미사가 없으면 int 타입의 리터럴임
📍 10진수 외에도 2, 8, 10 진수로 표현된 리터럴을 변수에 저장할 수 이으며, 16진수 표시는 리터럴 앞에 접두사 0x 또는 0X, 8진수 표시는 0표시

int octNum = 010; //8진수 10, 10진수로 8
int hexNum = 0x10; //16진수 10, 10진수로 16

📍 정수형 리터럴의 중간에 구분자 _ 사용하여 큰 숫자 가독성이 편리

long big = 100_100_000_000L; 
long hex = 0xFFFF_FFFF_FFFF_FFFF;

실수형

📍 실수형에서는 float 타입의 리터럴에 접미사 f 또는 F 붙이고, double 타입접미사 d 또는 D 를 붙임

float pi = 3.14f; //접미사 f 대신 F 사용 가능. 생략불가
double rate = 1.618d; //접미사 d 대신 D 사용 가능. 생략가능

💡 정수형에서는 int가 기본자료형(접미사 없음)
💡 실수형에서는 double가 기본자료형('d'생략가능)
💡 접미사 fd는 기억 필수

profile
안녕 나의 새로운 세상

0개의 댓글