본문 바로가기

BackEnd/난 자바를 공부한적이 없어요

자바 프로그램의 이해와 실행의 원리

반응형

1. 일반적인 프로그램 실행 구조


하드웨어를 기반으로 운영체제가 동작을하고 윈도우스 또는 리눅스와 같은 운영체제 위에서 일반적인 프로그램이 


실행이 된다. 즉 운영체제가 프로그램을 실행시키는 구조이다. 


우리가 보통 아는 프로그램은 운영체제에 상당히 의존적이다.



2. 자바 프로그램 실행 구조


그러나 자바 프로그램은 운영체제와 자바 프로그램 사이에 자바 가상머신이 존재한다.


운영체제는 자바 가상머신을 실행시키고 자바 가상머신은 자바 프로그램을 실행시키는 구조이다.


자바 가상머신도 운영체제 위에서 동작을 하는 일종의 소프트웨어이다. 


이 자바 가상머신이 하는일은 자바 프로그램을 운영체제에 상관없이 실행시켜준다.


운영체제에 따른 차이점을 자바 가상머신이 대신 처리해줌.



3. 자바의 특성


자바 프로그램은 운영체제에 독립적인 특성을 가지고 있는 장점. 어떤 운영체제에서도 공통적으로 호환된다.


자바 가상머신(JVM)은 운영체제에 의존적. JVM은 운영체제가 달라지면 가상머신도 달라진다.


하지만 소스코드(자바 프로그램)는 달라질 필요가 없는것이다!



4. 자바 컴파일러와 자바 바이트 코드


Main.java 파일같은 것을 가리켜 소스파일 이라고 하며 이안에 저장된 소스코드를 가상 머신이 이해할 수 있는


자바 바이트 코드로 변환(컴파일)해주는 프로그램을 자바 컴파일러(javac.exe)라 한다.


컴파일이 완료가 되면 Main.class라는 파일로 만들어지고 자바가상머신이 이해할 수 있는 2진수 코드의 집합으로 저장됨.


실제 자바가상머신 위에 올리는 것은 실제적으로 클래스 파일임.


그리고 이 클래스파일을 자바가상머신위에 올리고 가상머신을 동작,실행 시키도록 유도하는 것은 런처, java.exe라 한다.


자바 가상머신이 발사대라고 하면 미사일인 클래스파일을 위에 올려두고


발사하는것은 java.exe(런처)이다.





5. 자바의 특성


개발을 할때 중요한것들 - 자바의 속도를 문제시 할 필요는 없다.


1. 안정성 : 대부분의 소프트웨어는 속도보다 안정성이 우선시 된다고한다

2. 속도 : ( 실무에들어가면 3이 실행속도이고 7 이 소프트웨어 개발속도이다)

속도도 중요하다 


자바는 타언어에 비해 소프트웨어 개발속도가 빠르다라는 장점이 있음


자바 가상머신에 의해 실행속도는 저하가 조금될 수 있지만 그것을 뛰어넘는 

장점들이있는것


속도가 문제가 되면 대부분의 개발자들을 데이터베이스를 먼저 의심한다

자바 자체가 문제되는건 별로없음 

그래서 자바가 느리기때문에 다른것을 공부해야 할 필요성은 별로없는것이다.



최근에 정리해둔 자료 : https://cg-developer.tistory.com/376


반응형