Method? 메소드?
어떤 사물의 동작을 추상화해 낸 것이라고 있는듯이 말할 수 있다.
즉, 객체가 행위를 하는 것을 method라고 한다.
그렇다면 메모리에는 이 메소드가 어떻게 적취될까?
Java 메소드는 아래 방법으로 나눠서 적취된다.
1. Dynamic Binding : 필요할때 메모리에 올리는 방법
대부분의 메소드는 Dynamic binding에 해당된다.
2. Static Binding : 정적으로 메모리에 올리는 방법
메모리에서 static에 올라가게된다. ex) static 선언
3. Early Binding : compile 단계에서 메모리에 올리는 방법
위에서의 static이랑 같은거 아니야?
라고 생각하실수도 있지만 조금 다른게 메모리가 어디에 올라가는지가 다르다.
Static은 static에 쌓이고 Early Binding은 heap에 들어간다.
대표적으로 @Overloading을 할 때 compile단게에서 메모리가 올라간다. 혹은 private, final 값들..
4. Late Binding : runtime에서 메모리에 올리는 방법
대표적으로 @Override을 하게되면 runtime에 메소드를 메모리에 올린다.
Call By Value
값에 의한 호출이라고 하며 Java는 무조건 Call By Value이다.
C, C++에서 같이 Java에서도 배열을 pointer와 같이 동작해서 Call By Reference라고 생각할 수도 있지만, Java 참조 변수에는 주소값 자체가 들어가기 때문에 Call By Value이다.
'Java > 기초' 카테고리의 다른 글
Java Class(String, StringBuffer, StringBuilder, Wrapper, Enum) (0) | 2024.07.28 |
---|---|
Java의 배열 (0) | 2024.07.28 |
Java에서 원시타입과 참조타입 (0) | 2024.07.28 |