inflearn logo
강의

Course

Instructor

자바 메모리 사용에 대해 궁금한 점이 있습니다.

309

qazpoiu79

6 asked

0

안녕하세요

 

자바를 공부하면서 자바의 메모리 사용에 대해 알아가고 있습니다.

지금까지 아는 바는 다음과 같습니다 :

  1. 객체(object)를 프로그래밍 언어로 구현한 것이 class이다.
  2. class를 메모리에 생성하면 사용자가 정의한 멤버변수(속성)와 멤버함수(메소드)는 Heap segment에 용량이 할당된다.
  3. Heap segment에 할당된 메모리 공간의 주소를 가리키는 '참조(형) 변수(reference variable)'가 Stack segment에 할당된다.
  4. 변수에 대입되는 값들(리터럴: 정수, 실수, 문자)은 JVM에 제공하는 Constant pool이 Heap segment에 올려지고, 변수에 값을 대입하는 것은 할당된 변수 메모리에 대입하려는 값을 constant pool에서 찾아 그 주소를 가리키게 하는 것이다.

 

자바의 메모리 사용에 대해 검색해보니 String 객체를 예시로 든 내용들을 많이 보았습니다. 제가 이해한 바는 다음과 같습니다 :

// 사례 1

String example = "example";

/*
사례 1의 경우 example이라는 참조변수는 스택에 할당되고,
이것이 직접 힙의 상수 풀의 "example"이 있는 메모리의 주소를 가리킨다.
*/
// 사례 2

String example = new String("example");

/*
사례 2의 경우 example이라는 참조변수는 스택에 할당되고,
String 객체의 한 인스턴스가 힙에 생성되며,
그 인스턴스가 상수 풀의 example"이 있는 메모리의 주소를 가리킨다.
*/

 

위의 사례에 대하여 실제 메모리 사용이 어떻게 이루어지는지 궁금해서 질문 올립니다.

제가 생각해본 결과 다음 세 경우 중 하나에 해당하리라고 추측하는데 어느 것이 맞는지 알고 싶습니다.

 


 

 


 

감사합니다.

자바 메모리

Answer 0

64bit CPU에서의 메모리 주소 표현

0

194

2

[ScannerWhileEx4] input.nextLine(); 질문

1

160

1

예제코드 자바입니다

1

186

1

로그관련 리소스에 대해서 질문이 있습니다.

0

390

1

'버스(Bus)' 에 대하여 질문이 있습니다.

0

338

1

할당되지않은 메모리

1

350

2

스트림 질문 있습니다.

1

694

1

메모리 주소에 관한 질분

0

679

1

JPA페이징 공부를 하다가 궁금한점이 있습니다.

0

4150

1

실무에서도 예제처럼 익셉션을 내도 되는지 궁금합니다.

0

407

1

채팅관련 질문입니다

1

415

0

산 넘어 산 ㅠ java -jar 무반응 에러

0

992

1

공유 메모리 및 프로세스 생성 관련

3

492

1

부트 로그인 화면

0

346

0

mov [a] 상수값 관련해서 질문이 있습니다.

0

305

1

메모리 데이터베이스에 관해 질문 드립니다

0

286

1

이클립스 콘솔 창에 한글이 깨져요...

0

393

1

안녕하세요 putchar 질문입니다.

0

239

1

프로그램에 할당된 메모리의 각각 메모리요소들은 서로 연접해있는가?

-1

264

2

노트패드 오류 한글을 출력하면 글자마다 띄어쓰기가 돼요

1

666

1

노트패드 주석 오류

0

439

1

질문입니다.

0

286

1

질문입니다.

0

311

2

인스타그램 자바언어로 하는 클론코딩은 없을까요?

0

1696

1