Q1. 스태틱 메소드에서 왜 인스턴스 메소드를 못쓸까요? 지난 포스트에서 썼던 클래스 로드 과정을 간단하게 정리해보겠습니다. 1. 클래스 로딩 1-1: verificatoin : 클래스 파일이 변조되었는지 검사 1-2 : preparation : static 변수 준비, 및 기본값으로 초기화. 1-3: resolution : 로딩 과정중에 symbolic reference로 연결해놨던것을 실제 레퍼런스로 교체. 1-4: initilization : 초기화 과정에서는 class와 interface 초기화 메소드 수행. 이때, static 변수에 입력한 값으로 초기화되고 static 메소드들이 수행. 위 과정을 다시 보면, 스태틱 메소드는 애초에 인스턴스가 로드되기 전에 로드되고 사용 가능하다. 당연히 로드..
A. JVM이란 무엇인가? A-1. Java의 탄생 배경 1990년대는 인터넷의 태동기였고 인터넷 네트워크 환경을 고려한 기술들이 많이 나오기 시작했습니다. 1996년에 출시된 Java 역시, 네트워크 환경에서 동작하는 기기들을 고려한 어플리케이션 개발 환경을 만들기 위해 디자인 되었습니다. 오라클 공식문서에 따르면, "Java는 네트워크를 통해 소프트웨어의 컴포넌트들을 안전하게 전송하고 실행할 수 있도록 돕는다" 라는 이야기가 나오는데요. 여기서 "네트워크 환경에서 동작하는 기기를 고려하는 개발 환경" 라는 의미를 생각해볼 수 있습니다. 네트워크 환경에서 동작하는 개발 환경. 1️⃣C/C++ 예를들어서, 기존 C/C++은 소스 코드를 각 기계에 직접 컴파일을 해서 실행시켜야 했습니다. 소스 코드를 💾저..