소프트웨어
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하게 인스턴스 초기화를 미룰때 쓰는걸로 보임..