스코프1 - 지역 변수와 스코프
우리가 여태 학습한 건 local variable
{} 코드블록 안에서만 변수가 존재함!!
- 블록 내부에서 외부는 접근 가능(⭕)
- 블록 외부에서 내부는 접근 불가(❌)
스코프2 - 스코프 존재 이유
- 비효율적인 메모리 사용을 줄이고, 코드 복잡성을 감소 시킬 수 있음
- 변수의 스코프는 꼭 필요한 곳으로 한정해서 사용할 것!
형변환1 - 자동 형변환
- 작은 범위에서 큰 범위로는 값을 넣을 수 있지만, 큰 범위에서 작은 범위로는 문제가 발생!! → 소수점 버림, 오버플로우
- int < long < double
- 자동 형변환: 작은 범위 숫자 타입에서 큰 범이 숫자 타입으로 자동으로 형변환을 해줌
형변환2 - 명시적 형변환
- 큰 범위에서 작은 범위로 대입 (일반적으로 컴파일 오류 발생)
package casting;
public class Casting2 {
public static void main(String[] args) {
double doubleValue = 1.5;
int intValue = 0;
// intValue = doubleValue; //컴파일 오류 발생
intValue = (int) doubleValue; //형변환
System.out.println(intValue);
}
}
형변환과 오버플로우
- int의 표현 범위를 넘어가는 수를 담게 되면 int가 표현할 수 있는 가장 작은 수 부터 다시 시작하는 셈(마치 시계가 한 바퀴 돌면 다시 처음부터 시작하는 것처럼!!)
- 오버플로우 자체가 문제 상황이니 방법은 int를 long으로 바꾸는 수 밖에 없음
계산과 형변환
원칙
- 같은 타입끼리의 계산은 같은 타입의 결과를 낸다.
- int + int 는 int를, double + double 은 double의 결과가 나옴
- 서로 다른 타입의 계산은 큰 범위로 자동 형변환이 일어난다.
- int + long은 long + long으로 자동 형변환이 일어난다.
- int + double 은 double + double로 자동 형변환이 일어난다.
'JAVA' 카테고리의 다른 글
[JAVA] Section7) Problems1 (0) | 2024.03.12 |
---|---|
[JAVA] Section7) 훈련 (0) | 2024.03.12 |
[JAVA] Section5) Problems2 (0) | 2024.03.09 |
[JAVA] Section5) Problems1 (0) | 2024.03.09 |
[JAVA] Section5) 반복문 (0) | 2024.03.09 |