long์ ์์ ํ์
(Primitive Type), Long์ ์ฐธ์กฐ ํ์
(Reference Type)์ด๋ค
๐ฑ์์ ํ์ (Primitive Type)
์ ์, ์ค์, ๋ฌธ์, ๋
ผ๋ฆฌ ๋ฆฌํฐ๋ด ๋ฑ ์ค์ ๋ฉ๋ชจ๋ฆฌ์ ๋ฐ์ดํฐ ๊ฐ์ ์ง์ ์ ์ฅํ๋ ํ์
์ผ๋ก์
boolean, char, byte, short, int, long, float, double๋ฅผ ๋งํ๋ค.
๐ฑ์ฐธ์กฐ ํ์ (Reference Type)
๊ฐ์ฒด์ ์ฃผ์๋ฅผ ์ ์ฅํ๋ ํ์
์ผ๋ก ๋ฉ๋ชจ๋ฆฌ ์ฃผ์ ๊ฐ์ ํตํด ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ๋ ํ์
์ผ๋ก์
์์ ํ์
์ ์ ์ธํ ๋ฌธ์์ด, ๋ฐฐ์ด, enum, ํด๋์ค, ์ธํฐํ์ด์ค๋ฅผ ๋งํ๋ค.
์์ ํ์
(Primitive Type)์ null ํ ๋น์ด ๋ถ๊ฐ๋ฅํ๋ค
์์ ํ์
๊ณผ ์ฐธ์กฐ ํ์
์ ๊ฐ์ฅ ํฐ ์ฐจ์ด์ ์ค ํ๋๋ ์์ ํ์
์ null๋ก ์ง์ ์ด ๋ถ๊ฐ๋ฅํ์ง๋ง, ์ฐธ์กฐ ํ์
์ ๊ฐ๋ฅํ๋ค๋ ์ ์ด๋ค.
ํ์ง๋ง ์์ ํ์
์ด๋ผ๊ณ ํด์ null์ด ํ์์๋ ๊ฒ์ ์๋๋ค.
๊ทธ๋์ ์์ ํ์
์ ์ฐธ์กฐ ํ์
์ผ๋ก ๋ณํํ๋ Boxed Primitive Type์ธ ๋ํผ ํด๋์ค(Wrapper Class)๋ฅผ ์ฌ์ฉํ๊ฒ ๋๋ค.
๋ํผ ํด๋์ค๋ ํด๋์ค์ด๊ธฐ ๋๋ฌธ์ ์ฐธ์กฐ ํ์
์ด๋ค.
ํ์ง๋ง ์์ ํ์
(Primitive Type)์ ์ฑ๋ฅ์ด ์ข๋ค
์์ ํ์
์ ์ง์ ๊ฐ์ ํ ๋นํ๋ค๋ ์ ์์ ์ฐธ์กฐ ํ์
์ ๋นํด ์ฑ๋ฅ์ด ์ข๋ค๋ ์ฅ์ ์ด ์๋ค.
์์ ํ์
์ 'Stack' ์์ญ์ ๊ฐ์ด ์กด์ฌํ๊ณ , ์ฐธ์กฐ ํ์
์ ๊ฒฝ์ฐ 'Stack' ์์ญ์๋ ์ฐธ์กฐ ์ฃผ์ ์ ๋ณด๋ง ์๊ณ ์ค์ ๋ฐ์ดํฐ๋ 'Heap' ์์ญ์ ์กด์ฌํ๋ค.
์ฆ, ๊ฐ์ ๊ฐ์ ธ์ค๋ ๋ฐ์๋ ์์ ํ์
์ด ์๋ ์ ๋น ๋ฅด๋ค.
์ถ๊ฐ๋ก ๋ฉ๋ชจ๋ฆฌ ์ธก๋ฉด์์๋ ์์ ํ์
์ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข๋ค.
๋๋ฉ์ธ์์ id ๊ฐ์ Long์ ์ฌ์ฉํ๋ ์ด์ ๋
๋๋ฉ์ธ ์์ญ์ id๋ ๋์ฒด๋ก DB Table์ auto increment ๊ฐ์ ์๋ฏธํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง๋ค.
์ฆ, ๋ฐ์ดํฐ๊ฐ ์์ฑ๋๋ ์์ ์์ ํด๋น ๊ฐ์ด ํ ๋น๋๋ค๋ ๊ฒ์ด๋ฉฐ, ๋๋ฉ์ธ ๊ฐ์ฒด์ id๋ ํน์ ์์ ์ ์กด์ฌํ ์๋ ์๊ณ ์กด์ฌํ์ง ์์ ์๋ ์๋ค.
๊ทธ๋ ๊ธฐ ๋๋ฌธ์ long์ด ์๋ Long์ ์ฌ์ฉํ๋ฉฐ, ๋ค๋ง ์ด ๋ณ์๊ฐ not null ์ด ๋ณด์ฅ๋๋ค๋ฉด long์ ์ฌ์ฉํ๋ ๊ฒ์ด ๋ ์ข๋ค.
์ถ๊ฐ) ์์ ํ์
๊ณผ ์ฐธ์กฐ ํ์
์ ํผ์ฉํด์ ์ฌ์ฉํ์ง ๋ง์
์์ ํ์
์ ์ฐธ์กฐ ํ์
์ผ๋ก ๋ณํํ๋ ๊ฒ์ Boxing, ์ฐธ์กฐ ํ์
์ ์์ ํ์
์ผ๋ก ๋ณํํ๋ ๊ฒ์ UnBoxing ์ด๋ผ๊ณ ํ๋ค.
์๋ฐ์์๋ ์ด๋ฌํ ๋ณํ์ ๋ช
์์ ์ผ๋ก ์ ์ธํ์ง ์์๋ ๊ฐ๋ฅํ๋๋ก Auto Boxing๊ณผ Auto UnBoxing ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ค.
ํ์ง๋ง ์ด ๊ฒฝ์ฐ ๋ถํ์ํ ๊ฐ์ฒด ์์ฑ์ผ๋ก ์ธํ ์ฑ๋ฅ ์ ํ๋ฅผ ์ผ์ผํฌ ์ ์๋ค.
public class Sum {
private static long sum() {
Long sum = 0L;
for (long i = 0; i <= Integer.MAX_VALUE; i++) {
sum += i;
}
return sum;
}
}
๋ค์๊ณผ ๊ฐ์ ์ฝ๋์์ long์ผ๋ก ์ ์ธ๋ i ๊ฐ์ด Long์ผ๋ก ์ ์ธ๋ sum ๋ณ์์ ์ฐ์ฐ์ ํ๊ธฐ ์ํด Auto Boxing์ ํ๊ฒ ๋๋๋ฐ,
long์ Long์ผ๋ก ๋ณํํ๋ ๊ณผ์ ์์ ๋ถํ์ํ Long ์ธ์คํด์ค๊ฐ ์์ฑ๋๋ค.
long์ผ๋ก ์ ์ธํ์ ๋์ ๋น๊ตํ๋ฉด ์ฝ 3๋ฐฐ์ ์คํ ์๋ ์ฐจ์ด(Java11, M1 ๊ธฐ์ค)๋ฅผ ํ์ธ ๊ฐ๋ฅํ๋ค.
๊ทธ๋ฌ๋ฏ๋ก ์ต๋ํ ์์ ํ์
์ ์ฌ์ฉํ๋ฉฐ, ์์ ํ์
๊ณผ ์ฐธ์กฐ ํ์
์ด ํผ์ฉ๋์ง ์๋๋ก ์ฃผ์ํด์ผ ํ๋ค.
'Backend๐ฑ > Java' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Java] ArrayList ํน์ ๊ฐ ์ญ์ (0) | 2023.05.28 |
---|---|
[Optional๐ฑ] Java ์ ์ฉํ Null ์ฒ๋ฆฌ (0) | 2023.05.24 |
[JAVA] JPA Optional๐ฑ, ifPresent๋ฅผ ํตํ null ์ฒดํฌ (0) | 2023.05.24 |
[JAVA] ์๋ฐ์์ ๋ฌธ์์ด ๐ ์ซ์๋ก (0) | 2023.05.24 |
[๋ฉด์ ์ง๋ฌธ๐ฑ] ArrayList๋ ์นํด์ง๊ธฐ๐ฅบ (0) | 2023.05.22 |