본문 바로가기

개발공부/JAVA

자바스터디 3주차 (feat.백기선님)

  • 산술 연산자

: 가장 기본 연산자 , 수식계산에 사용

+ 더하기
- 빼기
* 곱하기
/ 나누기
% 나머지

 


  • 비트 연산자

: 비트를 대상으로 연산이 이루어진다.

A & B A와 B의 각 비트들의 AND연산. 두 비트 모두 1일때만 1, 나머지는 0
A | B A와 B의 각 비트들의 OR연산. 두 비트 모두 0일때만 0, 나머지는 1
A ^ B A와 B의 각 비트들의 XOR연산. 두비트가 서로 다르면 1, 같으면 0
~A 단항 연산자로서 A의 각 비트들에 NOT연산. 1을 0으로 0을 1로 변환

  • 관계 연산자

: 값의 크기를 비교/ 참과 거짓을 나누는 연산자

< 오른쪽이 크다
<= 오른쪽이 크거나 같다
> 왼쪽이 크다
>= 왼쪽이 크거나 같다
== 같은지비교
!= 다른지 비교

  • 논리 연산자 

: 두개의 피연산자를 비교하여 결과값이 참 또는 거짓(boolean)이 되는 연산자.

! (A) A의 반대값 (true면 false, false면 true)
A ^ B 서로 다른 값이면 true, 같으면 false
A || B 둘다 false일 때만 false, 나머지는 false
A && B 모두 true일때만 true

  • instanceof

: 레퍼런스가 가리키는 실제 객체가 어떤 클래스 타입인지 구분

: 결과값은 boolean타입 (true아니면 false)

 

 

사용방법

객체 레퍼런스 instanceof 클래스타입

 

ex)

if(koh instanceof Person) // koh가 Person 타입이라면 true 반환 

 


  • assignment(=) operator (할당 연산자)

: 값을 변수에 할당할 때 쓰는 연산자

 

ex) int a = 5;

int형 변수 a에 5라는 값을 넣는다.(저장한다)

 


  • 화살표(->) 연산자 (**************)

: JAVA SE 8 부터 사용가능한 람다 표현식

 

(매개변수목록) -> {함수몸체}

자바에서 람다 표현식을 작성할 때 유의해야 할 사항은 다음과 같습니다.

 

1. 매개변수의 타입을 추론할 수 있는 경우에는 타입을 생략할 수 있습니다.

2. 매개변수가 하나인 경우에는 괄호(())를 생략할 수 있습니다.

3. 함수의 몸체가 하나의 명령문만으로 이루어진 경우에는 중괄호({})를 생략할 수 있습니다. (이때 세미콜론(;)은 붙이지 않음)

4. 함수의 몸체가 하나의 return 문으로만 이루어진 경우에는 중괄호({})를 생략할 수 없습니다.

5. return 문 대신 표현식을 사용할 수 있으며, 이때 반환값은 표현식의 결괏값이 됩니다.

(이때 세미콜론(;)은 붙이지 않음)

 


  • 3항 연산자 : 조건 연산자
condition ? op2 : op3

조건문인 condition이 true이면 리턴값은 op2

조건문인 condition이 false이면 리턴값은 op3


  • 연산자 우선 순위
우선 순위가 높음























우선 순위가 낮음
++(postfix) --(postfix)
+(양수부호) -(음수부호) ++(prefix) --(prefix)  ~ !
형변환(type casting)
* / %
+(덧셈) -(뺄셈)
<< >> >>>
<> <= >= instanceof
== !=
& (비트 AND)
^ (비트 XOR)
| (비트OR)
&& (논리 AND)
|| (논리 OR)
? : (조건)
= += -= *= /= &= ^= |= <<= >>= >>>=

(optional) Java 13. switch 연산자

 


github.com/whiteship/live-study/issues/3

 

 

3주차 과제: 연산자 · Issue #3 · whiteship/live-study

목표 자바가 제공하는 다양한 연산자를 학습하세요. 학습할 것 산술 연산자 비트 연산자 관계 연산자 논리 연산자 instanceof assignment(=) operator 화살표(->) 연산자 3항 연산자 연산자 우선 순위 (option

github.com

 

참고 :
책(명품자바프로그래밍)
http://www.tcpschool.com/java/java_lambda_concept