연산과 관련된 용어들
연산(Operation)
- 식이 나타낸 일정한 규칙에 따라 계산함,
- 공집합이 아닌 집합에서, 그 집합에 속하는 임의의 두 원소로부터 제3의 원소를 만듦
연산자(Operator): 연산을 기호화 한것
+,-.*,/
피연산자(Operand): 연산의 대상이 되는 것
a+b //a,b가 연산자이다.
표현식(Expression): 연산된 결과를 변수나 상수에 저장하는 것
c = a+b
위에서 아래 순으로 연산자의 우선순위를 나타낸다.
연산자의 우선순위는 대체적으로 수학과 비슷함으로 수학적으로 사고해야한다.
(출처https://triangle.academy/course/java/course/java-basics/p/3)
산술 연산자(arithmetic)
boolean 타입을 제외한 모든 Primitive Type에 가능하다
+,-,*,/,%, -(음수 변환(unary minus))
비트 연산자(bitwiss)
비트단위의 연산을 할 때 사용한다
두개의 비트 문자열 객체가 있다고 가정 할 때 == 연산자를 사용안하고 XOR로 비교 하거나
단정도, 배정도등 부동 소수점에서 쉬프트 연산 시 사용이 되거나
음수를 표현하기 위해서 보수를 사용하는 차원으로 많이 쓰인다.
~, |, ^, & >>, <<, -(보수)
관계 연산자(relational)
두 피연산자가 같거나 다른지 비교 하기 위해서 사용한다
==,!=, <. >, !, ^
논리 연산자(Boolean)
조건부 연산자가 1개, 2개일 때 차이는
두개일 시 (short circuit evaluation) : 만족되는 조건이 있으면 바로 종료하고 결과를 리턴
하나일 시: 모든 값을 비교한다.
&& 연산자는 False 값을 우선, True 값을 나중에 찾는다.
|| 연산자는 True 값을 우선, Falsㄷ 값을 나중에 찾는다.
&, &&, |, ||
instanceof
객체의 타입을 확인 하는 메서드
"aaa" instanceof String // true
객체의 타입 변경이 일어나는 환경에서 사용됨
근데 그럴 일은 강타입 객체에서 잘 일어나지 않는다
할당 연산자(Assignment)
객체의 값을 할당하는 연산자로서
표현은 두가지 케이스로 나뉜다.
int a = 1 // 선언과 초기화
a = 1 // 할당
화살표 연산자(Lambda Expression)
Java 8에서 추가 된 람다 함수
함수형 프로그램에서 가져온 개념
객체 = (인자) -> {return}
// {}부분이 한 문장일때 중괄호 생략가능
Person a =(a,b) -> return true;
// 바로 객체에 할당할때
Person a =(a,b) ->{
System.out.println("a");
System.out.println("b");
return true;
};
// 객체 생성후 선언시
Person a = new Person();
a.hi((a,b) ->{
System.out.println("a");
System.out.println("b");
return true;
});
3항 연산자(Conditional)
조건 ? true : false
if 평가문 ? if 결과 : else 결과
public int compare(int x, int y) { return x > y ? x : y; }
연산자 우선 순위
최우선연산자 ( ., [], () )
단항연산자 ( ++,--,!,~,+/- : 부정, bit변환>부호>증감)
산술연산자 ( *,/,%,+,-,shift) < 시프트연산자 ( >>,<<,>>> ) >
비교연산자 ( >,<,>=,<=,==,!= )
비트연산자 ( &,|,,~ )
논리연산자 (&& , || , !)
삼항연산자 (조건식) ? :
대입연산자 =,*=,/=,%=,+=,-=
연산자 우선순위는 수학과 비슷하다.
위의 최우선 연산자를 봐도 알겠지만 "."이 최우선이다 (실수 표현이 최우선)
그래서 연산자들을 () 묶어 주면서 연산자를 사용 시
- 가독성
- 계산 오류 방지
- 의도치 않은 오류
를 방지 할 수 있다.
(Java 13) switch 연산자
swich-case문과같다
데이터 타입의 Enum 처럼 열거형식의 조건문
boolean b;
swich (a) {
case "a":
b = true;
case "b":
b = false;
}
'Language > Java' 카테고리의 다른 글
4. 문(statement) (0) | 2020.12.12 |
---|---|
다시 복습하는 자바 - 2.자바 데이터 타입, 변수 그리고 배열 (0) | 2020.11.21 |