일지이기 때문에 일기의 성격이 더 강합니다.

이어서 28일의 일지. 많이 밀려있었기 때문에 이걸 다 쓴다고 해도 6개의 일지가 남아있다. 이쯤되면 방학 일기를 밀려쓰는 수준인데, 너무 바빠서 그랬다… 지금이라도 채워두는 게 맞으니 힘내본다. 28일에 배운 건 다행히 대부분 JS와 비슷해서 유사점만 써도 되는 정도이다.
다른 이야기지만(2월 5일 기준) 이제 DataBase를 배운다. 좋아하는 부분이라서 기대하는 중.
연산자 및 비교문
연산자
대부분 JS와 비슷하지만 java에서만 적용되거나 적용되지 않는 것이 있어 정리한다.
| 연산자 | 우선순위 | |
| 단항연산자* | ++ -- + - ~ ! (type) | 위로 갈수록 높음 ↕ 아래로 갈수록 낮음 |
| 산술연산자 | * / % + - % << >> >>> | |
| 비교연산자 | < > <= >= == != instanceof | |
| 논리연산자 | && || & ^ | ! ~ | |
| 대입연산자 * | = *= /= %/ += -= >>= <<= >>>= &= ^= |= | |
| 삼항 연산자 | ?: | 가장 낮음 |
특기점은 *를 단 것의 경우 연산 방향이 일반적인 →가 아니라 ←인 것이다.
연산자 우선순위는 다음과 같다.
1) 괄호 우선
2) 단항, 이항, 삼항 연산자 순
3) 산술, 비교, 논리, 대입 연산자 순
주의점들
1. 부호 연산자의 산출 타입은 기본적으로 int다.
2. 증감 연산자가 변수 뒤에 있을 경우, 다른 연산자를 먼저 처리한 후 증감 연산자를 처리한다.
3. 나눗셈의 경우 정수 / 정수는 기본적으로 정수형이므로, 소수점이 필요하면 형변환을 할 것.
시프트 연산자
java에서는 시프트 연산자라는 특수한 연산자를 사용한다. 정수를 2진수 비트 단위로 왼쪽/오른쪽으로 밀어서 값을 바꾸는 신기한 연산자로, 곱셈/나눗셈을 비트 단위로 빠르게 하는 느낌이다.<<의 경우 곱하기 2^N 정도라고 생각하면 편하고, >> 의 경우 대략 나누기 2^N이라고 생각하면 된다.
int x = 3; // 0000...0011 (2진수로 3)
int y = x << 1; // 0000...0110 (6)
int z = x << 2; // 0000...1100 (12)
int x = 8; // 0000...1000
int y = x >> 1; // 0000...0100 (4)
int z = x >> 2; // 0000...0010 (2)
int n = -8; // 1111...1000 (2의 보수)
int m = n >> 1; // 1111...1100 (여전히 음수)
int n = -8; // 1111...1000
int m = n >>> 1; // 0111...1100 (큰 양수로 바뀜)
오버플로우
연산을 하다보면 나타나는 오류가 몇 가지 있다. 다음과 같은 오류 예제가 있다.
public class NumberEx {
public static void main(String[] args) {
// 1. 오버플로우 (정수)
int max = Integer.MAX_VALUE;
System.out.println("MAX_VALUE: " + max);
System.out.println("MAX_VALUE + 1 (오버플로우): " + (max + 1));
// 2. 정수 / 0 → 예외
// int z = 1 / 0; // ArithmeticException
// 3. 실수 / 0 → Infinity
double a = 1.0 / 0.0;
System.out.println("1.0 / 0.0: " + a); // Infinity
// 4. NaN (Not a Number)
double b = 0.0 / 0.0;
System.out.println("0.0 / 0.0: " + b); // NaN
double c = Double.NaN;
System.out.println("Double.NaN: " + c);
}
}
따라서
1. 형의 규칙에 맞춰 데이터를 입력할 것.
2. 정수를 0 또는 0.0으로 나누면 안 된다는 점에 주의하자.
IF문 & ELSE IF문
사실 JS와 크게 차이는 없다. 다만 한 가지 주의할 점.
String과 같은 참조 필드의 경우 == 연산을 통해 IF문을 쓰면 안 된다. equals()를 사용할 것.
Switch문
이 또한 JS와 크게 차이는 없다. 다만 다음과 같은 주의점이 있다.
Java에서는 switch에 넣을 수 있는 값이 정수(int), 문자(char), 문자열(String) 등으로 제한된다(long, float, double이 불가능하다.) 그리고 상수만 (리터럴, final 변수 등 컴파일 시 결정되는 값) 사용할 수 있다. 그리고 switch 식이라는 것을 사용해야 한다.
// Java - switch 식
String result = switch (n) {
case 1 -> "one";
case 2 -> "two";
default -> "other";
};
For문
다음처럼 쓰는 게 일반적이다.
for (int i = 0; i < 10; i++) { }
그리고 다음과 같은 축약형을 사용한다.
for (String s : list) {
System.out.println(s);
}
반복문의 경우 중간에 그만두고 싶다면 break;를, 이번 턴만 건너뛰고 다음 반복으로 가려면 continue를 사용한다.
'부트캠프 일지 > Java 풀스택 과정 강의' 카테고리의 다른 글
| [Java 풀스택 과정 강의] 1월 30일 (0) | 2026.02.05 |
|---|---|
| [Java 풀스택 과정 강의] 1월 29일 (0) | 2026.02.05 |
| [Java 풀스택 과정 강의] 1월 27일 (0) | 2026.02.05 |
| [Java 풀스택 과정 강의] 1월 26일 (0) | 2026.02.04 |
| [Java 풀스택 과정 강의] 1월 23일 (0) | 2026.02.04 |
