이것저것

[Java] 연산자의 종류 본문

Java/Java 공부

[Java] 연산자의 종류

곰태태 2020. 3. 29. 17:01
반응형
SMALL

연산자의 종류

연산의 방향과 우선순위가 있다
동일한 우선 순위를 갖은 연산의 방향은 왼쪽에서 오른쪽으로 수행

단항, 이항, 삼항 순으로
산술, 비교, 논리, 대입 연산자순

 

연산자가 섞여있으면 헷갈리므로 ()를 이용해 먼저 처리할 연산자를 넣어둔다

증감 연산자 : ++ --
변수의 값을 1 증가시키거나 1 감소시키는 연산자

1
2
3
int x = 1, y = 1;
int result1 = +++ 10//12저장
int result2 = y++ + 10//11저장
 

------------------------------------------------------------------------------------------------
논리 부정 연산자: ! (not)
Boolean type에만 사용 가능
피연산자가 true 면 false값을 산출
false면 true를 산출

------------------------------------------------------------------------------------------------ 

http://docs.oracle.com/javase/8/docs/api 활용법

 

Integer.toBinaryString()
http://docs.oracle.com/javase/8/docs/api 에서 찾아볼 수 있다
  * package에서 java.lang을 클릭
  * java.lang에서 classes안에 Integer를 클릭
  * 오른쪽에 알파벳순으로 나열되어있으므로 toBinaryString을 찾아 클릭하면 된다

  * toBinaryString에 대한 설명을 확인할 수 있다

 

------------------------------------------------------------------------------------------------

NaN과 Infinity 연산 

자바는 실행 도중 예외가 발생하면 실행을 멈추고 프로그램이 종료됨
Arithmetic Exception이 발생되지 않도록 예외처리를 해야 함

ex) 5 / 0.0 -> Infinity (무한대)
5 % 0.0 -> NaN (값이 없음 : Not a Number)

연산의 결과가 Infinity, NaN인지 확인하려면 Double.isInfinite(), Double.isNaN()을 사용

 

------------------------------------------------------------------------------------------------

비교 연산자(==, !=, <, >, <=. >=) 

비교 연산도 타입이 일치해야 한다.
'A' == 65 => true (A의 아스키코드 값이 65이므로)
3 == 3.0 => true (큰 타입 double로 변환)
0.1 == 0.1f => false (0.1f는 0.1의 근삿값으로 표현되기 때문에 0.1보다 큰 값이 된다)

String 타입의 문자열을 비교할 때 대소 비교불가, 동등( == , !=)는 가능하다

String str1 = "java"                 //str1과 str2는 동일한 주소에 있는 java라는 값을 가진다.   
String str2 = "java"                

 

//new는 새로운 String("java")를 만들라는 것이므로 str1, str2와는 다른 주소의 java라는 값을 생성한 것이다.  
String str3 = new String("java");

str1 == str2 -> true
str2 == str3 -> false

문자열의 내용 비교할 때 equals() 사용
str1.equals(str2) -> true
str2.equals(str3) -> true

str1 == str3는 주소를 비교하는 것이고 equals는 문자열인 java의 단어를 비교하는 것이다.

반응형
LIST

'Java > Java 공부' 카테고리의 다른 글

[Java] 객체 지향 프로그래밍  (0) 2020.04.16
[Java] 알아두면 좋은 정보들  (0) 2020.04.15
[Java] break문과 continue문  (0) 2020.03.29
[Java] keyCode 사용법  (0) 2020.03.29
[Java] 변수와 타입, 보수 변환법  (0) 2020.03.25
Comments