[Java] 환경변수 설정 및 java의 프로그램 실행 순서
javac.exe : 컴파일러
java.exe : JVM구동 명령
자바 컴파일러를 다른 디렉토리에서도 접근할 수 있게 환경변수(path)에 bin 경로를 등록해주려 합니다.
https://nobacking.tistory.com/76 을 그대로 따라해보았으나
source로 적용해주려 하면
해당 오류가 뜨고 echo $JAVA_HOME으로 확인해보아도 아무것도 뜨지 않습니다.
echo $PATH로 확인했을때
Javapath는 뜨긴하는데요..
해당 링크를 참고하여
로 환경변수를 등록해주고Java의 소스 작성부터 프로그램 실행까지의 순서는 다음과 같습니다
1. java 소스를 작성합니다(~.java)
2. javac.exe를 통해(컴파일러) 바이트코드 파일(~.class)을 만듭니다.
3. 이를 JVM(java.exe)을 통해 기계어로 변환하고, 이를 실행합니다
이때, 기계어로 변환하고 실행하는 과정을 LINK과정이 라고 표현합니다.
이는 PC가 프로그램이 실행될 수 있게 메모리를 로딩하고, 실행을 준비하고, 실행을 결정한 이후, 초기화 까지 하는 과정을 의미합니다.
개발자가 이 전반적인 과정에서 하는 일은 1. java 소스를 작성하는 일 밖에 없습니다.
이를 javac Javaworld.java 로 컴파일 해줍니다
그러면 Javaworld.class 파일이 생성됩니다.
이를 JVM을 통해 실행해주어야 합니다.
? 안됩니다.
??
아! .class 확장자를 빼고 실행해줘야 하는군요.
마지막으로 Garbage Collector 에 대해 알아보고 끝내겠습니다.
C계열의 C,C++등은 Unmanaged 언어로써, 사용자가 직접 하드웨어(CPU와 메모리)를 관리해야 합니다.
그러나 java를 포함한 Managed 언어는 프로그램 자체에 메모리를 관리하는 코드가 내장되어 있기에 개발자가 이에 접근할 수 없습니다.
이때, 가비지 콜렉터는 Managed 언어에서, 불필요한 메모리를 회수해서 최적화를 실행합니다.