개발자입니다
JAVA 5일차 - 연산자 본문
220211
데이터 가공 명령어(연산자)
- 산술연산자
: 연산에 참여하는 모든 데이터는 4byte 이상이어야 한다(자동 형변환 일어남)
: 서로 다른 타입의 데이터가 연산에 참여할 때는 더 큰 데이터 타입으로 자동 형변환된다
: +, -, *, /, %
- 관계연산자
: 대소관계 : <, >, <=, >=
: 등치관계 : ==, !=
- 대입연산자
: =
: +=(복합대입연산자) : 연산에 참여하는 변수에 연산 결과를 저장할 때, 연산 횟수를 줄여서 동일한 결과를 연산. 실제 연산 속도도 빨라짐
- 논리연산자 : 논리데이터를 연산해 주는 연산자
: AND(곱하기)
: OR (더하기)
: NOT(부정)
: Numeric data와 Logical data는 서로 형변환 할 수 없다.
: 가질 수 있는 값 : true, false
- 증감연산자 : 변수의 값을 1증가 또는 감소시키는 연산자
: ++, --
: ++변수(전치연산자) : 연산에 참여하는 다른 연산자들 보다 연산 우선 순위가 높다
: 변수++(후치연산자) : 연산에 참여하는 다른 연산자들 보다 연산 우선 순위가 낮다
-보수 : 보충해 주는 수
7에 대한 10의 보수 : 3
3에 대한 5의 보수 : 2
1에 대한 1의 보수 : 0
0에 대한 1의 보수 : 1
Char 형은 int 형에서 2바이트를 잘라서 사용하므로 숫자가 허용된다.
char c = 'A'; // 65
char ccc = c + 1; // 변수를 넣으면 int로 취급 (char)(c + 1) 해줘야 함
ccc = 'A' + 1; // 65 + 1. 정수를 넣으면 unicode로 취급
%(moduler) 연산으로 배수 관계인지 알 수 있다
-관계연산자
문자열 연산에는 equals()를 사용할 수 있다
String s = new String("hello");
String sss = new String("hello");
String ss = s;
ss == s; // true
sss == s; // false
s.equals(sss) // 객체의 내용끼리 비교
String s = new String("Hello World"); // new 로 생성할때마다 새로 공간 만듬
String ss = "Hello World";
String ssa = "Hello World"; // ss와 같은 객체를 가리킴
res = (s == ss); // false
res = (ssa == ss); // true
-논리연산자
True : 값을 가지고 있는 모든 상태
False : 값이 없는 상태
-증감연산자(단항연산자)
System.out.println(fv++); // 3.14. println도 값을 넘겨주는 연산이므로 먼저 함
-조건연산자(삼항연산자)
(조건식)? true일때 : false일때;
x=-10; y=10;
absX = (x>0) ? x : x*-1;
-비트연산자
<< >> : shift 연산. 비트를 이동. 그러나 자바에서 사용 안함. 리소스가 절박한 java아닌 장비에서는 사용
-연산자 우선순위
(), [], '.' 연산자의 우선순위가 가장 높다
대입연산자, ',' 연산자의 우선순위가 가장 낮다
일반적으로 항수가 낮은 연산자의 우선 순위가 높다 (일항 > 이항 > 삼항)
1+2*3/4 = → 1+((2*3)/4) = 로 해줘라. 코드 가독성을 위해
코드를 하나하나씩 다 분석해보라
프로젝트 과정을 바꿔서 결과를 동일하게 하라
'Java > IT BANK - Java 기초' 카테고리의 다른 글
JAVA 7일차 - DecimalFormat, Parse (0) | 2022.08.30 |
---|---|
JAVA 6일차 - 제어문, System.currenTimeMillis() (0) | 2022.08.30 |
JAVA 4일차 - 입력과 출력 (0) | 2022.08.29 |
JAVA 3일차 - 메모리 구조, 데이터 타입 (0) | 2022.08.29 |
JAVA 2일차 - 이클립스 설정, 진수, ASCII (0) | 2022.08.29 |