728x90
반응형
2021.05.16 - [Study/Java Study] - 자바스터디 1주차 (2)
1. 변수의 스코프와 라이프타임
변수는 블럭안에서 사용 가능한 범위를 가지는데 이 범위를 변수의 스코프라고 정의한다. (변수에 접근 가능한 유효 범위 혹은 영역)
public class Scope { int globalScope = 10; public void scopeTest(int value) { int localScope = 10; } }
위의 코드에서 globalScope는 전역변수로 Scope클래스 안에서도 호출하여 사용가능하며 매개변수로 선언된 int value는 블럭 바깥에 존재하기는 하지만, 메소드 선언부안에 존재하므로 사용 범위는 해당 메소드 블럭내이다.
라이프 타임은 변수가 메모리에서 살아있는 기간을 뜻한다.
변수종류 | 라이프타임 |
클래스변수 | 프로그램 종료시까지 |
인스턴스변수 | 객체가 메모리에 존재하는 동안 |
지역변수 | 메소드수행 |
2. 타입 변환, 캐스팅 그리고 타입 프로모션
타입캐스팅 - 크기가 더 큰 자료형을 크기가 더 작은 자료형에 대입하는 것을 의미.
int a = 10; byte b = (byte)a; System.out.println(b); // -> 10
byte는 -256~255까지 표현할 수 있으므로 타입캐스팅을 해도 데이터 변형이나 손실이 오지 않았다.
int a = 10000; byte b = (byte)a; System.out.println(b); // -> 16
표현범위를 벗어나는 값을 강제로 타입캐스팅해 데이터 변형이 생겼다.
타입프로모션 - 크기가 더 작은 자료형을 더 큰 자료형에 대입하는 것을 의미.
byte a = 10; int b = a; System.out.println(b); // -> 10
타입프로모션은 데이터 손실이나, 변형이 오지않음으로 캐스팅할 때 처럼 명시적으로 적지 않아도 자동으로 변환이 가능하다.
위와 같은 타입변환은 레퍼런스 타입에서도 가능하다.
출처,
- 백기선님의 자바 라이브 스터디
https://www.notion.so/2-62a95e69f23e44ed88a42e0692f54727
728x90
반응형
'Study > Java Study' 카테고리의 다른 글
자바스터디 2주차 (2) (0) | 2021.05.23 |
---|---|
자바스터디 2주차 (1) (0) | 2021.05.19 |
자바스터디 1주차 (2) (0) | 2021.05.16 |
자바스터디 1주차 (1) (0) | 2021.05.12 |
자바스터디 0주차 시작 (1) | 2021.05.09 |
댓글