# 자바 프로그래밍
1. 객체 지향 언어이므로 유지보수가 쉽고 확장성이 좋음
2. 안정적
3. 풍부한 기능이 제공되는 오픈 소스
4. 플랫폼의 영향을 받지 않아 다양한 환경에서 사용 가능
5. 신뢰성이 높음
# 객체 지향 프로그래밍
순차적으로 처리하는 것이 아닌 객체간의 관계를 통한 처리 방식인 프로그래밍
ex) Java, C++, C#, Python, JavaScript, Ruby 등 대부분
# 자바 연산자
1. 대입 연산자 (Assignment Operator)
왼쪽 변수 (숫자는 들어갈 수 없음) = 오른쪽 변수
2. 부호 연산자
변수에 (+)나 (-)를 써줌
3. 산술 연산자
+, -, *, /, % 의 사칙 연산자
%는 앞 항 나누기 뒷 항의 나머지를 구함
4. 복합 대입 연산자
대입 연산자 + 산술 연산자
ex) num += 2;
num = num + 2;
5. 증감 연산자
++와 --
ex) val = ++ num; // num 값이 1 증가한 후 val 변수에 대입
val = num++; // num 값이 val 변수에 대입된 후 num 값 1 증가
6. 관계 연산자
연산 결과가 True, False로 반환됨, 비교 연산자라고도 칭함
조건문, 반복문의 조건식으로 많이 사용됨
ex) >, <, >=, <=, ==, !=
7. 논리 연산자
관계 연산자와 혼합되서 많이 사용됨
연산 결과가 True, False로 반환됨
ex) && (논리 곱), || (논리 합), ! (부정)
※ &&은 두 항의 결과가 모두 True일 때만 결과가 True, 앞의 항의 결과가 False이면 뒷 항의 결과는 평가하지 않음
||은 두 항의 결과가 모두 False일 때만 결과가 False, 앞의 항의 결과가 True이면 뒷 항의 결과는 평가하지 않음
8. 조건 연산자
If(조건문)을 간단히 표현할 때 사용
ex) int num = (5 > 3) ? 10 : 20;
9. 비트 연산자
마스킹 : 특정 비트를 가리고 몇 개 비트 값만 사용
비트 토글 : 0은 1로, 1은 0으로 바꿈
연산자 | 설명 | 예 |
~ | 비트의 반전 (보수) | a = ~a; |
& | AND | 1 & 1 일 경우, 1 반환 그 외는 0 |
| | OR | 0 | 0 일 경우, 0 반환 그 외는 1 |
^ | XOR | 두 개의 비트가 서로 다른 경우에 1을 반환 |
<< | 왼쪽 shift | a << 2 변수 a를 2 비트만큼 왼쪽으로 이동 |
>> | 오른쪽 shift | a >> 2 변수 a를 2 비트만큼 오른쪽으로 이동 |
# If 문
if (조건식 1) {
수행문 1; // 조건식 1이 참인 경우, 수행문 1 수행하고 조건문 빠져나감
}
else if (조건식 2) {
수행문 2; // 조건식 2가 참인 경우, 수행문 2 수행하고 조건문 빠져나감
}
else {
수행문 3; // 참인 조건이 없는 경우, 수행문 3 수행됨 (디폴트 값)
}
수행문 4; // 모든 if 문이 끝나고 수행문 4가 수행됨
※ If-Else If 문과 If-If 문의 차이점
1. If-Else If 문은 하나의 조건이 만족하면 나머지 Else If 문의 조건 부분은 수행되지 않음
2. If-If 문은 여러 조건이 만족하면, 만족하는 각각의 If 문을 수행함
# Switch - Case 문
1. 여러 조건이 있는 If 문을 간결하게 표현할 때 사용
2. 비교 조건이 특정한 값이나 문자열이여야 함
3. Java 14 부터는 더 간결해진 표현식이 지원됨 ( break 사용 x )
# Switch - Case 문 예시
# 새로운 방식의 Switch - Case 문 예시
'생각 정리' 카테고리의 다른 글
[패스트캠퍼스] Java & SpringBoot로 시작하는 웹 프로그래밍 : 자바 인강_6주차 학습일지 (0) | 2022.07.21 |
---|---|
[패스트캠퍼스] Java & SpringBoot로 시작하는 웹 프로그래밍 : 자바 인강_5주차 학습일지 (0) | 2022.07.14 |
[패스트캠퍼스] Java & SpringBoot로 시작하는 웹 프로그래밍 : 자바 인강_4주차 학습일지 (0) | 2022.07.07 |
[패스트캠퍼스] Java & SpringBoot로 시작하는 웹 프로그래밍 : 자바 인강_3주차 학습일지 (0) | 2022.07.01 |
[패스트캠퍼스] Java & SpringBoot로 시작하는 웹 프로그래밍 : 자바 인강_2주차 학습일지 (0) | 2022.06.22 |