티스토리 뷰

자바프로그래밍 개발과 구동)

 

 

JDK로 만들어진 프로그램은 JRE에 의해 가상의 컴퓨터인 JVM 상에서 구동됩니다.

 

누가 만든 자바파일(Start.java) ->자바 번역기(컴파일러) -> Start.class(번역된 파일) -> JRE( OS마다 상이 ) -> JVM에 실행되는 구조입니다.

 

JDK는 자바 소스 컴파일러인 javac.exe를 포함하고 있고, JRE는 자바 프로그램 실행기인 java.exe를 포함하고 있습니다. 이런 구조를 채택한 이유는 배포되는 설치 파일을 따로 준비하는 불편함을 없애기 위함입니다. 즉 개발자 원하는 플랫폼을  JVM이 중재자로서 구동되는데 문제가 없게 합니다. ( Write Once Run AnyWhere )

 

**

 

그렇다면 절자척/구조적 프로그래밍이란 대체 무엇일까?

 

절차 말그대로 순서입니다. 순서대로 시간대로 실행해라 그것이 절차적 프로그래밍입니다.

그렇다면 구조적이란 건 무슨 뜻일까요? 이 책에서의 구조적 프로그래밍의 뜻은 함수를 적극 애용해라!! 

Why??? 재사용성을 높여서 코드를 줄인다는 뜻이 있습니다.

 

 

**

 

 

프로그램 메모리 사용방식) 

 

참고 : https://jinshine.github.io/2018/05/17/%EC%BB%B4%ED%93%A8%ED%84%B0%20%EA%B8%B0%EC%B4%88/%EB%A9%94%EB%AA%A8%EB%A6%AC%EA%B5%AC%EC%A1%B0/

 

사실 이것을 말씀드리려는 것이 목적이며 핵심입니다.

 

C를 어느정도 배우셨다면 메모리 관리에 대해 배웁니다. 이 책에서도 이 메모리 관리부분을 설명하는데 간단히 정리를 해 포스팅하려 합니다.

 

프로그램이 메모리를 사용하는 방식에는 코드 실행 영역과 데이터 저장 영역으로 나뉩니다. 여기서 데이터 저장 영역은 스태틱, 스택, 힙 영역으로 또 세분화 되는데 이 세분화 되는 것들이 핵심입니다.

 

스태틱 메모리에 들어가는 것들 : 자바 패키지, 클래스, 스태틱 명칭이 붙은 함수나 변수 혹은 객체.

스택 메모리에 들어가는 것들 : 함수에 있는 여러가지들(변수, 조건문...)

힙 메모리에 들어가는 것들 : 객체. ( new 연산자 ! )

 

간단하죠?

 

여기서 중요 포인트 : 이 녀석들 전부다 주소값을 가지고 있습니다. 변수든 함수든 클래스든 말이죠. 그렇기에 주소를 알면 직접 접근이 가능하나, 이는 C와 C++ 포인터에 관한 내용입니다. java는 그 중요성이 덜합니다.

 

스태틱 메모리가 끝나는 시점 : 프로그램이 종료시점

스택 메모리가 끝나는 시점 : 함수가 끝나는 시점(main 역시 마찬가지!)

힙 메모리가 끝나는 시점 : 가비지 컬렉터에 의해서.. => 간단히 C로 생각을 하자면 직접 데이터를 없애주는 과정(NULL),  가비지 컬렉터에 궁금하신 분은 구글링을 부탁드립니다. ㅠㅠ 여기서는 힙 메모리를 관리하는 것은 가비지 컬렉터가 한다는 정도만 알려드립니다.

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함