인프런 커뮤니티 질문&답변

김도현님의 프로필 이미지
김도현

작성한 질문수

김영한의 실전 자바 - 기본편

클래스 도입

연산위치질문 있습니다.

작성

·

274

0

  1. 객체 혹은 인스턴스는 실제 데이터가 저장된 메모리의 주소만 가지고있고, 실제 데이터는 메모리에 적재 된다 라고 이해했습니다. 맞을까요?

 

  1. 저장된 변수를 가져와 처리 (연산 등)을 하게 된다면 실제로 처리되는곳은 메모리상에서 데이터가 처리되는 것 일까요?

 

  1. 코드를 실행하면 컴파일러가 코드의 문법오류를 계산하고, class파일로 컴파일 한뒤 JVM 실행엔진에서 실행된다고 알고있는데, 데이터가 코드를 따라 연산되는곳은 실행엔진속 스택 혹은 힙 메모리 인가요?

답변 2

0

안녕하세요. 김도현님, 공식 서포터즈 코즈위버입니다.

.1 객체 혹은 인스턴스가 메모리에 생성되며(힙 영역) 이 메모리로 가기 위한 주소값을 참조변수에 담아 사용합니다.

  1. 네, 인스턴스(객체)를 수정하게 되면 메모리에 존재하는 데이터가 바뀝니다.

  2. 네 맞습니다. JVM내에 가상의 메모리 공간이 존재하며 이 공간에는 스택/힙 영역등이 구분되어 있습니다. 보통은 이런 메모리 관리를 OS레벨에서 하게 되나, JVM은 OS위에서 동작하는 가상 OS라고 생각하시면 됩니다.

감사합니다.

0

김도현님의 프로필 이미지
김도현
질문자

질문을하며 궁금해진부분이 많아 조금 공부해보았습니다.

제가 공부하며 정리한 바로는

모든 실제 데이터는 메모리에 저장되고,

이는 CPU에 의해 연산(처리) 되며

이때 처리되는 방식은 CPU가 프로그램 카운터에 따라
기계어를 읽고 필요한 데이터를 메모리로부터 가져와 연산하고 다시 메모리에 저장한다

 

이때 연산은 산술 논리장치에 의해 수행되며,

레지스터와 회로를통해 연산된다

인데 혹시 맞을까요?? 수정할부분이나 잘못된부분이 있다면 말씀해주시면 정말감사하겠습니다!

 

강사님덕에 자바공부가 너무 행복해졌어요

감사합니다 :)

안녕하세요 김도현님!

네 최종적으로 모든 프로그램은 메모리에서 CPU로 데이터를 불러와서(load) 해석하고(fetch) 실행하고 (execute) 메모리에 저장(write back) 하는 서클을 가집니다. 이처럼 CPU와 메모리가 분리된 형태를 '폰 노이만'구조라고 하는데요 이름 그대로 '폰 노이만'이 제시한 구조입니다.

지금 찾아보신 내용은 '컴퓨터구조' 에 대한 내용으로, 알아두시면 프로그램이 동작하는 원리를 이해하기 유리하실거에요.

김도현님의 프로필 이미지
김도현

작성한 질문수

질문하기