Java ๊ธฐ์ดˆ ๋ฌธ๋ฒ•

Java ) java ์—ฐ์‚ฐ์ž

Albosa2lol 2023. 5. 22. 20:29

Chapter 3 : ๐Ÿงฎ ๊ณ„์‚ฐ ํ•˜๊ธฐ (์—ฐ์‚ฐ์ž)

    1. ์—ฐ์‚ฐ์ž์™€ ํ”ผ์—ฐ์‚ฐ์ž์— ๋Œ€ํ•œ ์ดํ•ด
      • ์—ฐ์‚ฐ์ž : ๋ง์…ˆ, ๋บ„์…ˆ ์ฒ˜๋Ÿผ ๊ณ„์‚ฐํ•  ๊ธฐํ˜ธ โž•
      • ํ”ผ์—ฐ์‚ฐ์ž : ์—ฐ์‚ฐ์ž๋กœ ์ธํ•ด ๊ณ„์‚ฐ๋˜๋Š” ์ˆซ์ž ๐Ÿ”ข
      Untitled
      • [์ฝ”๋“œ ์Šค๋‹ˆํŽซ] ๊ณ„์‚ฐ ์ฝ”๋“œ
      • int x = 5; int y = 10; int z = x + y; // 5(ํ”ผ์—ฐ์‚ฐ์ž) +(์—ฐ์‚ฐ์ž) 10(ํ”ผ์—ฐ์‚ฐ์ž) ๊ณ„์‚ฐ System.out.println(z); // ์ถœ๋ ฅ๊ฐ’ : 15
    2. ๊ณ„์‚ฐํ• ๋•Œ ๊ณ„์‚ฐ์˜ ๋Œ€์ƒ์ด ๋˜๋Š”๊ฒƒ์ด ํ”ผ์—ฐ์‚ฐ์ž ์ด๋ฉฐ, ๊ณ„์‚ฐ์˜ ๋ชฉ์ ์ด ๋˜๋Š”๊ฒƒ์ด ์—ฐ์‚ฐ์ž
    1. ์—ฐ์‚ฐ์ž ์ข…๋ฅ˜
      • ์—ฐ์‚ฐ์ž๋Š” ์‚ฌ์น™์—ฐ์‚ฐ ์™ธ์—๋„ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ์—ฐ์‚ฐ์ž๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
      ์‚ฐ์ˆ  ์—ฐ์‚ฐ์ž + - * / % << >> ์‚ฌ์น™ ์—ฐ์‚ฐ๊ณผ ๋น„ํŠธ์—ฐ์‚ฐ
      ๋น„๊ต ์—ฐ์‚ฐ์ž > < >= <= == != ํฌ๊ณ  ์ž‘์Œ๊ณผ ๊ฐ™๊ณ  ๋‹ค๋ฆ„์„ ๋น„๊ต
      ๋…ผ๋ฆฌ ์—ฐ์‚ฐ์ž &&  
      ๋Œ€์ž… ์—ฐ์‚ฐ์ž = ++ —- ์šฐ๋ณ€์˜ ๊ฐ’์„ ์ขŒ๋ณ€์— ์ €์žฅ, ์—ฐ์‚ฐ ๋ณตํ•ฉ ๋Œ€์ž…
      ๊ธฐํƒ€ ์—ฐ์‚ฐ์ž (type) ? : instance of ํ˜•๋ณ€ํ™˜ ์—ฐ์‚ฐ์ž, ์‚ผํ•ญ ์—ฐ์‚ฐ์ž, instance of ์—ฐ์‚ฐ์ž
      - ์‚ฐ์ˆ  ์—ฐ์‚ฐ์ž    
      - ์‚ฌ์น™ ์—ฐ์‚ฐ ๋ฐ ๋น„ํŠธ์—ฐ์‚ฐ์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค. (๋น„ํŠธ์—ฐ์‚ฐ์€ ๋‹ค๋ฅธ ์ฑ•ํ„ฐ์—์„œ ๋‹ค๋ค„๋ณด์•„์š”.)    
      - ์‚ฌ์น™ ์—ฐ์‚ฐ์„ ๊ณ„์‚ฐํ•œ ๊ฒฐ๊ณผ๊ฐ’์„ ์‘๋‹ตํ•ฉ๋‹ˆ๋‹ค.    
      - +(๋ง์…ˆ), - (๋บ„์…ˆ), *(๊ณฑ์…ˆ), /(๋‚˜๋ˆ—์…ˆ/๋ชซ), % (๋‚˜๋ˆ—์…ˆ/๋‚˜๋จธ์ง€)    
      - [์ฝ”๋“œ ์Šค๋‹ˆํŽซ] ์‚ฌ์น™ ์—ฐ์‚ฐ    
         ```java
         // ์‚ฌ์น™ ์—ฐ์‚ฐ
         System.out.println(4 + 2); // 6
         System.out.println(4 - 2); // 2
         System.out.println(4 * 2); // 8
         System.out.println(4 / 2); // 2
         System.out.println(5 / 2); // 2
         System.out.println(2 / 4); // 0
         System.out.println(4 % 2); // 0
         System.out.println(5 % 2); // 1
      
         // ์šฐ์„  ์ˆœ์œ„ ์—ฐ์‚ฐ
         System.out.println(2 + 2 * 2); // 6
         System.out.println((2 + 2) * 2); // 8
         System.out.println(2 + (2 * 2)); // 6
      
         // ๋ณ€์ˆ˜๋ฅผ ์ด์šฉํ•œ ์—ฐ์‚ฐ
         int a = 20;
         int b = 10;
         int c;
      
         // ๋ง์…ˆ
         c = a + b;
         System.out.println(c); // 30
      
         // ๋บ„์…ˆ
         c = a - b;
         System.out.println(c); // 10
      
         // ๊ณฑ์…ˆ
         c = a * b;
         System.out.println(c); // 200
      
         // ๋‚˜๋ˆ—์…ˆ (๋ชซ)
         c = a / b;
         System.out.println(c); // 2
      
         // ๋‚˜๋ˆ—์…ˆ (๋‚˜๋จธ์ง€) = ๋‚˜๋จธ์ง€ ์—ฐ์‚ฐ
         c = a % b;
         System.out.println(c); // 0
         ```
      • ๋น„๊ต ์—ฐ์‚ฐ์ž
        • ๊ฐ’์˜ ํฌ๊ณ /์ž‘์Œ์„ ๋น„๊ตํ•˜๊ฑฐ๋‚˜ ๊ฐ™๊ณ /๋‹ค๋ฆ„ ์„ ๋น„๊ตํ•˜์—ฌ ์ฐธ(true)/๊ฑฐ์ง“(false) ๊ฐ’์ธ boolean ๊ฐ’์„ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.
        • > (ํฌ๋‹ค) , < (์ž‘๋‹ค), >= (ํฌ๊ฑฐ๋‚˜ ๊ฐ™๋‹ค), <= (์ž‘๊ฑฐ๋‚˜ ๊ฐ™๋‹ค), == (๊ฐ™๋‹ค), != (๋‹ค๋ฅด๋‹ค)
        • [์ฝ”๋“œ ์Šค๋‹ˆํŽซ] ๋น„๊ต ์—ฐ์‚ฐ
        • // ๋น„๊ต ์—ฐ์‚ฐ์ž (์ฐธ์ด๋ฉด true, ๊ฑฐ์ง“์ด๋ฉด false) System.out.println(10 > 9); // 10 ๋Š” 9 ๋ณด๋‹ค ํฌ๋‹ค (์ฐธ์ด๋ฉด true, ๊ฑฐ์ง“์ด๋ฉด false) System.out.println(10 >= 9); // 10 ๋Š” 9 ๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๊ฐ™๋‹ค (true) System.out.println(10 < 9); // 10 ๋Š” 9 ๋ณด๋‹ค ์ž‘๋‹ค (false) System.out.println(10 <= 9); // 10 ๋Š” 9 ๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™๋‹ค (false) System.out.println(10 == 10); // 10 ๋Š” 10 ์™€ ๊ฐ™๋‹ค (true) System.out.println(10 == 9); // 10 ๋Š” 9 ๊ณผ ๊ฐ™๋‹ค (false) System.out.println(10 != 10); // 10 ๋Š” 10 ์™€ ๊ฐ™์ง€ ์•Š๋‹ค (false) System.out.println(10 != 9); // 10 ๋Š” 9 ๊ณผ ๊ฐ™์ง€ ์•Š๋‹ค (true)
      • ๋…ผ๋ฆฌ ์—ฐ์‚ฐ์ž
        • ๋น„๊ต ์—ฐ์‚ฐ์˜ ๊ฒฐ๊ณผ๊ฐ’์œผ๋กœ ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š” boolean ๊ฐ’์„ ์—ฐ๊ฒฐํ•˜๋Š” ์—ฐ์‚ฐ์ž ์ž…๋‹ˆ๋‹ค.
        • ์กฐ๊ฑด์„ ์—ฐ๊ฒฐ ํ•˜์˜€์„๋•Œ์˜ boolean ๊ฐ’๋“ค์„ ์กฐํ•ฉํ•˜์—ฌ ์ฐธ(true)/๊ฑฐ์ง“(false) ๊ฐ’์ธ boolean ๊ฐ’์„ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.
        • && (AND = ํ”ผ์—ฐ์‚ฐ์ž ๋ชจ๋‘ ์ฐธ), ||(OR = ํ”ผ์—ฐ์‚ฐ์ž ๋‘˜์ค‘ ํ•˜๋‚˜๋ผ๋„ ์ฐธ), !(ํ”ผ์—ฐ์‚ฐ์ž์˜ ๋ฐ˜๋Œ€ boolean ๊ฐ’)
        • [์ฝ”๋“œ ์Šค๋‹ˆํŽซ] ๋…ผ๋ฆฌ ์—ฐ์‚ฐ
        • // ๋…ผ๋ฆฌ ์—ฐ์‚ฐ์ž boolean flag1 = true; boolean flag2 = true; boolean flag3 = false; System.out.println(flag1); // true System.out.println(flag2); // true System.out.println(flag3); // false // ํ”ผ์—ฐ์‚ฐ์ž ์ค‘ ํ•˜๋‚˜๋ผ๋„ true ์ด๋ฉด true System.out.println(flag1 || flag2); // true System.out.println(flag1 || flag2 || flag3); // true // ํ”ผ์—ฐ์‚ฐ์ž ๋ชจ๋‘ true ์ด๋ฉด true System.out.println(flag1 && flag2); // true (flag1, flag2 ๋ชจ๋‘ true ๋ผ์„œ) System.out.println(flag1 && flag2 && flag3); // false (flag3์€ false ๋ผ์„œ) // And ์—ฐ์‚ฐ System.out.println((5 > 3) && (3 > 1)); // 5 ๋Š” 3 ๋ณด๋‹ค ํฌ๊ณ , 3 ์€ 1 ๋ณด๋‹ค ํฌ๋‹ค (true) System.out.println((5 > 3) && (3 < 1)); // 5 ๋Š” 3 ๋ณด๋‹ค ํฌ๊ณ , 3 ์€ 1 ๋ณด๋‹ค ์ž‘๋‹ค (false) // Or ์—ฐ์‚ฐ System.out.println((5 > 3) || (3 > 1)); // 5 ๋Š” 3 ๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜, 3 ์€ 1 ๋ณด๋‹ค ํฌ๋‹ค (true) System.out.println((5 > 3) || (3 < 1)); // 5 ๋Š” 3 ๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜, 3 ์€ 1 ๋ณด๋‹ค ์ž‘๋‹ค (true) System.out.println((5 < 3) || (3 < 1)); // 5 ๋Š” 3 ๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜, 3 ์€ 1 ๋ณด๋‹ค ์ž‘๋‹ค (false) // System.out.println(1 < 3 < 5); // ๋ถˆ๊ฐ€๋Šฅํ•œ ์ฝ”๋“œ // ๋…ผ๋ฆฌ ๋ถ€์ • ์—ฐ์‚ฐ์ž System.out.println(!flag1); // false (flag1 ๊ฐ’์˜ ๋ฐ˜๋Œ€) System.out.println(!flag3); // true (flag3 ๊ฐ’์˜ ๋ฐ˜๋Œ€) System.out.println(!(5 == 5)); // false System.out.println(!(5 == 3)); // true
      • ๋Œ€์ž… ์—ฐ์‚ฐ์ž
        • ๋ณ€์ˆ˜๋ฅผ ๋ฐ”๋กœ ์—ฐ์‚ฐํ•ด์„œ ๊ทธ์ž๋ฆฌ์—์„œ ์ €์žฅํ•˜๋Š” ์—ฐ์‚ฐ์ž
        • ๊ธฐ๋ณธ ๋Œ€์ž… ์—ฐ์‚ฐ์ž์ธ = ์™€ ๋‹ค๋ฅธ ์—ฐ์‚ฐ์„ ํ•จ๊ป˜์“ฐ๋Š” ๋ณตํ•ฉ ๋Œ€์ž… ์—ฐ์‚ฐ์ž๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. (+=, -=, *= …)
        • ๋ณตํ•ฉ ๋Œ€์ž… ์—ฐ์‚ฐ์ž๋Š” ๊ธฐ๋ณธ ๋Œ€์ž… ์—ฐ์‚ฐ์ž๋ฅผ ์‹ฌํ”Œํ•˜๊ฒŒ ์ž‘์„ฑํ•˜๊ฒŒ ํ•ด์ฃผ๋Š”๊ฒƒ์ด์ง€ ๊ธฐ๋Šฅ์€ ๊ฐ™์Šต๋‹ˆ๋‹ค.
        • ์ถ”๊ฐ€๋กœ, += 1 ๋Š” ++ ๊ณผ ๋™์ผํ•ฉ๋‹ˆ๋‹ค. (ํ”ผ์—ฐ์‚ฐ์ž์— 1 ๋”ํ•ด์ฃผ๊ธฐ)
        • ๋˜‘๊ฐ™์ด -= 1 ์€ —-์™€ ๋™์ผํ•ฉ๋‹ˆ๋‹ค. (ํ”ผ์—ฐ์‚ฐ์ž์— 1 ๋นผ์ฃผ๊ธฐ)
        • [์ฝ”๋“œ ์Šค๋‹ˆํŽซ] ๋Œ€์ž… ์—ฐ์‚ฐ์ž
        • // ๋Œ€์ž… ์—ฐ์‚ฐ์ž int number = 10; number = number + 2; System.out.println(number); // 12 number = number - 2; System.out.println(number); // 10 number = number * 2; System.out.println(number); // 20 number = number / 2; System.out.println(number); // 10 number = number % 2; System.out.println(number); // 0 number = number++; System.out.println(number); // 2 number = number--; System.out.println(number); // 0 // ๋ณตํ•ฉ ๋Œ€์ž… ์—ฐ์‚ฐ์ž number = 10; number += 2; System.out.println(number); // 12 number -= 2; System.out.println(number); // 10 number *= 2; System.out.println(number); // 20 number /= 2; System.out.println(number); // 10 number %= 2; System.out.println(number); // 0
    <aside>
    ๐Ÿ”ฅ **๋Œ€์ž… ์—ฐ์‚ฐ์ž ์ค‘์— ์ฆ๊ฐ ์—ฐ์‚ฐ์ž ์“ธ๋•Œ ์ฃผ์˜ํ• ์ !**

    - `++` ๋˜๋Š” `—-` ๋ฅผ ๋ถ™์ด๋ฉด ํ”ผ์—ฐ์‚ฐ์ž๊ฐ€ 1 ๋”ํ•ด์ง€๊ฑฐ๋‚˜ 1 ๋นผ๊ธฐ๊ฐ€ ๋œ๋‹ค๊ณ  ๋ง์”€๋“œ๋ ธ๋Š”๋ฐ์š”.
    - ์ฃผ์˜ํ•  ์ ์€, ํ”ผ์—ฐ์‚ฐ์ž ๋’ค์— ๋ถ™์ด๋ƒ, ์•ž์— ๋ถ™์ด๋ƒ์— ๋”ฐ๋ผ์„œ ์—ฐ์‚ฐ์ˆœ์„œ๊ฐ€ ๋‹ฌ๋ผ์ง‘๋‹ˆ๋‹ค!!

    | ์—ฐ์‚ฐ์ž | ์—ฐ์‚ฐ์ž ์œ„์น˜ | ๊ธฐ๋Šฅ | ์—ฐ์‚ฐ ์˜ˆ |
    | --- | --- | --- | --- |
    | ++ | ++{ํ”ผ์—ฐ์‚ฐ์ž} | ์—ฐ์‚ฐ ์ „์— ํ”ผ์—ฐ์‚ฐ์ž์— 1 ๋”ํ•ด์ค๋‹ˆ๋‹ค. | val = ++num; 
    num๊ฐ’+1 ํ›„์— val๋ณ€์ˆ˜์— ์ €์žฅ |
    | ++ | {ํ”ผ์—ฐ์‚ฐ์ž}++ | ์—ฐ์‚ฐ ํ›„์— ํ”ผ์—ฐ์‚ฐ์ž์— 1 ๋”ํ•ด์ค๋‹ˆ๋‹ค. | val = num++;
    num๊ฐ’์„ val๋ณ€์ˆ˜์— ์ €์žฅ ํ›„ num+1 |
    | — | —{ํ”ผ์—ฐ์‚ฐ์ž} | ์—ฐ์‚ฐ ์ „์— ํ”ผ์—ฐ์‚ฐ์ž์— 1 ๋นผ์ค๋‹ˆ๋‹ค. | val = —num;
    num๊ฐ’-1 ํ›„์— val๋ณ€์ˆ˜์— ์ €์žฅ |
    | — | {ํ”ผ์—ฐ์‚ฐ์ž}— | ์—ฐ์‚ฐ ํ›„์— ํ”ผ์—ฐ์‚ฐ์ž์— 1 ๋นผ์ค๋‹ˆ๋‹ค. | val = num—;
    num๊ฐ’์„ val๋ณ€์ˆ˜์— ์ €์žฅ ํ›„ num-1 |
    - ์ด์ฒ˜๋Ÿผ ๋Œ€์ž…์—ฐ์‚ฐํ• ๋•Œ ๋ฟ๋งŒ์•„๋‹ˆ๋ผ ์—ฐ์‚ฐ์„ ์ง์ ‘ํ• ๋•Œ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์„ /ํ›„์ ์šฉ์ด ๋‚˜๋‰ฉ๋‹ˆ๋‹ค.
    - ์‹ค์Šต ์ฝ”๋“œ๋ฅผ ํ†ตํ•ด ์‹ค์Šตํ•ด๋ณผ๊นŒ์š”?
    - [์ฝ”๋“œ ์Šค๋‹ˆํŽซ] ๋Œ€์ž… ์ฆ๊ฐ ์—ฐ์‚ฐ์ž

        ```java
        // ๋Œ€์ž… ์ฆ๊ฐ ์—ฐ์‚ฐ์ž

        public class Main {

            public static void main(String[] args) {
                int a = 10;
                int b = 10;
                int val = ++a + b--; // a ๋Š” ์—ฐ์‚ฐ์ „์— +1, b ๋Š” ์—ฐ์‚ฐํ›„์— -1

                System.out.println(a); // 11
                System.out.println(b); // 9
                System.out.println(val); // 21

                // 11 + 9 ๊ฐ€ ์™œ 21์ด ๋‚˜์˜ค๋Š”๊ฑฐ์ฃ ??
                // ๊ทธ ์ด์œ ๋Š” 
                // a ๋Š” val ์—ฐ์‚ฐ์ „์— ++ ๊ฐ€ ์ˆ˜ํ–‰๋˜์–ด์„œ 11๋กœ ์—ฐ์‚ฐ๋˜์—ˆ์ง€๋งŒ
                // b ๋Š” val ์—ฐ์‚ฐํ›„์— -- ๊ฐ€ ์ˆ˜ํ–‰๋˜์–ด์„œ ๊ธฐ์กด๊ฐ’์ด 10์œผ๋กœ ์—ฐ์‚ฐ๋œ ํ›„ -- ๊ฐ€ ์ˆ˜ํ–‰๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
                // ๋”ฐ๋ผ์„œ ์—ฐ์‚ฐ๋œ a๊ฐ’์ธ 11๊ณผ ์—ฐ์‚ฐ๋˜๊ธฐ์ „ b๊ฐ’์ธ 10์ด ๋”ํ•ด์ ธ์„œ 21์ด ๋œ๊ฒ๋‹ˆ๋‹ค!

                int c = a--; // c ์— a ๊ฐ’ ๋Œ€์ž… ํ›„ a-1  (์ฆ‰, a=10, c=11)
                int d = ++b; // b ๊ฐ’ +1 ํ›„์— d ์— ๋Œ€์ž… (์ฆ‰, b=10, d=10)
                int val = c-- * ++d; // c ๋Š” ์—ฐ์‚ฐํ›„์— -1, d ๋Š” ์—ฐ์‚ฐ์ „์— +1

                System.out.println(a); // 10
                System.out.println(b); // 10
                System.out.println(c); // 11
                System.out.println(d); // 10
                System.out.println(val); // 11 * 11 = 121

                // 11 * 10 ์ด ์™œ 121์ด ๋‚˜์˜ค๋Š”๊ฑฐ์ฃ ??
                // ๊ทธ ์ด์œ ๋Š” 
                // c ๋Š” val ์—ฐ์‚ฐํ›„์— -- ๊ฐ€ ์ˆ˜ํ–‰๋˜์–ด์„œ ๊ธฐ์กด๊ฐ’์ด 11๋กœ ์—ฐ์‚ฐ๋œ ํ›„ -- ๊ฐ€ ์ˆ˜ํ–‰๋˜์—ˆ์ง€๋งŒ
                // d ๋Š” val ์—ฐ์‚ฐ์ „์— ++ ๊ฐ€ ์ˆ˜ํ–‰๋˜์–ด์„œ 11๋กœ ์—ฐ์‚ฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
                // ๋”ฐ๋ผ์„œ ์—ฐ์‚ฐ์ „ a๊ฐ’์ธ 11๊ณผ ์—ฐ์‚ฐ๋œ b๊ฐ’์ธ 11์ด ๊ณฑํ•ด์ ธ์„œ 121์ด ๋œ๊ฒ๋‹ˆ๋‹ค!
            }

        }
        ```

    </aside>

- ๊ธฐํƒ€ ์—ฐ์‚ฐ์ž
    - ํ˜•๋ณ€ํ™˜ ์—ฐ์‚ฐ์ž
        - 1์ผ์ฐจ ๊ฐ•์˜์—์„œ ๋ฐฐ์šด๋‚ด์šฉ์œผ๋กœ ๊ด„ํ˜ธ ์•ˆ์— ๋ณ€ํ™˜ํ•  ํƒ€์ž…์„ ๋„ฃ์œผ๋ฉด ํ”ผ์—ฐ์‚ฐ์ž์˜ ํƒ€์ž…์ด ๋ณ€๊ฒฝ ๋ฉ๋‹ˆ๋‹ค.

        ```java
        // ํ˜•๋ณ€ํ™˜ ์—ฐ์‚ฐ์ž
        int intNumber = 93 + (int) 98.8; // 93 + 98

        double doubleNumber = (double) 93 + 98.8; // 93.0 + 98.8
        ```

    - ์‚ผํ•ญ ์—ฐ์‚ฐ์ž
        - ๋น„๊ต ์—ฐ์‚ฐ์˜ ๊ฒฐ๊ณผ๊ฐ’์— ๋”ฐ๋ผ ์‘๋‹ตํ•  ๊ฐ’์„ ์ง์ ‘ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋Š” ์—ฐ์‚ฐ์ž ์ž…๋‹ˆ๋‹ค.
        - ์‚ผํ•ญ ์—ฐ์‚ฐ์ž๋Š” 3๊ฐ€์ง€ ํ”ผ์—ฐ์‚ฐ์ž๊ฐ€ ์กด์žฌํ•˜์—ฌ ์‚ผํ•ญ ์—ฐ์‚ฐ์ž ๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. (`์กฐ๊ฑด`/`์ฐธ๊ฒฐ๊ณผ`/`๊ฑฐ์ง“๊ฒฐ๊ณผ`)
        - `(์กฐ๊ฑด)` `?` `(์ฐธ๊ฒฐ๊ณผ)` `:` `(๊ฑฐ์ง“๊ฒฐ๊ณผ)`

        ```java
        // ์‚ผํ•ญ ์—ฐ์‚ฐ์ž
        int x = 1;
        int y = 9;

        boolean b = (x == y) ? true : false;
        System.out.println(b); // false

        String s = (x != y) ? "์ •๋‹ต" : "๋•ก";
        System.out.println(s); // ๋•ก

        int max = (x > y) ? x : y;
        System.out.println(max); // 9

        int min = (x < y) ? x : y;
        System.out.println(min); // 1
        ```

    - instance of ์—ฐ์‚ฐ์ž
        - 3์ฃผ์ฐจ์— ๋ฐฐ์šธ ํด๋ž˜์Šค๊ด€๋ จ ๋‚ด์šฉ์œผ๋กœ ํ•ด๋‹น ์ฃผ์ฐจ๋•Œ ๋ฐฐ์šฐ๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.
        - ๊ฐ„๋‹จํžˆ ์„ค๋ช…๋“œ๋ฆฌ๋ฉด ํ”ผ์—ฐ์‚ฐ์ž๊ฐ€ ์กฐ๊ฑด์— ๋ช…์‹œ๋œ ํด๋ž˜์Šค์˜ ๊ฐ์ฒด์ธ์ง€ ๋น„๊ตํ•˜์—ฌ ์ฐธ/๊ฑฐ์ง“์„ ์‘๋‹ตํ•ด์ฃผ๋Š” ์—ฐ์‚ฐ์ž ์ž…๋‹ˆ๋‹ค.
        - `(๊ฐ์ฒด๋ช…)` `instance of` `(ํด๋ž˜์Šค๋ช…)`
      1. ์—ฐ์‚ฐ์ž ์šฐ์„ ์ˆœ์œ„
        • ์—ฐ์‚ฐ์ž ์—ฌ๋Ÿฌ๊ฐœ๊ฐ€ ํ•จ๊ป˜ ์žˆ๋Š” ์—ฐ์‚ฐ์„ ๊ณ„์‚ฐํ• ๋•Œ๋Š” ์šฐ์„ ์ˆœ์œ„๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
        • ์œ„ ์šฐ์„ ์ˆœ์œ„์— ๋”ฐ๋ผ์„œ ์ตœ์ข…์ ์ธ ์‘๋‹ต๊ฐ’์ด ๊ฒฐ์ •๋ฉ๋‹ˆ๋‹ค.
        • ๋‹จ, ๊ด„ํ˜ธ๋กœ ๊ฐ์‹ธ์ฃผ๋ฉด ๊ด„ํ˜ธ์•ˆ์˜ ์—ฐ์‚ฐ์ด ์ตœ์šฐ์„ ์ˆœ์œ„๋กœ ๊ณ„์‚ฐ๋ฉ๋‹ˆ๋‹ค.
        • [์ฝ”๋“œ ์Šค๋‹ˆํŽซ] ์—ฐ์‚ฐ์ž ์šฐ์„ ์ˆœ์œ„
        • // ์—ฐ์‚ฐ์ž ์šฐ์„ ์ˆœ์œ„ int x = 2; int y = 9; int z = 10; boolean result = x < y && y < z; // <,> ๋น„๊ต์—ฐ์‚ฐ์ž ๊ณ„์‚ฐ ํ›„ && ๋…ผ๋ฆฌ ์—ฐ์‚ฐ์ž ๊ณ„์‚ฐ System.out.println(result); // true result = x + 10 < y && y < z; // +10 ์‚ฐ์ˆ ์—ฐ์‚ฐ์ž ๊ณ„์‚ฐ ํ›„ <,> ๋น„๊ต์—ฐ์‚ฐ์ž ๊ณ„์‚ฐ ํ›„ && ๋…ผ๋ฆฌ ์—ฐ์‚ฐ์ž ๊ณ„์‚ฐ System.out.println(result); // false result = x + 2 * 3 > y; // ์‚ฐ์ˆ ์—ฐ์‚ฐ์ž ๊ณฑ์„ผ > ๋ง์…ˆ ์ˆœ์œผ๋กœ ๊ณ„์‚ฐ ํ›„ > ๋น„๊ต์—ฐ์‚ฐ์ž ๊ณ„์‚ฐ System.out.println(result); // false (8>9) result = (x + 2) * 3 > y; // ๊ด„ํ˜ธ์•ˆ ๋ง์…ˆ ์—ฐ์‚ฐ ํ›„ ๊ด„ํ˜ธ ๋ฐ– ๊ณฑ์…ˆ ๊ณ„์‚ฐ ํ›„ > ๋น„๊ต์—ฐ์‚ฐ์ž ๊ณ„์‚ฐ System.out.println(result); // true (12>9)
      2. ๐Ÿ“Œ ์—ฐ์‚ฐ์ž ์šฐ์„ ์ˆœ์œ„ : ์‚ฐ์ˆ  > ๋น„๊ต > ๋…ผ๋ฆฌ > ๋Œ€์ž…
      1. ์‚ฐ์ˆ ๋ณ€ํ™˜
      2. ๐Ÿ“Œ ์—ฐ์‚ฐ ์ „์— ํ”ผ์—ฐ์‚ฐ์ž์˜ ํƒ€์ž…์„ ์ผ์น˜์‹œํ‚ค๋Š” ๊ฒƒ
        • ๋‘ ํ”ผ์—ฐ์‚ฐ์ž์˜ ํƒ€์ž…์„ ๊ฐ™๊ฒŒ ์ผ์น˜์‹œํ‚จ๋‹ค. (๋‘˜์ค‘์— ์ €์žฅ๊ณต๊ฐ„ ํฌ๊ธฐ๊ฐ€ ๋” ํฐ ํƒ€์ž…์œผ๋กœ ์ผ์น˜
      3. ํ”ผ์—ฐ์‚ฐ์ž์˜ ํƒ€์ž…์ด int ๋ณด๋‹ค ์ž‘์€ short ํƒ€์ž…์ด๋ฉด int ๋กœ ๋ณ€ํ™˜
      4. ํ”ผ์—ฐ์‚ฐ์ž์˜ ํƒ€์ž…์ด long ๋ณด๋‹ค ์ž‘์€ int, short ํƒ€์ž…์ด๋ฉด Long ์œผ๋กœ ๋ณ€ํ™˜
      5. ํ”ผ์—ฐ์‚ฐ์ž์˜ ํƒ€์ž…์ด float๋ณด๋‹ค ์ž‘์€ long, int, short ํƒ€์ž…์ด๋ฉด float ์œผ๋กœ ๋ณ€ํ™˜
      6. ํ”ผ์—ฐ์‚ฐ์ž์˜ ํƒ€์ž…์ด double ๋ณด๋‹ค ์ž‘์€ float, long, int, short ํƒ€์ž…์ด๋ฉด double ์œผ๋กœ ๋ณ€ํ™˜
      7. ์ด์ฒ˜๋Ÿผ, ๋ณ€์ˆ˜์—ฌ๋Ÿฌ๊ฐœ๋ฅผ ์—ฐ์‚ฐํ–ˆ์„๋•Œ ๊ฒฐ๊ณผ๊ฐ’์€ ํ”ผ์—ฐ์‚ฐ์ž ์ค‘ ํ‘œํ˜„ ๋ฒ”์œ„๊ฐ€ ๊ฐ€์žฅ ํฐ ๋ณ€์ˆ˜ ํƒ€์ž…์„ ๊ฐ€์ง€๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.
      8. [์ฝ”๋“œ ์Šค๋‹ˆํŽซ] ์‚ฐ์ˆ ๋ณ€ํ™˜
      9. // ์‚ฐ์ˆ ๋ณ€ํ™˜ public class Main { public static void main(String[] args) { short x = 10; int y = 20; int z = x + y; // ๊ฒฐ๊ณผ๊ฐ’์€ ๋” ํฐ ํ‘œํ˜„ํƒ€์ž…์ธ int ํƒ€์ž…์˜ ๋ณ€์ˆ˜๋กœ๋งŒ ์ €์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. long lx = 30L; long lz = z + lx; // ๊ฒฐ๊ณผ๊ฐ’์€ ๋” ํฐ ํ‘œํ˜„ํƒ€์ž…์ธ long ํƒ€์ž…์˜ ๋ณ€์ˆ˜๋กœ๋งŒ ์ €์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. float fx = x; // ๊ฒฐ๊ณผ๊ฐ’์€ ๋” ํฐ ํ‘œํ˜„ํƒ€์ž…์ธ float ํƒ€์ž…์˜ ๋ณ€์ˆ˜๋กœ๋งŒ ์ €์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. float fy = y; // ๊ฒฐ๊ณผ๊ฐ’์€ ๋” ํฐ ํ‘œํ˜„ํƒ€์ž…์ธ float ํƒ€์ž…์˜ ๋ณ€์ˆ˜๋กœ๋งŒ ์ €์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. float fz = z; // ๊ฒฐ๊ณผ๊ฐ’์€ ๋” ํฐ ํ‘œํ˜„ํƒ€์ž…์ธ float ํƒ€์ž…์˜ ๋ณ€์ˆ˜๋กœ๋งŒ ์ €์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. System.out.println(lz); System.out.println(fx); System.out.println(fy); System.out.println(fz); } }
      1. ๋น„ํŠธ ์—ฐ์‚ฐ
      • Byte ๋ฅผ 8๋“ฑ๋ถ„ํ•œ๊ฒŒ Bit ๋ผ๊ณ  ๋ง์”€ ๋“œ๋ฆฐ๊ฑฐ ๊ธฐ์–ตํ•˜์‹œ์ฃ ?
      • Bit ๋Š” 0,1 ๋‘˜์ค‘์˜ ํ•˜๋‚˜์˜ ๊ฐ’๋งŒ์„ ์ €์žฅํ•˜๋Š” ์ปดํ“จํ„ฐ๊ฐ€ ์ €์žฅ(ํ‘œํ˜„)๊ฐ€๋Šฅํ•œ ๊ฐ€์žฅ ์ž‘์€ ๋‹จ์œ„๋ผ๊ณ  ๋ง์”€๋“œ๋ ธ์Šต๋‹ˆ๋‹ค.
      • ์ปดํ“จํ„ฐ์˜ ๊ฐ€์žฅ์ž‘์€ ๋‹จ์œ„์ธ Bit์ด๊ธฐ ๋•Œ๋ฌธ์— ์—ฐ์‚ฐ์ค‘์—์„œ Bit ์—ฐ์‚ฐ์ด ์ œ์ผ ๋น ๋ฆ…๋‹ˆ๋‹ค.
      • ๋ฌผ๋ก  ์ด์ „์— ๋ฐฐ์šด๋Œ€๋กœ 0,1 ๊ฐ’์œผ๋กœ ์‚ฐ์ˆ ์—ฐ์‚ฐ์„ ํ•˜๊ฑฐ๋‚˜, ๋น„๊ต์—ฐ์‚ฐ์„ ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ๋น„ํŠธ ์—ฐ์‚ฐ์„ ํ†ตํ•ด ์ž๋ฆฌ์ˆ˜๋ฅผ ์˜ฎ๊ธธ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.
      • ์ด์ฒ˜๋Ÿผ Bit์˜ ์ž๋ฆฌ์ˆ˜๋ฅผ ์˜ฎ๊ธฐ๋Š” ๊ฒƒ์„ ๋น„ํŠธ ์—ฐ์‚ฐ์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.
      • <<(์™ผ์ชฝ์œผ๋กœ ์ž๋ฆฌ์ˆ˜ ์˜ฎ๊ธฐ๊ธฐ), >>(์˜ค๋ฅธ์ชฝ์œผ๋กœ ์ž๋ฆฌ์ˆ˜ ์˜ฎ๊ธฐ๊ธฐ)
      • 0,1 ์€ 2์ง„์ˆ˜ ๊ฐ’์ด๊ธฐ ๋•Œ๋ฌธ์—,
        • ์ž๋ฆฌ์ˆ˜๋ฅผ ์™ผ์ชฝ์œผ๋กœ ์˜ฎ๊ธฐ๋Š” ํšŸ์ˆ˜๋งŒํผ 2์˜ ๋ฐฐ์ˆ˜๋กœ ๊ณฑ์…ˆ์ด ์—ฐ์‚ฐ๋˜๋Š”๊ฒƒ๊ณผ ๋™์ผํ•ฉ๋‹ˆ๋‹ค.
        • ์ž๋ฆฌ์ˆ˜๋ฅผ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ์˜ฎ๊ธฐ๋Š” ํšŸ์ˆ˜๋งŒํผ 2์˜ ๋ฐฐ์ˆ˜๋กœ ๋‚˜๋ˆ—์…ˆ์ด ์—ฐ์‚ฐ๋˜๋Š”๊ฒƒ๊ณผ ๋™์ผํ•ฉ๋‹ˆ๋‹ค.
      • [์ฝ”๋“œ ์Šค๋‹ˆํŽซ] ๋น„ํŠธ ์—ฐ์‚ฐ

// ๋น„ํŠธ ์—ฐ์‚ฐ

// ์ฐธ๊ณ , 3์˜ ์ด์ง„์ˆ˜๊ฐ’์€ 11(2) ์ž…๋‹ˆ๋‹ค. 12์˜ ์ด์ง„์ˆ˜๊ฐ’์€ 1100(2) ์ž…๋‹ˆ๋‹ค.
// (2) ํ‘œ๊ธฐ๋Š” ์ด ์ˆซ์ž๊ฐ€ ์ด์ง„์ˆ˜๊ฐ’์ด๋ผ๋Š” ํ‘œ์‹ ์ž…๋‹ˆ๋‹ค.

System.out.println(3 << 2); 
// 3์˜ ์ด์ง„์ˆ˜๊ฐ’์ธ 11(2) ์—์„œ ์™ผ์ชฝ์œผ๋กœ 2๋ฒˆ ์˜ฎ๊ฒจ์ ธ์„œ 1100(2) ์ธ 12๊ฐ’์ด ๋ฉ๋‹ˆ๋‹ค.


System.out.println(3 >> 1); 
// 3์˜ ์ด์ง„์ˆ˜๊ฐ’์ธ 11(2) ์—์„œ ์˜ค๋ฅธ์ชฝ์œผ๋กœ 1๋ฒˆ ์˜ฎ๊ฒจ์ ธ์„œ 1(2) ์ธ 1 ๊ฐ’์ด ๋ฉ๋‹ˆ๋‹ค.