상수는 한 번 값을 지정하면 변경할 수 없는 고정된 값이며, 변수는 값을 여러 번 변경할 수 있는 공간입니다.
상수 표기법은 대문자와 밑줄을 사용하는 스네이크 케이스(CAPITALIZED_WITH_UNDERSCORES)를 주로 사용합니다.
final int MAX_SIZE = 100;
변수나 상수에 처음으로 값을 할당하는 것을 초기화라고 합니다.
int number = 42; // 변수 number를 42로 초기화
리터럴은 소스 코드에 직접 입력된 값을 나타냅니다.
int literalNumber = 10; // 10은 정수 리터럴
3147483647은 int의 최대값이므로 3147483647 + 3147483648은 int 범위를 벗어납니다.
해결 방법은 리터럴 뒤에 L 또는 l을 붙여서 long 타입으로 지정합니다.
System.out.println(3147483647L + 3147483648L);
자동 형변환은 데이터 손실이 없는 범위에서 자동으로 타입이 변환되는 것을 말합니다.
명시적 형변환은 데이터 손실이 있을 수 있으며, 개발자가 직접 변환을 지정하는 것을 말합니다.
작은 데이터 타입에서 큰 데이터 타입으로의 자동 형변환이 일어납니다.
정수형에서 실수형으로의 형변환이나 float에서 double로의 형변환도 자동으로 이루어집니다.
int a = 3;
int b = 4;
double c = a / b;
System.out.println(result);
이유: a와 b가 모두 정수형이므로, a / b의 결과도 정수형이 되어 소수점 이하의 값을 잃게 됩니다.
수정 방법: 나눗셈의 결과를 실수형으로 받기 위해서는 적어도 하나의 피연산자를 실수형으로 만들어주어야 합니다. 아래와 같이 수정할 수 있습니다.
int a = 3;
int b = 4;
double c =(double) a / b;
System.out.println(result);
char a = 1 + 'A';
System.out.println('A' + 'A');
System.out.println(a);
System.out.println((int)a);
System.out.println("A" + 'A');
System.out.println("A" + 0.09);
```
이유 :
'A' + 'A'에서는 각각의 문자를 ASCII 코드로 변환하여 더하는데, 'A'의 ASCII 코드는 65이므로 65 + 65 = 130이 됩니다.
System.out.println(a)에서는 a가 'B'이므로 'B'가 출력됩니다.
System.out.println((int) a)에서는 'B'의 ASCII 코드인 66이 출력됩니다.
System.out.println("A" + 'A')에서는 문자열과 문자의 결합이므로 문자가 문자열로 변환되어 "AA"가 출력됩니다.
System.out.println("A" + 0.09)에서는 문자열과 숫자의 결합이므로 숫자가 문자열로 변환되어 "A0.09"가 출력됩니다.
이스케이프 시퀀스의 종류와 기능은 다음과 같습니다:
1.\n: 줄 바꿈
2.\t: 수평 탭
3.\': 작은 따옴표
4.\": 큰 따옴표
5.\: 역슬래시
System.out.println('A'); //char형으로 인식, 메모리에 올라갈 때 65값이 들어감
System.out.println('A' + 'A'); //char형으로 65메모리에 올리고, int형으로 자동형변환
자바에서 문자(char)와 숫자(int) 간의 연산 시, 자동으로 숫자로 형 변환이 이루어지기 때문입니다. 각각의 'A'는 ASCII 코드 값으로 65이므로, 두 개의 'A'를 더하면 65 + 65가 되어 130이 됩니다.
자바에서는 연산 시 피연산자들의 타입이 다를 경우, 표현 범위가 더 큰 타입으로 자동으로 형 변환이 일어납니다. 따라서 'A' + 'A'는 int로 자동 형 변환되어 130이 됩니다.
결합 방향: 좌측에서 우측으로 (a + b + c)
우선순위: 높은 우선순위를 가진 연산자가 먼저 계산됨 (*와 /가 +와 -보다 높은 우선순위를 가짐)
복합 대입 연산자는 현재 변수의 값을 다른 값과 연산하여 그 결과를 변수에 대입하는 연산자입니다. 예를 들면 a += 5;는 a = a + 5;와 같습니다.