Java variables and Memory

ASHAPPYASIKNOW·2022년 11월 13일
1

PROCESS, THREAD

목록 보기
5/5
post-thumbnail
post-custom-banner

Bit와 Processor (32 bits or 64 bits)

32 bits

한 비트는 0 또는 1을 나타낼 수 있다.
이 비트가 32개를 한 번에 처리할 수 있는 프로세서를 32비트 프로세스라고 한다. (64개 -> 64 비트 프로세스)

Primitives vs Objects

Primitives vs Objects

원시(Primitive) 타입과 객체(Object) 타입을 구분하기 위해서는 값(Value)의 역할에 집중하면 된다.

한 개의 값 즉, 32 비트 또는 64 비트로 나타낼 수 있는 것을 원시 타입이라고 한다.

  • 원시 타입 종류: double, float, long, int, char, short, byte, boolean
  • 원시 타입 이외: 객체 타입

원시 타입 이외에는 한 개의 값으로 표현할 수 없기 때문에 값들의 묶음을 만들고 그 위치를 가리키게 했다. 이렇게 값 자체가 객체의 주소를 나타내는 방식을 레퍼런스(Reference)라고 한다.


레퍼런스(Reference) 할당은 Atomic 한가?

모든 레퍼런스 할당은 Atomic 이다.

원시(Primitive) 타입은 Atomic 한가?

Atomic 타입

int, short, byte, float, char, boolean

Atomic이 아닌 타입 (Multithread 작업 시 주의)

long, double

Long과 Double을 Atomic 하게 만드는 방법

volatile keyword

volatile double x = 1.0;
volatile long y = 10;

변수와 메모리

Quiz: 아래의 소스코드를 보고 b1, b2, b3를 예상해 보시오

Quiz 1

정답은?

a == b is true
a == c is true
a == d is false

Stack Heap 할당

Quiz: 아래의 소스코드를 보고 b1, b2, b3를 예상해 보시오

Quiz 2

정답은?

a.equals(b) is true
a.equals(c) is true
a.equals(d) is true
profile
36.9 It's good time to start something new
post-custom-banner

1개의 댓글

comment-user-thumbnail
2022년 11월 15일

덕분에 다시 한번 익히고 갑니다. 감사합니다~

답글 달기