Java를 배우는 이유
어떤 프로젝트를 만들어 볼건지 목표를 설정하자.
사람의 언어를 컴퓨터의 언어(2진법)로 바꿔주는 작업
- 디버그 : 오류 검사 (문법에 맞게 썻니?)
- 빌드 : 실행프로그램을 만들어 주는 작업.
- 링크 :
- 실행프로그램
-> 컴파일러(eclipse)
JAVA는 이식성이 높다.
↓
<JAVA 프로그램이 돌아가는 내부 설계>
동시에 작업할때 필요한 영역들을 보관하는 것.
영역별로 기억을 한다.
RAM
(높은주소)
OS Kenel Space : 드라이버가 설치되는 곳 (키보드, 마우스의 전기신호를 보낸다.)
*--------------
Stack ↓ : 지역변수, 매개변수
*---------------(점선)
Free -> Stack이 꽉 차면 밑방향으로 점선이 증가 Heap은 위쪽방향으로 증가.
거기서 점선끼리 만나게 되면 stack overflow 라고함.
*---------------(점선)
Heap ↑ : 동적메모리 (new)초기화 되지 않은 변수
*---------------
BSS : 초기화 되지 않은 변수
*---------------
Data 영역 : 전역변수, static뱐수
*---------------
Text : 상수
(낮은주소)