티스토리 뷰
자바프로그래밍 개발과 구동)
JDK로 만들어진 프로그램은 JRE에 의해 가상의 컴퓨터인 JVM 상에서 구동됩니다.
누가 만든 자바파일(Start.java) ->자바 번역기(컴파일러) -> Start.class(번역된 파일) -> JRE( OS마다 상이 ) -> JVM에 실행되는 구조입니다.
JDK는 자바 소스 컴파일러인 javac.exe를 포함하고 있고, JRE는 자바 프로그램 실행기인 java.exe를 포함하고 있습니다. 이런 구조를 채택한 이유는 배포되는 설치 파일을 따로 준비하는 불편함을 없애기 위함입니다. 즉 개발자 원하는 플랫폼을 JVM이 중재자로서 구동되는데 문제가 없게 합니다. ( Write Once Run AnyWhere )
**
그렇다면 절자척/구조적 프로그래밍이란 대체 무엇일까?
절차 말그대로 순서입니다. 순서대로 시간대로 실행해라 그것이 절차적 프로그래밍입니다.
그렇다면 구조적이란 건 무슨 뜻일까요? 이 책에서의 구조적 프로그래밍의 뜻은 함수를 적극 애용해라!!
Why??? 재사용성을 높여서 코드를 줄인다는 뜻이 있습니다.
**
프로그램 메모리 사용방식)
사실 이것을 말씀드리려는 것이 목적이며 핵심입니다.
C를 어느정도 배우셨다면 메모리 관리에 대해 배웁니다. 이 책에서도 이 메모리 관리부분을 설명하는데 간단히 정리를 해 포스팅하려 합니다.
프로그램이 메모리를 사용하는 방식에는 코드 실행 영역과 데이터 저장 영역으로 나뉩니다. 여기서 데이터 저장 영역은 스태틱, 스택, 힙 영역으로 또 세분화 되는데 이 세분화 되는 것들이 핵심입니다.
스태틱 메모리에 들어가는 것들 : 자바 패키지, 클래스, 스태틱 명칭이 붙은 함수나 변수 혹은 객체.
스택 메모리에 들어가는 것들 : 함수에 있는 여러가지들(변수, 조건문...)
힙 메모리에 들어가는 것들 : 객체. ( new 연산자 ! )
간단하죠?
여기서 중요 포인트 : 이 녀석들 전부다 주소값을 가지고 있습니다. 변수든 함수든 클래스든 말이죠. 그렇기에 주소를 알면 직접 접근이 가능하나, 이는 C와 C++ 포인터에 관한 내용입니다. java는 그 중요성이 덜합니다.
스태틱 메모리가 끝나는 시점 : 프로그램이 종료시점
스택 메모리가 끝나는 시점 : 함수가 끝나는 시점(main 역시 마찬가지!)
힙 메모리가 끝나는 시점 : 가비지 컬렉터에 의해서.. => 간단히 C로 생각을 하자면 직접 데이터를 없애주는 과정(NULL), 가비지 컬렉터에 궁금하신 분은 구글링을 부탁드립니다. ㅠㅠ 여기서는 힙 메모리를 관리하는 것은 가비지 컬렉터가 한다는 정도만 알려드립니다.
'책 > 스프링 입문 - 자바 객체지향의 원리' 카테고리의 다른 글
6장. 디자인 패턴 (0) | 2021.09.23 |
---|---|
5장. 객체 지향 설계 5원칙 (0) | 2021.09.19 |
4장. 객체 지향의 확장 (0) | 2021.09.18 |
3장. 자바와 객체지향 (0) | 2021.09.16 |
1장. 사람에 의한 사람을 위한 기술 (0) | 2021.09.14 |
- Total
- Today
- Yesterday
- https://react.vlpt.us/
- https://jwprogramming.tistory.com/52
- https://wikidocs.net/68
- https://subicura.com/2017/01/19/docker-guide-for-beginners-1.html
- https://react.vlpt.us/basic/11-render-array.html
- https://velog.io/@juno7803/React%EA%B0%80-%ED%83%9C%EC%96%B4%EB%82%9C-%EB%B0%B0%EA%B2%BD
- ㄴ
- Co
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |