페이지

2017년 3월 14일 화요일

[Java] Static

Static의 개념에 대해서 정리하고자 한다.

자바에선 전역변수의 개념이 없다. 왜냐하면 모든 변수와 메소드는 클래스 내에만 존재하고

접근하기 위해선 메모리에 클래스의 인스턴스가 적재되 있어야 하기 때문이다. 그러나

static을 적용함으로써 클래스의 인스턴스를 메모리에 올리지 않고도 특정한 변수 , 메소드,

초기화문을 메모리에 올려 사용할 수 있다.

정리하자면 , 자바에서 함수나 멤버변수를 부르기 위해선 클래스의 인스턴스를 생성하여

객체참조를 통해 접근해야만 하지만 , static을 사용하면 클래스의 인스턴스를 생성하지

않고도 사용이 가능하다.


-Static의 메모리 할당순서

자바에서 static으로 선언할 수 있는 것은 다음과 같이 3가지 경우가 있다.

  1. static initializer : 정적 초기화문
  2. static variable : 정적 변수
  3. static method : 정적 메소드
위와 같은 것들을 선언할 수 있는데 실제로 메모리에 올라가는 순서는 다음과 같다.

2.static variable -> 1.static initializer -> 3.static method





==============추가==================

글을 정리하고나서 구글을 검색하다가 우연히 Java에서 static을 지양하라는 의견을 보았다.

괜찮은 내용인거 같아서 추가로 첨부한다.

Link : 자바에서 static을 지양하는 이유 

댓글 없음:

댓글 쓰기