
-
어셈블리는 ㅡ CPU에 종속적이며 CPU에게만 맞는 언어이다.
-
C 언어는 ㅡ 운영체제에 종속적이며 운영체제에게만 맞는 언어이다. 운영체제가 CPU에 맞는 언어로 변환시켜 주기때문이다.
-
JAVA 는 ㅡ 종속적이지 않고, 다양하게 활용 가능한 언어이다.

JVM 이 효율적으로 사용되기 위해 3개의 부분으로 나눠져있음
- heap 부분은 상태에 대한 정보를 저장한다,
사용한뒤 삭제해도 되는 데이터를 모아놓는 공간이고, 동적이며 다이나믹하다 많은 데이터들이 들어왔다가 금방 사라지기 때문이다.
- stack 부분(지역변수)은 행위를 할때 잠깐 기억해야될 부분을 저장하는 공간
ex) 엑셀을 밟을때 속도제한 표시판에 50이면 50을 안넘기 위해 기억하듯이, 행위가 종료되면 바로 사라진다.
- static 부분은 태양,달 등 프로그램 시작 전부터 필요하고 저장되어있는 데이터들이다.
이때 자바와 C 언어 간의 차이가 있는 부분이 있다.
- 자바 언어는 heap의 필요없는 정보들 (사라져야될 정보 및 데이터)을 자동으로 버려준다. 하지만 알고리즘이 완벽할 순 없다.
- C 언어는 비관리 언어로써 사용자가 직접 heap의 필요없는 정보들을 버려야 한다.
- 버리는 행위 또한 연산이기 때문에 느려 질 수 있으며 C언어는 직접 버리고 연산을 몰아서 하기 때문에 느려질 일이 없다.