[스터디]Java의 정석 3일차

Kristopher·2021년 12월 29일
0

Java 스터디

목록 보기
3/31

(CH2) 4.3 정수형 ~ (CH3) 1.5 산술변환

정수형

앞서 본 것처럼 정수형에는 4가지 종류가 있다. 일반적으로 정수형 자료를 다룰 때는 int를 사용하며 byte와 short가 크기가 작아 메모리를 절약할수는 있지만 범위를 넘어서는 경우 오버플로우가 발생할 수 있다. 또한 JVM은 피연산자를 4byte 단위로 저장하기 때문에 int를 사용하는 것이 더 효율적이다.

오버플로우

타입이 표현할 수 있는 값의 범위를 넘어서는 경우를 오버플로우(Overflow)라고 한다. 에러가 나는 것은 아니지만 예상 결과와 다를 수 있기 때문에 주의해야 한다.

실수형

실수형이 정수형과 가장 큰 차이점을 보이는 것은 정밀도라는 개념이 존재한다는 것이다. Float의 경우 7자리, Double의 경우 15자리의 정밀도를 가지며 Double이 훨씬 높은 정밀도를 가지기 때문에 선호하게 된다.

형변환

프로그래밍을 하다보면 서로 다른 타입간에 연산이 이루어지는 경우가 있다. 이 경우에 형변환을 통해 타입을 일치시키게 된다. 형변환을 코드로 작성한다면 아래와 같다.

//(타입)피연산자
double d = 84.12;
int score = (int)d; // double 타입을 int로 형변환

형변환시 주의해야할 점은 큰 타입에서 작은 타입으로 변환이 이루어지면 데이터의 손실이 일어나 원하는 값을 얻지 못할 수 있다는 것이다. 경우에 따라 형변환을 생략하기도 하는데 이 경우에는 기존의 값을 최대한 보존할 수 있는 방향으로 자동 형변환된다.

연산자와 피연산자

연산을 수행하는 기호를 연산자라고 하며, 연산의 대상이 되는 것을 피연산자라고 한다. 피연산자에는 변수, 상수, 리터럴, 수식 등 다양한 형태가 들어갈 수 있다.

연산자의 종류

연산자에는 산술 연산자, 비교 연산자, 논리 연산자, 대입 연산자 등이 존재한다. 각 연산자들끼리의 계산 우선순위도 존재하는데 산술>비교>논리>대입 순으로 우선순위를 가지며 대입이 가장 마지막에 실행된다. 피연산자의 개수로도 구분할 수 있는데 이 경우 단항(1), 이항(2), 삼항(3)으로 구분되며 피연산자의 개수가 적을수록 우선순위가 높다.

산술변환

산술변환이란 연산이 이루어지기 직전에 피연산자가 자동으로 형변환되는 것을 말하는데 두 피연산자의 타입을 같게 하기 위해 수행된다. 피연산자의 타입이 다를 경우 보다 큰 타입으로 일치시키는 것이 일반적이며, 피연산자의 타입이 Int보다 작은 타입이라면 Int로 통일시킨다.

Reference

Java의 정석
남궁성의 정석코딩

profile
개발자 지망생입니다.

1개의 댓글

comment-user-thumbnail
2021년 12월 29일

오늘도 좋은글 감사합니다 😊

답글 달기