[JAVA] 자바 연산자 : 최우선, 단항, 산술, 시프트, 관계, 비트, 논리, 삼항, 배정대입

 

자바연산자
자바연산자 : 최우선, 단항, 산술, 시프트, 관계, 비트, 논리, 삼항, 배정대입연산자

 

자바의 연산자는  다양한 변수들 혹은 변수들간의 연산을 위해 존재한다.

종류는 아래와 같이 약 9개 정도로 나누어볼 수 있다.

 

  • 최우선연산자
  • 단항연산자
  • 산술연산자
  • 시프트연산자
  • 관계연산자
  • 비트연산자
  • 논리연산자
  • 삼항연산자
  • 배정대입연산자

 

1. 최우선 연산자 -> 빠르다!

 

( ) - 괄호연산자
 . () - 참조연산자
 [] - 배열 첨자 연산자 : 배열의 갯수 혹은 배열의 인덱스

 

2. 단항연산자 => 보통 항 앞에 존재

 

! : 논리 부정 연산자 : 논리식을 반대로 하겠다.

   boolean a = true;

   if(!a) ==> false 일떄의 조건문

 

 ~ : 비트부정 연산자

 byte a = 10; // 0000 1010

 System.out.println(~a); // 1111 0101

 

 +/- : 부호 연산자

 ++/-- : 증감 연산자 

      앞에 있으면 전위 증감 연산자 ( 단항 연산자 )

      뒤에 있으면 후위 증감 연산자 : 연산자의 우선 순위가 콤마연산자 바로 앞 : 느리다!

 

 (자료형) : 캐스팅 연산자 / 형변환에 사용

 instanceof : 다형성 연산자

 

3. 산술 연산자

 

 

*, /, %

 +,-

 

4. 시프트 연산자

<< : 왼쪽 시프트 연산자 :

 

 byte a = 1;

 byte b =3;

 System.out.println(a<<b);     a비트를 왼쪽으로 b 회 이동   ---> a * 2^b

 

 >> : 오른쪽 시프트 연산자

 

 byte a=8;

 byte b =3;

 a>>b;

 

 0000 1000

 ???0 0001  ==> 양수는 0 으로 채우고 , 음수는 1로 채운다.  : a 비트를 오른쪽으로 b 회 이동 --> a / 2^b

 

 >>> : 부호 없는 오른쪽 시프트 연산자

 이동할때 부호와 상관 없이 0 으로 채운다.

 

5. 관계 연산자

==  : 같다
 >  : 크다
<  : 작다
>= : 크거나 같다
<= : 작거나 같다
!=  : 같지 않다

 

6. 비트 연산자

 

& : AND 연산자 : 둘다 1일때만 1 반환
|  : OR 연산자 : 둘중에 하나만 1 1 반환
^ : XOR 연산자 : 서로 다를때 1 반환

 

7. 논리 연산자

 

&& : AND 연산자 : 둘다 true 일때 true 반환

  || : OR 연산자    : 둘중에 하나만 true  true 반환

 & : AND 연산자 :  신중함 !!

 int a =10; int b=20;

 (a==b) && (a++>b); ==> 앞의 결과가 거짓이므로 증감연산자 까지 실행안됨!  

 (a==b) & (a++>b);  ==>  뒤의 식을  실행한  true / false 반환을 결정!

 | : OR 연산자

 

 

8. 삼항연산자

 

(조건식) ? : 거짓 ;

 

 int a =1;

 String name;

 // (a==1) ? name="":name="거짓"; (x) -> 한줄에서 name 정의를 두번 해서 에러!

 name = (a==1)?"":"거짓";

 

9. 배정대입연산자

 

= : 대입연산자

   +=,-=,*=,/=,%=,<<=,>>=,>>>= : 배정 대입 연산자

   ==> why ? : 변환이 일어나지 않은체로 실행된다! / 빠르다.

  byte a = 10;

  a+=10; // a=a+10; 경우에는 int 형데이터로 변환되므로 배정대입 연산자를 사용한다.

  System.out.println("a = " + a); // a = 20

+ Recent posts