Programming/Java \ Spring

🔥자바스터디🔥 변수의 스코프와 라이프타임 / 타입 변환, 캐스팅 그리고 타입 프로모션

 

1. 변수의 스코프와 라이프타임

 

변수의 스코프란 해당 변수를 사용할 수 있는 영역범위를 뜻한다. (보통 {}괄호 안에서 선언되고 사용되어진다.)

라이프타임은 해당 변수가 메모리에 언제까지 살아있는지를 의미한다.

단, 지난 포스팅에서 언급했듯이 가비지 컬렉터가 발동하는 주기는 알수 없으므로 정확한 라이프타임 또한 알수 없다.

 

변수의 경우 선언하는 위치(scope)에 따라 Instance Variables, Class Variables, Local Variables 로 나눌 수 있다.

 

 

Instance Variables

 

- 클래스 안에서 선언되어있고, 어떠한 method나 block안에서 선언되지 않은 변수


   scope - static method를 제외한 클래스 전체 (static메소드 호출 시 객체의 생성 여부를 알수 없기 때문에 사용불가하다.)

   lifetime - 클래스를 인스턴스화한 객체가 메모리에서 사라질 때 까지

 

Class Variables

 

- 클래스 안에서 선언되어있고, 어떠한 메서드나 블럭안에서 선언되지 않았으며 static 키워드가 포함되어 선언된 변수

  인스턴스 변수는 각각 고유한 값을 가지지만 클래스 변수는 모든 인스턴스가 공통된 값을 공유한다.

  때문에 한 클래스의 모든 인스턴스에서 공통적인 값을 가져야할 때 클래스 변수로 선안한다.

  (접근제한자 public을 붙이면 프로그램 내 어디서든 접근할 수 있는 전역 변수로 사용할수 있다.)


   scope - 클래스 전체
   lifetime - 프로그램 종료시 까지

 

Local Variables

 

- 인스턴스 변수, 클래스 변수가 아닌 모든 변수
 

   scope - 변수가 선언된 block 내부
   lifetime - control 이 변수가 선언된 block 내부에 있는 동안

 

2. 타입 변환, 캐스팅 그리고 타입 프로모션

 

Type casting (더큰 범위의 자료형에서 더 작은 범위의 자료형으로의 형변환)

      Primitive Type(기본형) : 자유롭게 변환 가능하다. 단, 데이터 범위에 따라 값 손실의 가능성이 있다.

Type promotion (더 작은 범위의 자료형에서 더 큰 범위의 자료형으로의 형변환)

      Primitive Type(기본형) :  값손실 등 데이터 변형이 없기 때문에 명시하지 않아도 자동으로 형변환이 가능하다.

 

Reference type

      상속 관계에서만 가능

      모든 subclass 는 superclass 의 컨텐츠를 가지고 있으므로 superclass 로의 casting 이 가능하다.

      모든 superclass 는 subclass 의 컨텐츠를 가지고 있지 않을 수도 있음, 그러므로 오류 발생 가능성이 높다.

 

 


 

천천히 읽고 싶은 포스팅🐤🐤🐤

 

https://unabated.tistory.com/entry/%EC%99%9C-%EC%9E%90%EB%B0%94%EC%97%90%EC%84%9C-static%EC%9D%98-%EC%82%AC%EC%9A%A9%EC%9D%84-%EC%A7%80%EC%96%91%ED%95%B4%EC%95%BC-%ED%95%98%EB%8A%94%EA%B0%80

 

왜 자바에서 static의 사용을 지양해야 하는가?

자바에서 데이터를 가공하거나 특정 메서드를 수행할 때 새로운 클래스를 만들어서 이를 인스턴스화 해서 쓸건지 아니면 static 으로 쓸건지 고민하게 될 때가 있다. 사실 후자는 객체지향적 관

unabated.tistory.com

 

https://mangkyu.tistory.com/47

 

[Java] static변수와 static 메소드

1. Static 정리 Java에서 Static 키워드를 사용한다는 것은 메모리에 한번 할당되어 프로그램이 종료될 때 해제되는 것을 의미합니다. 이를 정확히 이해하기 위해서는 메모리 영역에 대한 이해가 필

mangkyu.tistory.com