15-2.¹Ú½Ì°ú ¾ð¹Ú½Ì

15-2-1.¹Ú½Ì

ÀÚ¹ÙÀÇ Å¸ÀÔÀº Å©°Ô ±âº»Çü°ú ÂüÁ¶ÇüÀ¸·Î ³ª´©¾îÁö´Âµ¥ Ư¼ºÀÌ ¿ö³« ´Þ¶ó ¼¯¾î¼­ »ç¿ëÇϱ⠾î·Æ´Ù. ±×·¡¼­ ¹®Á¦°¡ »ý±â´Â °æ¿ì°¡ Á¾Á¾ ÀÖ´Ù.

 

int i = 1234;

String str = i.toString();

System.out.println(str);

 

ÀÌ ÄÚµåÀÇ Àǵµ´Â Á¤¼öÇü º¯¼ö i¿¡ ´ã±ä 1234 °ªÀ» ¹®ÀÚ¿­·Î ¹Ù²Ù¾î Ãâ·ÂÇÏ´Â °ÍÀÌ´Ù. ¾çÂÊÀÇ Å¸ÀÔÀÌ ´Þ¶ó str = i; ½ÄÀ¸·Î ¹Ù·Î ´ëÀÔÇÒ ¼ö ¾ø´Ù. ±×·¡¼­ i.toString()À¸·Î Á¤¼ö¸¦ ¹®ÀÚ¿­·Î ¹Ù²Û ÈÄ ´ëÀÔÇÏ·Á Çߴµ¥ ÀÌ ±¸¹®µµ µÉ °Í °°Áö¸¸ ¿ª½Ã ¾ÈµÈ´Ù.

ÀÚ¹ÙÀÇ ¸ðµç Ŭ·¡½º´Â ObjectÀÇ ÈļÕÀÌÁö¸¸ ÀÌ´Â ¾îµð±îÁö³ª ÂüÁ¶ÇüÀÇ °æ¿ì¿¡¸¸ ±×·¸´Ù. ±âº» ŸÀÔÀÇ º¯¼ö´Â °´Ã¼°¡ ¾Æ´Ï±â ¶§¹®¿¡ ObjectÀÇ Èļյµ ¾Æ´Ï¸ç toString ¸Þ¼­µåµµ Áö¿øÇÏÁö ¾Ê´Â´Ù. ¸¸¾à Á¤¼ö°¡ ObjectÀÇ ÈļÕÀ̶ó¸é 1234.toString() °°Àº ±¸¹®µµ °¡´ÉÇØ¾ß Çϴµ¥ º¸´Ù½ÃÇÇ ¹º°¡ ¾î»öÇÏÁö ¾ÊÀº°¡?

ÀÌ ¹®Á¦ÀÇ ±Ùº» ¿øÀÎÀº str = i; ´ëÀÔ¹®ÀÇ Áº¯Àº ÂüÁ¶ÇüÀÌ°í ¿ìº¯Àº ±âº»ÇüÀ̶ó´Â µ¥ ÀÖ´Ù. ´ëÀÔÀÌ °¡´ÉÇÏ·Á¸é ¾çÂÊÀÇ Å¸ÀÔÀ» ¸ÂÃß¾î¾ß ÇÑ´Ù. strÀº ´ëÀÔÀ» ¹Þ´Â ÂÊÀÌ´Ï ¹Ù²Ü ¼ö ¾ø°í ±âº»ÇüÀÎ i¸¦ ÂüÁ¶ÇüÀ¸·Î ¹Ù²Ù¾î¾ß Çϴµ¥ ÀÌ·² ¶§ ·¡ÆÛ Å¬·¡½º¸¦ »ç¿ëÇÑ´Ù. ·¡ÆÛ(Wrapper) Ŭ·¡½º´Â ±âº»ÇüÀÇ °ªÀ» °¨½Î´Â ÂüÁ¶ÇüÀÌ¸ç °¢ ±âº»Çü¿¡ ´ëÇØ ´ÙÀ½°ú °°Àº ·¡ÆÛ Å¬·¡½º°¡ Á¦°øµÈ´Ù.

 

±âº» ŸÀÔ

·¡ÆÛ Å¬·¡½º

byte

Byte

short

Short

char

Character

int

Integer

long

Long

float

Float

double

Double

boolean

Boolean

 

±âº» ŸÀÔ°ú öÀÚ´Â °ÅÀÇ °°µÇ ¾àÀÚ ´ë½Å ´Ü¾î Àüü¸¦ ´Ù ¾²¸ç ù ÀÚ°¡ ´ë¹®ÀÚÀÌ´Ù. »ç¿ë ¹æ¹ýÀº °ÅÀÇ ºñ½ÁÇÏ´Ï Integer À§ÁÖ·Î ¿¬±¸ÇØ º¸ÀÚ. ·¡ÆÛ Å¬·¡½ºÀÇ »ý¼ºÀÚ·Î ±âº»ÇüÀÇ º¯¼ö³ª ¸®ÅÍ·²À» Àü´ÞÇϸé ÀÌ °ªÀ» °¨½Î´Â ÂüÁ¶Çü °´Ã¼°¡ Èü¿¡ »ý¼ºµÈ´Ù.

ÀÌ·¸°Ô »ý¼ºµÈ ·¡ÆÛ´Â °´Ã¼À̹ǷΠObjectÀÇ ÈļÕÀ̸ç ObjectÀÇ ¸ðµç ¸Þ¼­µå¸¦ È£ÃâÇÒ ¼ö ÀÖ´Ù. ´Ü, °ªÀ» °¨½Î±â¸¸ ÇÒ »ÓÀÌ¸ç ¿¬»êÀ» À§ÇÑ ¼öÄ¡Çü ŸÀÔÀÌ ¾Æ´Ï¾î¼­ ±âº»Çüó·³ °ªÀ» º¯°æÇϰųª Áõ°¨½Ãų ¼ö´Â ¾ø´Ù. ·¡ÆÛ¸¦ »ç¿ëÇϸé Á¤¼ö¸¦ ¹®ÀÚ¿­·Î ½±°Ô ¹Ù²Ü ¼ö ÀÖ´Ù.

 

intbox

½ÇÇà°á°ú

class JavaTest {

     public static void main(String[] args) {

          int i = 1234;

          Integer wrapint = new Integer(i);

          String str = wrapint.toString();

          System.out.println(str);

     }

}

1234

 

IntegerÀÇ »ý¼ºÀÚ·Î Á¤¼öÇü º¯¼ö i¸¦ Àü´ÞÇÏ¿© wrapint °´Ã¼¸¦ »ý¼ºÇß´Ù. ÀÌ »ý¼º¹®¿¡ ÀÇÇØ ¸Þ¸ð¸®¿¡ ´ÙÀ½ °´Ã¼°¡ »ý¼ºµÈ´Ù. IntegerÀÇ °´Ã¼´Â Èü¿¡ »ý¼ºµÇ¾î 1234¶ó´Â °ªÀ» °¡Áö¸ç ÀÌ °´Ã¼¸¦ ½ºÅÃÀÇ wrapint ÂüÁ¶Çü º¯¼ö°¡ °¡¸®Å°°í ÀÖ´Â »óȲÀÌ´Ù.

wrapint °´Ã¼´Â ÂüÁ¶ÇüÀ̸ç ÀÌ °´Ã¼ÀÇ toString ¸Þ¼­µå¸¦ È£ÃâÇÏ¿© ¹®ÀÚ¿­·Î º¯È¯ÇÑ ÈÄ Ãâ·ÂÇß´Ù. º¯È¯ °úÁ¤À» ¿¬±¸Çϱâ À§ÇÑ ¿¹Á¦À̸ç Ãâ·Â¸¸À» ¸ñÀûÀ¸·Î ÇÑ´Ù¸é ±×³É i¸¦ printlnÀ¸·Î ¹Ù·Î Àü´ÞÇÏ´Â °ÍÀÌ ´õ °£ÆíÇѵ¥ »ç½Ç println ³»ºÎ¿¡¼­ À§¿Í À¯»çÇÑ Äڵ尡 ½ÇÇàµÈ´Ù. »ý¼ºÀÚ¸¦ È£ÃâÇÏ´Â ´ë½Å ´õ °£ÆíÇÑ ¹æ¹ýÀ¸·Î ·¡ÆÛ °´Ã¼¸¦ »ý¼ºÇÒ ¼ö ÀÖ´Ù. ´ÙÀ½ ¼¼ ÄÚµå´Â ¸ðµÎ È¿°ú°¡ °°´Ù.

 

Integer wrapint = new Integer(i);

Integer wrapint = i;

Integer wrapint = Integer.valueOf(i);

 

·¡ÆÛ °´Ã¼¿¡ ±âº»Çü º¯¼ö¸¦ ¹Ù·Î ´ëÀÔÇÏ´Â °ÍÀÌ ´õ °£ÆíÇÏ´Ù. valueOf Á¤Àû ¸Þ¼­µå´Â »ý¼ºÀÚ¿Í ±â´ÉÀÌ °ÅÀÇ °°Áö¸¸ °°Àº °ª¿¡ ´ëÇØ ·¡ÆÛ¸¦ ¶Ç »ý¼ºÇϸé Èü¿¡ ÀÌ¹Ì »ý¼ºµÈ ·¡ÆÛ¸¦ µ¹·Á ÁÖ¾î ¸Þ¸ð¸®¸¦ Àý¾àÇÏ´Â È¿°ú°¡ ÀÖ´Ù. ÀÚ¹Ù9 ÀÌÈÄ¿¡´Â ÀÌ ¹æ½ÄÀ» ´õ ±ÇÀåÇÏ¿© »ý¼ºÀÚ È£ÃâÀ» °æ°í·Î ó¸®ÇÏ¿© »ç¿ë ÀÚÀ縦 À¯µµÇÑ´Ù. ·¡ÆÛÀÇ »ý¼ºÀÚ´Â ¹®ÀÚ¿­·Î µÈ °ªµµ ¹Þ¾ÆµéÀδÙ.

 

strliteral

½ÇÇà°á°ú

class JavaTest {

     public static void main(String[] args) {

          Integer wrapint = new Integer("629");

          String str = wrapint.toString();

          int i = Integer.parseInt(str);

          System.out.println(i);

     }

}

629

 

"629" ¹®ÀÚ¿­ ¸®ÅÍ·²À» IntegerÀÇ »ý¼ºÀÚ·Î Àü´ÞÇÏ¿© Á¤¼ö ·¡ÆÛ·Î º¯È¯Çؼ­ ÀúÀåÇÑ´Ù. ·¡ÆÛ °´Ã¼ÀÇ toStringÀ» È£ÃâÇÏ¸é ·¡ÆÛ°¡ °¡Áø Á¤¼ö¸¦ ¹®ÀÚ¿­·Î ¹Ù²Ù¾î ¹®ÀÚ¿­ º¯¼ö¿¡ ´ëÀÔÇÒ ¼ö ÀÖ´Ù. ¹®ÀÚ¿­À» ´Ù½Ã ±âº»Çü °ªÀ¸·Î ¹Ù²Ü ¶§´Â °¢ ·¡ÆÛÀÇ ´ÙÀ½ Á¤Àû ¸Þ¼­µå¸¦ »ç¿ëÇÑ´Ù.

 

static int parseInt(String s [, int radix])

static long parseLong(String s [, int radix])

static float parseFloat(String s)

static double parseDouble(String s)

 

¹®ÀÚ¿­ str¿¡¼­ Á¤¼ö°ªÀ» ´Ù½Ã ÃßÃâÇÏ¿© Ãâ·ÂÇß´Ù. À̶§ Ãâ·ÂµÇ´Â 629´Â Á¤¼öÇüÀÇ °ªÀÌ´Ù. À§ ÄÚµå´Â ¹®ÀÚ¿­À» Á¤¼ö·Î, Á¤¼ö¸¦ ´Ù½Ã ¹®ÀÚ¿­·Î, ±×¸®°í ¹®ÀÚ¿­¿¡¼­ ´Ù½Ã Á¤¼ö¸¦ ÃßÃâÇÏ´Â ¾µµ¥¾ø´Â ÁþÀ» ÇÏ°í ÀÖ´Ù. ÇÏÁö¸¸ ÀÌ·± ŸÀÔÀÇ º¯È¯À» ²À ÇØ¾ß ÇÏ´Â °æ¿ì°¡ ÀÖ´Ù. ´ÙÀ½ ¿¹Á¦¸¦ º¸ÀÚ.

 

stringint

½ÇÇà°á°ú

class JavaTest {

     public static void main(String[] args) {

          String a = "12", b = "34";

          System.out.println(a + b);

          System.out.println(Integer.parseInt(a) + Integer.parseInt(b));

     }

}

1234

46

 

¸í·ÉÇà Àμö³ª »ç¿ëÀÚ°¡ Á÷Á¢ ÀÔ·ÂÇÑ Á¤º¸´Â ¹®ÀÚ¿­À̾ ±âº» ŸÀÔÀ¸·Î º¯È¯ÇØ¾ß ÇÑ´Ù. a¿¡ "12"°¡, b¿¡ "34"°¡ ÀúÀåµÈ »óÅ¿¡¼­ µÎ °ªÀ» ´õÇÏ°í ½ÍÀ» ¶§ a + b ÇÏ¸é µÉ °Í °°Áö¸¸ ¹®ÀÚ¿­³¢¸® ¿¬°áµÇ¾î 1234°¡ µÉ »Ó »ê¼úÀûÀÎ µ¡¼ÀÀº ÇÏÁö ¾Ê´Â´Ù. parseInt ¸Þ¼­µå·Î ¹®ÀÚ¿­¿¡¼­ Á¤¼ö¸¦ ÃßÃâÇÏ¿© ´õÇØ¾ß ÇÑ´Ù. parseInt ¸Þ¼­µå·Î ÃßÃâÇÑ Á¤¼ö°ªÀº ¿¬»ê½Ä¿¡ »ç¿ëÇÒ ¼ö ÀÖ´Ù.

15-2-2.¾ð¹Ú½Ì

±âº»ÇüÀ» ÂüÁ¶ÇüÀ¸·Î º¯È¯ÇÏ´Â °ÍÀ» ¹Ú½Ì(Boxing)À̶ó°í Çϴµ¥ °ªÀ» ¹Ú½º·Î Æ÷ÀåÇÏ¿© °´Ã¼·Î ¸¸µç´Ù´Â ¶æÀÌ´Ù. ÀÌ¿Í ¹Ý´ë·Î ÂüÁ¶ÇüÀ» ±âº»ÇüÀ¸·Î º¯È¯ÇÏ´Â °ÍÀ» ¾ð¹Ú½Ì(Unboxing)À̶ó°í ÇÑ´Ù. ¾ð¹Ú½ÌÀº ·¡ÆÛ¿¡ ÀúÀåµÇ¾î ÀÖ´Â ±âº»ÇüÀÇ °ªÀ» ´Ù½Ã ²ôÁý¾î ³»´Â °ÍÀÌ¸ç ´ÙÀ½ ¸Þ¼­µå¸¦ È£ÃâÇÑ´Ù.

 

¸Þ¼­µå

¼³¸í

byteValue

byte ŸÀÔÀ¸·Î ÃßÃâÇÑ´Ù.

shortValue

shortŸÀÔÀ¸·Î ÃßÃâÇÑ´Ù.

intValue

int ŸÀÔÀ¸·Î ÃßÃâÇÑ´Ù.

longValue

long ŸÀÔÀ¸·Î ÃßÃâÇÑ´Ù.

floatValue

float ŸÀÔÀ¸·Î ÃßÃâÇÑ´Ù.

doubleValue

double ŸÀÔÀ¸·Î ÃßÃâÇÑ´Ù.

charValue

char ŸÀÔÀ¸·Î ÃßÃâÇÑ´Ù.

booleanValue

boolean ŸÀÔÀ¸·Î ÃßÃâÇÑ´Ù.

 

ÀÌ ¸Þ¼­µå´Â ¸ðµç ·¡ÆÛ Å¬·¡½º¿¡ Á¤ÀǵǾî ÀÖ¾î ²À ÀúÀåµÈ ŸÀÔÀ¸·Î¸¸ ¾ð¹Ú½ÌÇØ¾ß ÇÏ´Â °ÍÀº ¾Æ´Ï´Ù. ¹Ú½ÌÇÒ ¶§´Â Á¤¼ö·Î ³Ö°í ¾ð¹Ú½ÌÇÒ ¶§´Â ½Ç¼ö·Î »©³¾ ¼öµµ ÀÖ´Ù.

 

unbox

½ÇÇà°á°ú

class JavaTest {

     public static void main(String[] args) {

          Integer wrapint = new Integer(629);

          int i = wrapint.intValue();

          System.out.println(i);

 

          Double wrapdouble = new Double("3.14");

          int di = wrapdouble.intValue();

          System.out.println(di);

     }

}

629

3

 

À§ÂÊ ÄÚµå´Â 629¶ó´Â ¸®ÅÍ·²À» ·¡ÆÛ¿¡ ³Ö¾ú´Ù°¡ ´Ù½Ã »©³½´Ù. ·¡ÆÛÀÇ °ªÀ» ´Ù½Ã Á¤¼öÇüÀ¸·Î ¹Ù²Ù°í ½ÍÀ¸¸é intValue ¸Þ¼­µå¸¦ È£ÃâÇÑ´Ù. µÎ ¹ø° ÄÚµå´Â ½Ç¼ö¸¦ ·¡ÆÛ¿¡ ³Ö¾î ³õ°í Á¤¼ö ŸÀÔÀ¸·Î »©³½´Ù.

¾ð¹Ú½Ì °úÁ¤¿¡¼­ ¼Ò¼öÁ¡ ÀÌÇÏ°¡ ¶³¾îÁ® ³ª°¡°í Á¤¼öºÎ¸¸ Ãâ·ÂµÈ´Ù. ·¡ÆÛ¸¦ »ç¿ëÇϸé ŸÀÔ³¢¸® º¯È¯ÀÌ °¡´ÉÇѵ¥ ±»ÀÌ ÀÌ·¸°Ô ÇØ¾ß ÇÒ ÀÌÀ¯´Â ¾ø´Ù. ½Ç¼öÇüÀ» Á¤¼öÇüÀ¸·Î ¹Ù²Ù°í ½Í¾ú´Ù¸é ±×³É ij½ºÆ® ¿¬»êÀÚ¸¦ »ç¿ëÇÏ´Â °ÍÀÌ ´õ Æí¸®ÇÏ´Ù.

15-2-3.ÀÚµ¿ ¹Ú½Ì

¹Ú½Ì°ú ¾ð¹Ú½ÌÀº ´ë°³ÀÇ °æ¿ì ÀÚµ¿À¸·Î ¼öÇàµÇ¾î Á÷Á¢ ÇØ¾ß ÇÒ °æ¿ì´Â µå¹°´Ù. ÀÚ¹Ù 5 ÀÌÈÄ¿¡´Â ÄÄÆÄÀÏ·¯°¡ ÇÊ¿äÇÏ´Ù°í ÆÇ´ÜÇÒ ¶§ ¾Ë¾Æ¼­ ¹Ú½Ì°ú ¾ð¹Ú½ÌÀ» ¼öÇàÇϴµ¥ ÀÌ ±â´ÉÀ» ÀÚµ¿ ¹Ú½Ì(Auto boxing)À̶ó°í ÇÑ´Ù. ÀÚµ¿ ¹Ú½ÌÀÇ ¿¹´Â ¾îµð¼­³ª ÈçÈ÷ º¼ ¼ö Àִµ¥ ´ëÇ¥ÀûÀÎ ¿¹°¡ ´ÙÀ½ ¸Þ¼­µå È£Ãâ¹®ÀÌ´Ù.

 

System.out.println(i);

 

Áö±Ý±îÁö °è¼Ó »ç¿ëÇØ ¿Ô´ø ¹®ÀåÀε¥ ¿©±â¼­ ¹Ú½ÌÀÌ ÀϾ´Ù. Äֿܼ¡ ¹®ÀÚ¿­À» Ãâ·ÂÇÏ´Â printlnÀº Á¤¼ö¸¦ ¹®ÀÚ¿­·Î ¹Ù²Û ÈÄ Ãâ·ÂÇÑ´Ù. ³»ºÎ¿¡¼­ i¸¦ Integer °´Ã¼·Î Æ÷ÀåÇÑ ÈÄ toString ¸Þ¼­µå¸¦ È£ÃâÇÏ¿© ¹®ÀÚ¿­·Î ¹Ù²Ù´Â 󸮰¡ ¼öÇàµÈ´Ù. ´ÙÀ½Àº ÀÚµ¿ ¾ð¹Ú½ÌÀÌ ÀϾ´Â ¿¹ÀÌ´Ù.

 

int i = wrapint;

 

Á¤¼öÇü º¯¼ö¿¡ Á¤¼ö ·¡ÆÛ¸¦ ´ëÀÔÇϸé À̶§´Â ·¡ÆÛ¿¡ ÀúÀåµÈ °ªÀ» ²¨³» ´ëÀÔÇÑ´Ù. ±»ÀÌ intValue ¸Þ¼­µå¸¦ È£ÃâÇÏÁö ¾Ê¾Æµµ ·¡ÆÛÀÇ °ªÀÌ Àß ÃßÃâµÈ´Ù. ²À ÇÊ¿äÇÑ °÷¿¡ ´ëÇØ ÄÄÆÄÀÏ·¯°¡ ¾Ë¾Æ¼­ ¹Ú½Ì°ú ¾ð¹Ú½ÌÀ» ó¸®ÇϹǷΠ±âº»Çü°ú ÂüÁ¶ÇüÀ» ¼¯¾î¼­ »ç¿ëÇصµ Å« ¹«¸®¾øÀÌ Àß ½ÇÇàµÈ´Ù.

·¡ÆÛ´Â ±âº»ÇüÀÇ °ªÀ» °¨½Î´Â ÂüÁ¶ ŸÀÔÀÌÁö ¼öÇÐÀûÀÎ ¼öÄ¡¸¦ ÀúÀåÇÏ´Â °ªÀÌ ¾Æ´Ï¾î¼­ °ªÀ» Áõ°¨½Ãų ¼ö ¾øÀ¸¸ç ¿¬»ê¿¡ Á÷Á¢ »ç¿ëÇÒ ¼ö ¾ø´Ù. ±×·¯³ª ÀÚµ¿ ¹Ú½Ì¿¡ ÀÇÇØ ÀÌ°ÍÀÌ °¡´ÉÇÑ °Íó·³ º¸À̱⵵ ÇÑ´Ù. ´ÙÀ½ ¿¹Á¦ÀÇ µ¿ÀÛÀ» ¿¬±¸ÇØ º¸ÀÚ.

 

autobox

½ÇÇà°á°ú

class JavaTest {

     public static void main(String[] args) {

          Integer a = new Integer(3);

          Integer b = new Integer(4);

          int c = a + b;

          System.out.println(c);

         

          Integer d = new Integer(12);

          d++;

          System.out.println(d);

     }

}

7

13

 

µÎ °³ÀÇ Á¤¼ö ·¡ÆÛ¸¦ + ¿¬»êÀÚ·Î ´õÇØ Á¤¼öÇü º¯¼ö c¿¡ ´ëÀÔÇß´Ù. ÂüÁ¶ÇüÀÎ ·¡ÆÛ´Â + ¿¬»êÀÚ¿Í ÇÔ²² ¾µ ¼ö ¾ø´Â °ÍÀÌ ¿øÄ¢ÀÌÁö¸¸ ÄÄÆÄÀÏ·¯´Â ÀÌ ±¸¹®¿¡¼­ a¿Í b¿¡ ´ëÇØ ÀÚµ¿ ¾ð¹Ú½ÌÀ» ¼öÇàÇÏ¿© ¼öÄ¡Çü°ªÀ» ²¨³½ ÈÄ ´õÇÑ´Ù. °á±¹ ÀÌ ¿¬»ê¹®Àº ³»ºÎÀûÀ¸·Î ´ÙÀ½°ú °°ÀÌ Ã³¸®µÈ´Ù.

 

int c = a.intValue() + b.intValue();

 

¾Æ·¡ÂÊÀÇ ÄÚµå´Â 12¶ó´Â Á¤¼ö°ªÀ» °¡Áø d ·¡ÆÛ¸¦ 1 Áõ°¡½ÃŲ´Ù. ·¡ÆÛ¿¡ ´ëÇØ ++ ¿¬»êÀÚ¸¦ Àû¿ëÇÏ´Â °Íµµ ¸»ÀÌ ¾ÈµÇÁö¸¸ ÀÚµ¿ ¾ð¹Ú½Ì°ú ¹Ú½ÌÀÌ µ¿½Ã¿¡ ÀϾ ÀÌ ±¸¹®ÀÌ °¡´ÉÇØÁø´Ù. ÄÄÆÄÀÏ·¯´Â d++À» ´ÙÀ½°ú °°ÀÌ Ã³¸®ÇÑ´Ù.

 

d = new Integer(d.intValue() + 1);

 

d¿¡ ÀúÀåµÈ Á¤¼ö°ªÀ» ¾ð¹Ú½ÌÇÑ ÈÄ ¿©±â¿¡ 1À» ´õÇÏ°í ±× °á°ú¸¦ ´Ù½Ã ¹Ú½ÌÇÏ¿© d¿¡ ´Ù½Ã ´ëÀÔÇÔÀ¸·Î½á °á±¹ d¿¡ ÀúÀåµÈ °ªÀÌ 1 Áõ°¡ÇÑ´Ù.

15-2-4.·¡ÆÛÀÇ ¸â¹ö

·¡ÆÛ¿¡´Â ´ëÀÀµÇ´Â ŸÀÔÀÇ Æ¯¼ºÀ» ¼³¸íÇÏ´Â ¿©·¯ °¡Áö »ó¼ö°¡ Á¤ÀǵǾî ÀÖ´Ù. ´ÙÀ½Àº Integer Ŭ·¡½º¿¡ Á¤ÀǵǾî ÀÖ´Â »ó¼öÀε¥ ´Ù¸¥ ŸÀÔÀÇ ·¡ÆÛµµ ºñ½ÁÇÏ´Ù.

 

»ó¼ö

¼³¸í

BYTES

Â÷ÁöÇÏ´Â ¹ÙÀÌÆ® ¼ö

SIZE

Â÷ÁöÇÏ´Â ºñÆ® ¼ö

MIN_VALUE

Ç¥ÇöÇÒ ¼ö ÀÖ´Â ÃÖ¼Ò°ª

MAX_VALUE

Ç¥ÇöÇÒ ¼ö ÀÖ´Â ÃÖ´ë°ª

TYPE

Class °´Ã¼

 

ÀÌ »ó¼ö¸¦ ÅëÇØ Å¸ÀÔÀÇ Å©±â¿Í Ç¥Çö ¹üÀ§¸¦ »ó¼¼È÷ Á¶»çÇÒ ¼ö ÀÖ´Ù. ÀÌ Á¤º¸´Â ¾ð¾î ½ºÆå¿¡ ºÐ¸íÈ÷ ¸í½ÃµÇ¾î ÀÖÁö¸¸ Ç÷§Æû¿¡ µû¶ó ¾à°£¾¿ Â÷ÀÌ°¡ ÀÖ¾î Á÷Á¢ Á¶»çÇÏ´Â °ÍÀÌ Á¤È®ÇÏ´Ù. ´ÙÀ½ ¿¹Á¦´Â Á¤¼ö ŸÀÔÀÇ ¿©·¯ °¡Áö Á¤º¸¸¦ Á¶»çÇÏ¿© Ãâ·ÂÇÑ´Ù.

 

intinfo

class JavaTest {

     public static void main(String[] args) {

          System.out.printf("int ŸÀÔÀÇ Å©±â = %d, ÃÖ¼Ò°ª = %d, ÃÖ´ë°ª = %d\n",

                   Integer.SIZE, Integer.MIN_VALUE, Integer.MAX_VALUE);

          System.out.printf("short ŸÀÔÀÇ Å©±â = %d, ÃÖ¼Ò°ª = %d, ÃÖ´ë°ª = %d\n",

                   Short.SIZE, Short.MIN_VALUE, Short.MAX_VALUE);

          System.out.printf("long ŸÀÔÀÇ Å©±â = %d, ÃÖ¼Ò°ª = %d, ÃÖ´ë°ª = %d\n",

                   Long.SIZE, Long.MIN_VALUE, Long.MAX_VALUE);

     }

}

½ÇÇà°á°ú

int ŸÀÔÀÇ Å©±â = 32, ÃÖ¼Ò°ª = -2147483648, ÃÖ´ë°ª = 2147483647

short ŸÀÔÀÇ Å©±â = 16, ÃÖ¼Ò°ª = -32768, ÃÖ´ë°ª = 32767

long ŸÀÔÀÇ Å©±â = 64, ÃÖ¼Ò°ª = -9223372036854775808, ÃÖ´ë°ª = 9223372036854775807

 

°°Àº Á¤¼ö¶óµµ Å©±â¿¡ µû¶ó Ç¥Çö ¹üÀ§°¡ ´Ù¸£´Ù. Integer¿Í Long¿¡ Á¤ÀǵǾî ÀÖ´Â toBinaryString Á¤Àû ¸Þ¼­µå´Â ±âº»Çü °ªÀ» ÀÌÁø¼ö·Î Ãâ·ÂÇÑ´Ù. ÀÌ ¸Þ¼­µå¸¦ »ç¿ëÇÏ¸é º¯¼öÀÇ ³»ºÎ Æ÷¸ËÀ» µé¿©´Ùº¼ ¼ö ÀÖ´Ù. ½Ç¼ö´Â ÀÌÁø¼ö·Î ¹Ù·Î Ãâ·ÂÇÒ ¼ö ¾ø¾î Integer³ª LongÀ¸·Î ¹Ù²Û ÈÄ Ãâ·ÂÇÑ´Ù. ºÎµ¿ ¼Ò¼öÁ¡ÀÇ ºñÆ® ±¸Á¶¸¦ ¿¬±¸ÇÒ ¶§ ¾ÆÁÖ À¯¿ëÇÑ ±â´ÉÀÌ´Ù.

 

binarystring

class JavaTest {

     public static void main(String[] args) {

          System.out.println(Integer.toBinaryString(1234));

          System.out.println(Integer.toBinaryString(Float.floatToRawIntBits(0.1f)));

     }

}

½ÇÇà°á°ú

10011010010

111101110011001100110011001101

 

½Ç¼ö´Â °ªÀÇ ¹üÀ§ »Ó¸¸ ¾Æ´Ï¶ó Áö¼öÀÇ ¹üÀ§µµ »ó¼ö·Î Á¤ÀǵǾî ÀÖ´Ù. ´ÙÀ½ ¿¹Á¦·Î µÎ ½Ç¼ö ŸÀÔÀÇ ±âº» Á¤º¸¸¦ Á¶»çÇØ º¸ÀÚ. Floatº¸´Ù´Â DoubleÀÇ Áö¼ö ¹üÀ§°¡ ³Ð´Ù.

 

floatinfo

class JavaTest {

     public static void main(String[] args) {

          System.out.printf("FloatÀÇ Å©±â = %d, Áö¼ö ÃÖ¼Ò°ª = %d, Áö¼ö ÃÖ´ë°ª = %d\n",

                   Float.SIZE, Float.MIN_EXPONENT, Float.MAX_EXPONENT);

          System.out.printf("DoubleÀÇ Å©±â = %d, Áö¼ö ÃÖ¼Ò°ª = %d, Áö¼ö ÃÖ´ë°ª = %d\n",

                   Double.SIZE, Double.MIN_EXPONENT, Double.MAX_EXPONENT);

     }

}

½ÇÇà°á°ú

FloatÀÇ Å©±â = 32, Áö¼ö ÃÖ¼Ò°ª = -126, Áö¼ö ÃÖ´ë°ª = 127

DoubleÀÇ Å©±â = 64, Áö¼ö ÃÖ¼Ò°ª = -1022, Áö¼ö ÃÖ´ë°ª = 1023

 

½Ç¼ö ŸÀÔ¿¡´Â ¾ÆÁÖ Æ¯º°ÇÑ ¼¼ °³ÀÇ »ó¼ö°¡ Á¤ÀǵǾî ÀÖ´Ù. NaNÀº ¼ö°¡ ¾Æ´Ï¶ó´Â ¶æ(Not a Number)À̸ç NEGATIVE_INFINITY, POSITIVE_INFINITY´Â À½¾çÀ¸·Î ¹«ÇÑ´ëÀÇ °ªÀ» ÀǹÌÇÑ´Ù. ´ÙÀ½ ¿¹Á¦·Î ÀÌ »ó¼öÀÇ Àǹ̿¡ ´ëÇØ ¿¬±¸ÇØ º¸ÀÚ.

 

nan

½ÇÇà°á°ú

class JavaTest {

     public static void main(String[] args) {

          System.out.println(3.14/0.0);

          System.out.println(-3.14/0.0);

          System.out.println(Math.sqrt(-2));

     }

}

Infinity

-Infinity

NaN

 

Á¤¼ö¸¦ 0À¸·Î ³ª´©´Â ¿¬»êÀº ¼öÇÐÀûÀ¸·Î Á¤ÀǵǾî ÀÖÁö ¾Ê¾Æ ºÒ°¡´ÉÇÑ ¿¬»êÀ̶ó´Â ¿¹¿Ü°¡ ¹ß»ýÇÑ´Ù. ÀÌ¿¡ ºñÇØ ½Ç¼ö¸¦ 0À¸·Î ³ª´©¸é ¹«ÇÑ´ë°¡ µÇ´Âµ¥ ÀÚ¹Ù´Â ÀÌ »óŸ¦ Ç¥ÇöÇϱâ À§ÇØ À½¾çÀ¸·Î µÎ °³ÀÇ ¹«ÇÑ´ë »ó¼ö¸¦ Á¤ÀÇÇÑ´Ù. ¾ç¼ö¸¦ 0À¸·Î ³ª´©¸é ¾çÀÇ ¹«ÇÑ´ë°¡ µÇ¸ç À½¼ö¸¦ 0À¸·Î ³ª´©¸é À½ÀÇ ¹«ÇÑ´ë°¡ µÈ´Ù.

NaNÀº ¼ýÀÚ°¡ ¾Æ´Ñ »óŸ¦ ÀǹÌÇϴµ¥ ´ëÇ¥ÀûÀÎ ¿¹°¡ À½¼öÀÇ Á¦°ö±ÙÀÌ´Ù. À½¼öÀÇ Á¦°ö±ÙÀº Á¸ÀçÇÏÁö ¾Ê¾Æ À̸¦ ±¸ÇÏ´Â ¿¬»êÀº ¿¡·¯À̸ç ÀÌ »óŸ¦ Ç¥ÇöÇÏ´Â °ªÀÌ ¹Ù·Î NaNÀÌ´Ù. ¶ÇÇÑ "1.23a" ½ÄÀ¸·Î ¼ýÀÚ°¡ ¾Æ´Ñ ¹®ÀÚ¿­À» ¼öÄ¡ÇüÀ¸·Î º¯È¯ÇÒ ¶§µµ NaNÀÌ ¸®ÅϵȴÙ. ½Ç¼ö°¡ ¹«ÇÑ´ëÀÎÁö, À¯È¿ÇÑ °ªÀÎÁö Á¶»çÇÒ ¶§´Â DoubleÀÇ ´ÙÀ½ ¸Þ¼­µå¸¦ »ç¿ëÇÑ´Ù.

 

boolean isInfinite()

static boolean isFinite(double d)

boolean isNaN()

static boolean isNaN(double v)

 

Double °´Ã¼¿¡ ´ëÇØ ¹Ù·Î È£ÃâÇÒ ¼ö ÀÖ´Â ¸Þ¼­µåµµ ÀÖ°í ÀÓÀÇÀÇ double °ª¿¡ ´ëÇØ Á¶»çÇÏ´Â Á¤Àû ¸Þ¼­µåµµ ÀÖ´Ù. ´ÙÀ½Àº isNaN ¸Þ¼­µåÀÇ »ç¿ë¿¹ÀÌ´Ù.

 

isnan

½ÇÇà°á°ú

class JavaTest {

     public static void main(String[] args) {

          double d = Math.sqrt(-2);

          if (Double.isNaN(d)) {

              System.out.println("¼ýÀÚ°¡ ¾Æ´Ô");

          } else {

              System.out.println("¼ýÀÚ°¡ ¸ÂÀ½");

          }

     }

}

¼ýÀÚ°¡ ¾Æ´Ô

 

-2ÀÇ Á¦°ö±ÙÀ» ±¸ÇÑ ÈÄ °á°ú°¡ Á¦´ë·Î °è»êµÇ¾ú´ÂÁö isNaN ¸Þ¼­µå·Î Á¶»çÇß´Ù. À½¼öÀÇ Á¦°ö±ÙÀº ¾øÀ¸´Ï ¼ýÀÚ°¡ ¾Æ´Ï¶ó°í ³ª¿À´Â °ÍÀÌ Á¤»óÀÌ´Ù. NaN ¿©ºÎ¸¦ Á¶»çÇÒ ¶§ ´ÙÀ½°ú °°ÀÌ Á÷Á¢ ºñ±³ÇÏ¸é ¾ÈµÈ´Ù.

 

if (d == Double.NaN) {

 

NaNÀº ¼ö°¡ ¾Æ´Ï¶ó ÀÏÁ¾ÀÇ »óÅ¿©¼­ NaN°ú ¼öÄ¡°ªÀ» ºñ±³ÇÏ¸é °á°ú´Â ¹«Á¶°Ç falseÀÌ´Ù. ½ÉÁö¾î ´ÙÀ½ ¹®Àåµµ false·Î Æò°¡µÈ´Ù.

 

if (Double.NaN == Double.NaN) {

 

== ¿¬»êÀÚÀÇ Á¿캯ÀÌ ¿ÏÀüÈ÷ ÀÏÄ¡Çصµ ºñ±³ °á°ú´Â false¿©¼­ ºñ»ó½ÄÀûÀÌ´Ù. NaNÀº ÀÏÁ¾ÀÇ ¿¡·¯ »óȲÀε¥ ¿¡·¯°¡ ¹ß»ýÇÏ´Â ÀÌÀ¯´Â ¿©·¯ °¡Áö°¡ ÀÖ´Ù. ¶È°°Àº ÀÌÀ¯·Î ¹ß»ýÇÑ ¿¡·¯°¡ ¾Æ´Ò ¼öµµ ÀÖ¾î NaNÀ» NaN°ú ºñ±³Çصµ ´Ù¸¥ °ÍÀ¸·Î Æò°¡ÇÑ´Ù. ºñ±³ ¿¬»êÀڷδ NaN ¿©ºÎ¸¦ Á¤È®È÷ ÆÇ´ÜÇϱ⠾î·Á¿ö isNaNÀ̶ó´Â º°µµÀÇ ¸Þ¼­µå°¡ Á¦°øµÈ´Ù.