단순히 primitive type 이 stack 에 쌓인다고 말하기보다
member variable 이냐
local variable 에 따라 나뉠수 있습니다.
member variable은
method area의 정보를 바탕으로 heap 에 생성되는 method area의 구현체
그래서 race condition 에 영향을 미침
local variable은
method information 에 변수 정보가 위치하고 java virtual machine stacks 에 할당
그래서 heap 영역이 아니기 때문에 race condition 에 영향을 미치지 않음
만약에 primitive type 대신에 int를 interger로 사용하게 되면
heap 에 instance를 생성하게 된다.
이것은 변수 선언시 instance에 대한 메모리를 할당 받아야 하는 메모리 overhead만을 의미하는것이 아니고
객체의 method area를 읽고 할당에 필요한 연산을 수행하는 CPU Overhead까지 필요하다는 것으 ㄹ의미
또한 이를 참조할때마다 class variable 영역을 거쳐 해당 class의 method table을 지나 heap에 instance를 찾아 계속 해서 메모리 점프를 해야한다. 이것은 결국 리소스의 사용률을 높이게 되고
전반적인 성능 저하 요인이 될수 있다.
단순히 primitive type 이 stack 에 쌓인다고 말하기보다 member variable 이냐 local variable 에 따라 나뉠수 있습니다.
member variable은 method area의 정보를 바탕으로 heap 에 생성되는 method area의 구현체 그래서 race condition 에 영향을 미침
local variable은 method information 에 변수 정보가 위치하고 java virtual machine stacks 에 할당 그래서 heap 영역이 아니기 때문에 race condition 에 영향을 미치지 않음
만약에 primitive type 대신에 int를 interger로 사용하게 되면 heap 에 instance를 생성하게 된다. 이것은 변수 선언시 instance에 대한 메모리를 할당 받아야 하는 메모리 overhead만을 의미하는것이 아니고 객체의 method area를 읽고 할당에 필요한 연산을 수행하는 CPU Overhead까지 필요하다는 것으 ㄹ의미 또한 이를 참조할때마다 class variable 영역을 거쳐 해당 class의 method table을 지나 heap에 instance를 찾아 계속 해서 메모리 점프를 해야한다. 이것은 결국 리소스의 사용률을 높이게 되고 전반적인 성능 저하 요인이 될수 있다.