๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ’Ž/Java

[Java] int ์™€ Integer ์ฐจ์ด์ 

by dar0m! 2020. 9. 8.

๊ธฐ๋ณธํ˜• vs ์ฐธ์กฐํ˜•

  • ๊ธฐ๋ณธํ˜• : ์˜ค์ง 8๊ฐœ(boolean, char, byte, short, int, long, float, double)
    • ์‹ค์ œ ๊ฐ’์„ ์ €์žฅ
    • ๊ธฐ๋ณธํ˜• ๋งค๊ฐœ๋ณ€์ˆ˜ - ๊ฐ’์„ ์ฝ๊ธฐ๋งŒ ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ์ฐธ์กฐํ˜• : ๊ธฐ๋ณธํ˜•์„ ์ œ์™ธํ•œ ๋‚˜๋จธ์ง€(String, System ๋“ฑ)
    • ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ๋ฅผ ์ €์žฅ
    • ์ฐธ์กฐํ˜• ๋งค๊ฐœ๋ณ€์ˆ˜ - ์ฝ๊ณ  ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋‹ค. (์ฃผ์†Œ๋ฅผ ์ „๋‹ฌ ๋ฐ›์œผ๋‹ˆ๊นŒ)

 

๋ž˜ํผ(wrapper) ํด๋ž˜์Šค

๊ธฐ๋ณธํ˜•๊ฐ’์„ ๊ฐ์‹ธ๋Š” ํด๋ž˜์Šค. 8๊ฐœ์˜ ๊ธฐ๋ณธํ˜•์„ ๊ฐ์ฒด๋กœ ๋‹ค๋ค„์•ผํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ํด๋ž˜์Šค.
๐Ÿ‘‰ Boolean, Character, Byte, Short, Integer, Long, Float, Double

Java๋Š” 90% ๊ฐ์ฒด์ง€ํ–ฅ ์–ธ์–ด๋กœ ๋ชจ๋“ ๊ฒƒ์— ๊ฐ์ฒด๋ฅผ ์‚ฌ์šฉํ•˜๋Š”๋ฐ ์„ฑ๋Šฅ๋•Œ๋ฌธ์— ๊ธฐ๋ณธํ˜•์ด ํ•„์š”ํ–ˆ๋‹ค. ์ฃผ์†Œ๋ฅผ ๊ฐ€๋ฆฌํ‚ฌ ๋•Œ ๊ฐ์ฒด๊ฐ€ ์•„๋‹Œ ๊ธฐ๋ณธํ˜•์ด๋ฉด ์ฃผ์†Œ๊ฐ’์„ ๋ฐ”๋กœ ์ฐพ์„ ์ˆ˜ ์žˆ์œผ๋‹ˆ๊นŒ.

equals, compareTo, toString, ๋“ฑ ์ƒ์ˆ˜๊ฐ’์„ ๊ฐ–๊ณ  ์žˆ๋‹ค.

์˜ˆ์ œ

  • ๋ž˜ํผ ํด๋ž˜์Šค Integer → int ๋กœ ๋ณ€ํ™˜ํ•˜๋ ค๋ฉด intValue()
  • ๋ž˜ํผ ํด๋ž˜์Šค Long → long ๋กœ ๋ณ€ํ™˜ํ•˜๋ ค๋ฉด longvalue()
ArrayList<Integer> list = new ArrayList<Integer>();
list.add(new Integer(100));

int i = list.get(0).intValue();

 

  • ๋ฌธ์ž์—ด → ๊ธฐ๋ณธํ˜• : parseInt, valueOf("")
  • ๋ฌธ์ž์—ด → ๋ž˜ํผ ํด๋ž˜์Šค : valueOf(""), new Integer(""), new Byte("")
  • ๋ž˜ํผ ํด๋ž˜์Šค → ๋ฌธ์ž์—ด : toString()

 

์˜คํ† ๋ฐ•์‹ฑ & ์–ธ๋ฐ•์‹ฑ

ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ์‚ฌ์šฉํ•˜๊ธฐ ์‰ฝ๊ฒŒ ์ž๋™์œผ๋กœ ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์ฝ”๋“œ๋ฅผ ์ถ”๊ฐ€ํ•ด์ฃผ๋Š” ๊ฒƒ
  • int → integer : ์ž๋™์œผ๋กœ ๋ฐ”๊ฟ”์ฃผ๋Š” ๊ฒƒ์„ ์˜คํ† ๋ฐ•์‹ฑ
  • integer → int : ์ž๋™์œผ๋กœ ๋ฐ”๊ฟ”์ฃผ๋Š” ๊ฒƒ์„ ์–ธ๋ฐ•์‹ฑ

boxing : ๋ž˜ํผํด๋ž˜์Šค๋กœ ๊ฐ์‹ธ๋Š” ๊ฒƒ

JDK 1.5 ์ด์ „์—๋Š” ๊ธฐ๋ณธํ˜•๊ณผ ์ฐธ์กฐํ˜•๊ฐ„์˜ ์—ฐ์‚ฐ์ด ๋ถˆ๊ฐ€๋Šฅํ–ˆ์—ˆ๋‹ค. 1.5 ์ดํ›„์—๋Š” OK. 
์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์ฝ”๋“œ๋ฅผ ์ž๋™์œผ๋กœ ๋ณ€ํ™˜ํ•ด์ฃผ๋Š” ๊ฒƒ ๋ฟ.

์œ„์—์„œ ์‚ดํŽด๋ดค๋˜ ์ฝ”๋“œ๋ฅผ ์˜คํ† ๋ฐ•์‹ฑ์„ ์ด์šฉํ•˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด ๋œ๋‹ค.
๋”ฐ๋ผ์„œ ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์ž๋™์œผ๋กœ ๋ณ€ํ™˜ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์‚ฌ์šฉํ•  ๋•Œ๋Š” int์™€ Integer๊ตฌ๋ถ„ ์—†์ด ์‚ฌ์šฉ๊ฐ€๋Šฅํ•˜๋‹ค. 

ArrayList<Integer> list = new ArrayList<Integer>(); // ์ง€๋„ค๋ฆญ์Šค
//list.add(new Integer(100)); // list์—๋Š” ๊ฐ์ฒด๋งŒ ์ถ”๊ฐ€ ๊ฐ€๋Šฅ
list.add(100); // JDK1.5์ด์ „์—๋Š” ์—๋Ÿฌ.

//int i = list.get(0).intValue();
int i = list.get(0); // intValue()๋กœ Integer๋ฅผ int๋กœ ๋ณ€ํ™˜

 

์ •๋ฆฌ

int๋Š” ๊ธฐ๋ณธํ˜•์ด๊ณ , Interger๋Š” ๊ธฐ๋ณธํ˜•์„ ์ฐธ์กฐํ˜•์œผ๋กœ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•œ ๋ž˜ํผ ํด๋ž˜์Šค๋กœ

๊ฒฐ๊ตญ, int์™€ Integer์˜ ์ฐจ์ด๋Š” ๊ธฐ๋ณธํ˜•, ์ฐธ์กฐํ˜•์˜ ์ฐจ์ด๋‹ค.

๊ทธ๋งˆ์ €๋„ JDK1.5์ดํ›„๋กœ ์˜คํ† ๋ฐ•์‹ฑ, ์–ธ๋ฐ•์‹ฑ์ด ์ง€์›๋˜์–ด ์‚ฌ์šฉํ•  ๋•Œ๋Š” ๊ฑฐ์˜ ๊ตฌ๋ถ„ ์—†์ด ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.
ํ•˜์ง€๋งŒ ์•„๋ฌด๋ฆฌ ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์ง€์›ํ•œ๋‹ค ํ•ด๋„ ์ฐจ์ด์ ์„ ์•Œ๊ณ  ์žˆ๋Š” ๊ฒƒ์ด ์ข‹์„ ๊ฒƒ ๊ฐ™๋‹ค.

 

์ฐธ๊ณ 

 

๋Œ“๊ธ€