이 책을 선택한 이유
- F-lab이라는 기관을 통해서 멘토링을 받았었는데,
그 커리큘럼에 이 책이 있어서 멘토링 기간동안에 읽었었고,
나중에 복습 차원에서 한 번 다시 읽었다.
배운 점
- 기계어-어셈블리어-C언어-C++-Java로 발전해온 프로그래밍 언어의 역사에 대해서 알게 되었다.
특히, From 문제 To 해결의 관점에서
기존의 언어에 어떤 문제가 있었고, 다음의 언어가 그것을 어떻게 해결했는지에 초점을 맞춰서 이해할 수 있었다.
- Java 언어의 가장 큰 특징은 Write Once Run Anywhere이다.
이것은 JVM에 의해서 달성된다.
- 스프링 프레임워크는 객체지향(OOP) 프레임워크이다.
따라서 객체지향을 올바르고 제대로 이해해야 스프링 프레임워크를 제대로 이해할 수 있다.
- JDK는 Java Development Kit
JRE는 Java Runtime Environment
JVM은 Java Virtual Machine
- 메모리 영역은 T 메모리 구조라고 일컫고, 스태틱, 스택, 힙 영역으로 구성된다.
(실제로는 PC Register, Native Method Stack도 포함되지만, 책에서는 생략하였습니다)
- 프로그램이 실행될 때, 우선 JRE는 프로그램 안에 main() 메서드가 있는지 확인한다
-> main() 메서드가 확인되면 JRE는 JVM에 전원을 부팅한다
-> 부팅된 JVM은 목적 파일을 받아 그 목적 파일을 실행한다
-> 또한, JVM은 전처리 과정을 하는데,
바로 프로그램이 반드시 포함해야 하는 java.lang 패키지를 T 메모리의 스태틱 영역에 가져다 놓는다
- main() 메서드는 프로그램의 시작점이기도 하고, 끝이기도 합니다.
main() 메서드가 끝나면 JRE는 JVM을 종료하고 JRE 자체도 운영체제 상의 메모리에서 사라진다.
- 스태틱 영역은 클래스 멤버 변수를, 스택 영역은 지역 변수를, 힙 영역은 객체 멤버 변수를 관리한다.
- 멀티 스레드의 T 메모리 모델은 스택 영역을 스레드 개수만큼 분할해서 쓰는 것이다.
멀티 프로세스는 다수의 데이터 저장 영역, 즉 다수의 T 메모리를 갖는 구조이다.
- 멀티 스레드는 스택 영역은 각 스레드마다 독립되어 있지만, 스태틱 영역과 힙 영역은 공유한다.
- 멀티 스레드에서 쓰기 가능한 전역 변수를 사용하면 스레드 안전성이 깨질 수 있다.
'책' 카테고리의 다른 글
테크니컬 리더 - 서문 (0) | 2022.05.05 |
---|---|
객체지향의 사실과 오해 리뷰(1) 01~02 (0) | 2022.04.30 |
스프링 입문을 위한 자바 객체지향의 원리와 이해 리뷰(2) (3~5장) (0) | 2022.04.26 |