항해99 온보딩 스터디[Java 언어 기초] 2일차

Hohomi·2023년 3월 7일
0
post-thumbnail

스터디 2일차 : 연산자(Operator)


연산자란?

'연산을 수행하는 기호'이다.
연산자가 연산을 수행하려면 반드시 연산의 대상이 있어야 하는데, 그것을 '피연산자(operand)'라고 한다.

연산자의 종류

종류연산자설명
산술+ - * / % << >>사칙 연산과 나머지 연산(%)
비교< > >= <= == !=크고 작음과 같고 다름을 비교
논리&& ㅣㅣ ! & ㅣ ^ ~'그리고(AND)' 와 '또는(OR)' 으로 조건을 연결
대입=우변의 값을 좌변에 저장
기타(type) ?: instanceof형변환 연산자, 삼항 연산자, instanceof연산자

** 연산자의 우선순위 : 산술 > 비교 > 논리 > 대입 (대입은 가장 마지막에 수행됨)

증감 연산자

증가 연산자(++) : 피연산자의 값을 1 증가 시킨다.
감소 연산자(--) : 피연산자의 값을 1 감소 시킨다.

타입설명사용예
전위형값이 참조되기 전에 증가시킴j = ++i;
후위형값이 참조된 후에 증가시킴j = i++;

** 후위형이 많이 쓰인다. i += 1 의 형태로도 쓸 수 있다.

형변환(casting) 연산자

서로 다른 타입 간의 연산을 수행해야 할 때, 연산을 수행하기 전에 타입을 일치시키기 위해 변수나 리터럴의 타입을 다른 타입으로 변환하는 것을 '형변환'이라고 한다.
** 형변환 방법 아주 쉬움 : (타입)피연산자

타입설명사용예
int -> char(char)65'A'
char -> int(int)'A'65
floar -> int(int)1.6f1
int -> floar(float)1010.0f

자동 형변환

기존의 값을 최대한 보존할 수 있는 타입으로 자동 형변환된다.

산술 변환

  • 이항 연산을 할 때, 두 피연산자의 타입이 같아야 연산이 가능하다.
  • 만일 타입이 다르다면 연산 전에 형변환 연산자로 타입을 일치시켜야 한다.
  • 연산 전에 피연산자 타입의 일치를 위해 자동 형변환되는 것을 '산술 변환'이라 한다.

규칙 1. 두 피연산자의 타입을 같게 일치시킨다.(보다 큰 타입으로 일치)
long + int -> long + long -> long
float + int -> float + float -> float

규칙 2. 피연산자의 타입이 int보다 작은 타입이면 int로 변환된다.
byte + short -> int + int -> int
char +short -> int + int -> int

주의할 점

  • 크기가 작은 자료형의 변수를 큰 자료형의 변수에 저장할 때는 자동으로 형변환됨.
  • But 큰 자료형의 값을 작은 자료형의 변수에 저장하려면 반드시 형변환 연산자를 사용해서 변환해주어야 한다!

나머지 연산자

나머지 연산자는 왼쪽의 피연산자를 오른쪽 피연산자로 나누고 난 나머지 값을 결과로 반환한다.

System.out.println(10%8); // 10을 8로 나눈 나머지 2가 출력된다.

** 많이 쓰이는 친구!!

문자열의 비교

문자열을 비교할 때에는 == 대신 equals()를 사용해야 한다.
기본형 변수는 값을 저장하기 때문에 == 가 가능하지만, 참조형 변수(str 등)는 주소값을 저장하기 때문에 '같음'의 비교가 어렵다!

  • equals() : 비교하고자 하는 두 피연산자의 값 자체를 비교한다.
  • == : 비교하고자 하는 두 피연산자의 주소값을 비교한다.
String result = new String("abc");
boolean result = str.equals("abc");

조건 연산자(삼항 연산자)

조건식 ? 식1 : 식2

조건식의 평가결과가 true이면 식1이. false이면 식2가 연산결과가 된다.

result = (x > y ) ? x : y ;
// 'x > y'의 결과가 참이면 변수 result에는 x의 값이 저장되고, 거짓이면 y의 값이 저장된다.

아스키 코드표(ASCII TABLE)

영문 알파벳을 사용하는 문자 인코딩.

참고자료

참고 도서 : 『JAVA의 정석 기초편』, 남궁 성, 도우출판
아스키코드표 출처 : http://cafe.daum.net/flowlife

profile
게발로 개발하기

0개의 댓글