소프트웨어

static에 관해..

잼민코더 2021. 5. 15. 00:19

우아한Tech 유튜브 채널을 통한 공부 정리

 

 


(자바의 스태틱 )

1.static 변수
메모리에 고정적으로 할당되어, 프로그램이 종료될 때 해제되는 변수


예를들어

public class Person{

private String name = "blah";

}

이런식이면, 각각 생성될때마다 다른메모리에 할당이됨..
하지만 static으로하면 
메모리에 고정적으로 할당되어, 프로그램이 종료될 때 해제되는 변수로 됨


2.static 메소드

public class Person{

public static void printName() {
함수 실행내용
}

}


--> 클래스를 호출하지않고, 생성자를통해 생성하지 않아도,
이미 static 로딩을 통해 메모리에 올라와있기 때문에
해당 메소드를 바로 사용할 수 있음.



3. public class OuterClass {


class Inner {

}
}



4.
싱글턴 - 하나의 인스턴스를 생성하여 재사용, 인터페이스 구현 가능, 오버라이드 가능,
load는 필요에 따라 lazy하게 가능

정적클래스 - 인스턴스 생성x, 인터페이스구현 불가능, 오버라이드 불가능,
load는 static binding으로 빠르게 로딩함




flutter에서  late라는게 있는데.. 그냥 변수 선언적 의미로 사용되는듯하고..
나중에 lazy하게 인스턴스 초기화를 미룰때 쓰는걸로 보임..