[Java] - static

링딩·2023년 4월 7일
0

Computer Science

목록 보기
24/49

1. static

◽ 개념

static 이란 정적이다 라는 의미를 갖고 있습니다. 자바에서는 클래스에 고정된 멤버입니다. (그래서 클래스 멤버라고도 부릅니다.)

static 멤버들은 클래스에 고정된 멤버입니다. 그래서 클래스 로더가 클래스를 로딩하면 메모리에 할당 시켜줍니다.
=> (클래스 로딩이 끝나면 바로 사용할 수 있다는 의미입니다.)


📕 사용예시

taewooblog님의 글을 참조하였습니다.
=> static 메소드를 생성하면 인스턴스 생성 없이도 바로 호출이 가능하단 것을 알 수 있습니다.

class Name{
    static void print() { //클래스 메소드
	System.out.println("print_test!");
    }

    void print2() { //인스턴스 메소드
	System.out.println("print_test!!!!!!!!!");
    }
}

public class Static_ {
	
    public static void main(String[] args) {
        Name.print(); //인스턴스를 생성하지 않아도 바로 호출이 가능
    	
        Name name = new Name(); //인스턴스 생성
        name.print2(); //인스턴스를 생성하여야만 호출이 가능
    }

static을 쓰는 이유

static은 전역적으로 쉽게 재사용하는 멤버잘 변하지 않는 변수나, 메소드를 사용할때 주로 사용됩니다.

만들어 놓고 클래스 호출, 객체 생성을 따로 할 필요없이 바로바로 사용할 수 있기 때문에 사용성이 좋습니다.

그렇기 때문에 실제 CS에서 메모리, 성능을 개선하기 위해 제안하는 방법을 질문으로 했을 경우 많이들 static을 사용해 선언한다고도 합니다.

  • 왜?
    모든 객체가 서로 공유하므로 메모리가 절약되며 연속적으로 그 값의 흐름 또한 이어갈 수 있기 때문입니다.

하지만...🤔

static은 메모리 자원을 할당해놓고 사용하는 것이기 때문에 너무 많이 사용한다면 메모리를 많이 차지하게 되어서 프로그램이 무거워집니다

profile
초짜 백엔드 개린이

0개의 댓글