• JAVA Basics

    2022. 5. 12.

    by. JuneBee

    728x90
    ๋ฐ˜์‘ํ˜•

    <1> ์ž๋ฐ”์˜ ํŠน์ง•

    1. WORA (Wirte Once and Read Anywhere)

    ์ž๋ฐ”๋Š” ์šด์˜ ์ฒด์ œ์— ๋…๋ฆฝ์ ์ธ ํŠน์ง•์„ ์ง€๋‹Œ๋‹ค โ†’ ์–ด๋А ์šด์˜์ฒด์ œ์—์„œ๋„ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•จ (windows, Linux, Mac ...)

     

    2. Garbage Collections

    ๋”์ด์ƒ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ž๋™์œผ๋กœ ์ •๋ฆฌํ•˜๋Š” ๊ธฐ๋Šฅ

    ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰์…˜์€ ์–ธ์ œ ๋ฐœ์ƒํ•˜๋Š”๊ฐ€? ๋ฉฐ๋А๋ฆฌ๋„ ๋ชจ๋ฅธ๋‹ค. ์ž๊ธฐ๊ฐ€ ํ•œ๊ฐ€ํ•  ๋•Œ ํ•ด์คŒ

     

    3. ๊ฐ์ฒด ์ง€ํ–ฅ์–ธ์–ด
    ์ž๋ฐ”๋Š” ๊ฐ์ฒด์ง€ํ–ฅ ์–ธ์–ด๋กœ ๋งด๋ฒ„ ๋ณ€์ˆ˜์™€ ๋ฉ”์„œ๋“œ๋ฅผ ๊ฐ–๋Š”๋‹ค
    . : ~ has


    4. ํด๋ž˜์Šค๋Š” ์ž๋ฐ”์˜ ์ตœ์†Œ ๊ตฌ์„ฑ ๋‹จ์œ„์ด๋‹ค

    <2> Variables

    ๐Ÿ’ก Variable (๋ณ€์ˆ˜) : ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ์˜๋ฏธํ•œ๋‹ค
       ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์— ๊ฐ’ (value) ๋ฅผ ํ• ๋‹น(assign) ํ•œ ํ›„์— ์‚ฌ์šฉํ•œ๋‹ค
    1. ํƒ€์ž…
      ๋ณ€์ˆ˜์— ์ €์žฅ๋˜๋Š” ๋ฐ์ดํ„ฐ ์ข…๋ฅ˜
    ํƒ€์ž… ํ˜• ๋ฐ์ดํ„ฐ ํƒ€์ž… ์ •์˜ bit
    Primitive Types(๊ธฐ๋ณธํ˜•) ๋…ผ๋ฆฌํ˜• boolean true/false -
    ์ •์ˆ˜ํ˜• byte ๋ถ€ํ˜ธ O 8
    short ๋ถ€ํ˜ธ X 16
    int ์ •์ˆ˜ default 32
    ์‹ค์ˆ˜ํ˜• long ๋ถ€ํ˜ธ O 64
    float ๋ถ€๋™์†Œ์ˆ˜์  ์‹ค์ˆ˜ 32
    double ์‹ค์ˆ˜ default 64
    ๋ฌธ์žํ˜• char unicode 16
    Reference Types(์ฐธ์กฐํ˜•) - - - -

    (1) ๊ธฐ๋ณธํ˜• ๋ณ€์ˆ˜ (Primitive Type)

    ๋ฏธ๋ฆฌ ์ •ํ•ด์ง„ ํฌ๊ธฐ์˜ memory size ๊ฐ€ ์žˆ๊ณ  ๋ณ€์ˆ˜ ์ž์ฒด์— ๊ฐ’์„ ์ €์žฅํ•œ๋‹ค

    (2) ์ฐธ์กฐํ˜• ๋ณ€์ˆ˜ (Reference Type)

    ๋ฏธ๋ฆฌ ์ •ํ•ด์งˆ ์ˆ˜ ์—†๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ฐธ์กฐํ•˜๋Š” ๋ณ€์ˆ˜๋กœ ์‹ค์ œ๊ฐ’์„ ์ฐธ์กฐํ•  ์ˆ˜ ์žˆ๋Š” ์ฃผ์†Œ๊ฐ’๋งŒ์„ ์ €์žฅํ•œ๋‹ค โ†’ "HEAP" ์˜์—ญ์— ๊ณต๊ฐ„์˜ ์ฃผ์†Œ๋ฅผ ์ €์žฅํ•œ๋‹ค

    <3> Byte

    Byte ํ‘œ๊ธฐ๋ฒ•: ์ฒซ๋ฒˆ์งธ ๋น„ํŠธ๋Š” sign์„ ๋‚˜ํƒ€๋‚ธ๋‹ค (0-positive, 1 - negative)
    00001001 : 1+ 2^3 = 9
    10001001 : 1 + 2^3 + (-1)*2^8 = -119

    <4> Type Casting

    ๐Ÿ’ก ํ˜•๋ณ€ํ™˜์€ ๋ณ€์ˆ˜์˜ ํƒ€์ž…์„ ๋‹ค๋ฅธ ํƒ€์ž…์œผ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ํ–‰์œ„์ด๋‹ค
        ํ˜•๋ณ€ํ™˜์—๋Š” ํฌ๊ฒŒ ๋‘๊ฐ€์ง€ ์ข…๋ฅ˜๊ฐ€ ์žˆ๋‹ค
    1. ๋ช…์‹œ์  ํ˜•๋ณ€ํ™˜ (Demotion)
      (1) Big โ†’ Small
      (2) ๊ฐ’ ์†์‹ค์ด ๋ฐœ์ƒํ•˜๊ธฐ ๋•Œ๋ฌธ์— JVM์ด ์ž๋™์œผ๋กœ ์ฒ˜๋ฆฌํ•ด์ฃผ์ง€ ์•Š๋Š”๋‹ค
      (3) ๊ด„ํ˜ธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ˜•๋ณ€ํ™˜์„ ํ•œ๋‹ค
    int i =30000; //32 bit
    byte b = (byte) i ;// 32 bit -> 8 bit. ์ž‘์€ ์ƒ์ž์•ˆ์— ์•„ํŒŒํŠธ ํ•œ์ฑ„ ๊ตฌ๊ฒจ๋„ฃ๋Š”์ค‘
    1. ๋ฌต์‹œ์  ํ˜•๋ณ€ํ™˜ (Promottion)
      (1) Small โ†’ Big
      (2) ์ž‘์€ ํƒ€์ž…์„ ํฐ ํƒ€์ž…์— ๋‹ด๋Š” ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ’ ์†์‹ค์ด ๋”ฐ๋กœ ๋ฐœ์ƒํ•˜์ง€ ์•Š๋Š”๋‹ค. ๋”ฐ๋ผ์„œ, ๋ณ„๋„๋กœ ํƒ€์ž… ์บ์ŠคํŒ…๋ฌธ์„ ์“ฐ์ง€ ์•Š์•„๋„ JVM ์ด ์ž๋™์œผ๋กœ ์ฒ˜๋ฆฌํ•ด์ค€๋‹ค
    byte b =10;
    int i = b; //ํฐ ์ปจํ…Œ์ด๋„ˆ ์•ˆ์— ์ž‘์€ ์ƒ์ž๋ฅผ ๋„ฃ๋Š”์ค‘ -> ๊ฐ€๋Šฅ
    int i2 =(int) b; //(int) ๋ฅผ ์ƒ๋žตํ•ด๋„ JVM ์ด ์ž๋™์œผ๋กœ ์ฒ˜๋ฆฌํ•ด์ค€๋‹ค

    <5> ์—ฐ์‚ฐ์ž

    ์—ฐ์‚ฐ์ž๋Š” ๋ณดํ†ต ์šฐ์ธก ๋ฐฉํ–ฅ์œผ๋กœ ์‹คํ–‰ํ•œ๋‹ค. ์—ฐ์‚ฐ์ž์˜ ์ˆœ์„œ๋ฅผ ์™ธ์›Œ๋†“์œผ๋ฉด ์ข‹์ง€๋งŒ ๊ตฌ์ง€ ์™ธ์šฐ์ง€ ์•Š์•„๋„ ๊ดœ์ฐฎ์œผ๋ฉฐ, ๋ณธ์ธ์ด ์™ธ์šฐ๊ณ  ์žˆ๋‹ค๊ณ  ํ•˜์—ฌ๋„ ๊ฐ€๋…์„ฑ์ด ์ข‹์€ ์ฝ”๋“œ๋ฅผ ์งœ๊ธฐ ์œ„ํ•ด์„œ๋Š” ๊ด„ํ˜ธ๋ฅผ ์ด์šฉํ•˜๋Š” ๊ฒƒ์ด ๋” ๋‚˜์€ ๋ฐฉ๋ฒ•์ด๋‹ค.
    ์—ฐ์‚ฐ์ž๋Š” ๋ณดํ†ต ์šฐ์ธก ๋ฐฉํ–ฅ์œผ๋กœ ์‹คํ–‰ํ•˜๋Š”๋ฐ, ๋‹จํ•ญ ์—ฐ์‚ฐ์ž๋งŒ์ด ์™ผ์ชฝ ๋ฐฉํ–ฅ์œผ๋กœ ์—ฐ์‚ฐ์„ ์ง„ํ–‰ํ•œ๋‹ค.

    • ๋Œ€์ž… ์—ฐ์‚ฐ์ž: = , += , -=, %= ๋“ฑ๋“ฑ
    • ๋‹จํ•ญ ์—ฐ์‚ฐ์ž: ++, โ€”, !, ~ ,+/-(๋ถ€์ •, bit ๋ณ€ํ™˜> ๋ถ€ํ˜ธ )

    ๋น„ํŠธ ์—ฐ์‚ฐ์ž๋Š” *2 ๋‚˜ /2 ์— ๋น„ํ•ด ์†๋„๊ฐ€ ๋น ๋ฅด๋‹ค

    int a =10; //a : 1 0 1 0 -> a<<1: 1 0 1 0 '0'|| a: 1 0 1 0- > a>>1: '0' 0 1 0 1
    int b = a<< 1; // *2 ์™€ ๋™์ผ
    int d = a>>1; // ./2 ์™€ ๋™์ผ

    ๋…ผ๋ฆฌ ์—ฐ์‚ฐ์ž 

    ์—ฐ์‚ฐ์ž ๊ธฐ๋Šฅ ์—ฐ์‚ฐ ๋ฐฉํ–ฅ
    & ๋‘๊ฐœ์˜ ์—ฐ์‚ฐ์ž๊ฐ€ ๋ชจ๋‘ true ์ธ ๊ฒฝ์šฐ : true ->
    | ๋‘๊ฐœ์˜ ์—ฐ์‚ฐ์ž ์ค‘ ํ•˜๋‚˜ ์ด์ƒ์ด true ์ธ ๊ฒฝ์šฐ : true ->
    ! NOT ->
    ^ ๋‘๊ฐœ์˜ ์—ฐ์‚ฐ์ž๊ฐ€ ์„œ๋กœ ๋‹ค๋ฅผ ๊ฒฝ์šฐ์—๋งŒ true ->

     

    Short Circuit ์—ฐ์‚ฐ์ž

    ์—ฐ์‚ฐ์ž ๊ธฐ๋Šฅ ์—ฐ์‚ฐ ๋ฐฉํ–ฅ
    && & ์™€ ๋™์ผํ•˜๋‚˜ ์•ž์˜ ํ”ผ์—ฐ์‚ฐ์ž๊ฐ€ false์ด๋ฉด ๋’ค ์—ฐ์‚ฐ์ž๋ฅผ ๊ฒ€์‚ฌํ•˜์ง€ ์•Š๋Š”๋‹ค ->
    || |์™€ ๋™์ผํ•˜๋‚˜ ์•ž์˜ ํ”ผ์—ฐ์‚ฐ์ž๊ฐ€ true์ด๋ฉด ๋’ค ์—ฐ์‚ฐ์ž๋ฅผ ๊ฒ€์‚ฌํ•˜์ง€ ์•Š๋Š”๋‹ค. ->

     

    ์œ„์˜ ๋‘ ์—ฐ์‚ฐ์ž๋ฅผ ์ž์ฃผ ํ˜ผ๋™ํ–ˆ์—ˆ๋Š”๋ฐ,
    && ์„ ์“ฐ๋ฉด ์•ž์˜ ํ”ผ์—ฐ์‚ฐ์ž๊ฐ€ false ์ผ๋•Œ ๋’ค์˜ ์กฐ๊ฑด์„ ๋ณด์ง€ ์•Š๊ณ  false ๋ฅผ ์‚ฐ์ถœํ•ด๋ฒ„๋ฆฌ๊ธฐ ๋•Œ๋ฌธ์— ์›์น˜ ์•Š์€ ๊ฒฐ๊ณผ๋ฅผ ๋‚ด๋ฉด์„œ ์–ด๋””๊ฐ€ ํ‹€๋ ธ๋Š”์ง€ ํ—ค๋งฌ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— (์ž๊ธฐ์†Œ๊ฐœ) ์ฃผ์˜ํ•ด์„œ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค.
    Example:

    int num1 =9, num2 =2 , num3 = 0;
    /* num1 == num2 ๋Š” false ์ด๊ธฐ ๋•Œ๋ฌธ์—,
    num1 / num3 ์€ <int/0>์˜ ํ˜•ํƒœ๋ฅผ ๋„์–ด์„œ exception ์ด ๋ฐœ์ƒํ•ด์•ผํ•˜์ง€๋งŒ "False" ๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค*/
    System.out.print((num1==num2) && (num1/num3) >0);
    System.out.print((num1==num2) & (num1/num3) >0); //error -> ์–‘์ชฝ ๋‹ค ๋Œ๋ฆฐ๋‹ค

    <6>์ œ์–ด๋ฌธ

    1. If ๋ฌธ
      (1) ๊ตฌ์กฐ
      if - if , if -else, if- else if- else
    int age = 29 ;
    if (age >= 31) {System.out.println("์„ ๋ฐ”..?");
    else if (age >= 26) {System.out.println("ํ™”์„");}
    else if (age >=24 ) {System.out.println("์„ ๋ฐฐ๋‹˜...");}
    else if (age >= 20) {System.out.println("์‚์•ฝ");}
    else {System.out.println("์‘์•  ๋‚˜ ์• ๊ธฐ");}
    (2) ์‚ผํ•ญ ์—ฐ์‚ฐ์ž
    Format : datatype variableName condition ? value1 : value2 ;
    String collegeYear = age > = 26 ? "ํ™”์„" : "์‘์•  ๋‚˜ ์• ๊ธฐ" ;
    //age ๊ฐ€ 26์ด์ƒ์ด๋ฉด ํ™”์„์ด๊ณ  ์•„๋‹๊ฒฝ์šฐ์—” ์‘์•  ๋‚˜ ์• ๊ธฐ๊ฐ€ collegeYear ์— ํ• ๋‹น๋œ๋‹ค
    System.out.println(" I am... " + collegeYear);
    1. Switch ๋ฌธ
      (1) ๊ตฌ์กฐ
    switch (age) {
    case 26 :
    collegeYear = "ํ™”์„" ;//break ๋ฌธ์ด ์—†์œผ๋ฉด
    case 30 :
    collegeYear = "๊ณต๋ฃก" ;
    break;
    case 24 :
    collegeYear = "์„ ๋ฐฐ";
    break;
    default :
    collegeYear = "์‘์•  ๋‚˜ ์• ๊ธฐ";
    break;
    }

    ์œ„ ์Šค์œ„์น˜ ๋ฌธ์—์„œ, case 26 ์ผ๋•Œ, break ๋ฌธ์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์•˜๋‹ค.
    26 ์„ ์ž…๋ ฅํ•˜๋ฉด break ๊ฐ€ ์—†์–ด์„œ "ํ™”์„"์ด ์•„๋‹Œ ๊ทธ ๋‹ค์Œ ์ผ€์ด์Šค์˜ "๊ณต๋ฃก"์„ ์ €์žฅํ•จ

    ๐Ÿคฆ๐Ÿปโ€โ™€๏ธ ์ž๋ฐ”์—์„œ๋Š” case 1: case 2: case 3: ๊ณผ ๊ฐ™์ด ๊ฒฐ๊ณผ๊ฐ€ ๊ฐ™์„ ๋•Œ ํ•œ๋ฒˆ์— ์„ ์–ธํ•  ์ˆ˜ ์žˆ๋‹ค !

    ex: case 1: case 2: case 12 : season = "๊ฒจ์šธ"; break;
        case 3: case 4: case 5: season = "๋ด„" break;
        case 6: case 7: case 8: season = "์—ฌ๋ฆ„" break;
        case 9: case 10: case 11: season = "๊ฐ€์„" break;
        default : season = "์‚ด๊ณ ๊ณ„์‹  ์„ธ๊ณ„๊ด€์ด ๋‹ค๋ฅด์‹ ๊ฐ€..?"; break;

    <7> ๋ฐ˜๋ณต๋ฌธ

    1. For Loop

    (1) ๋ฌธ๋ฒ•
    (2) for each vs for :
    for each loop ๋Š” index ๋ฅผ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์—†์ง€๋งŒ ์งง์•„์„œ ํŽธ๋ฆฌํ•จ. ์ƒํ™ฉ์— ๋”ฐ๋ผ์„œ ํšจ์œจ์ ์œผ๋กœ ์จ์•ผํ•จ

    int[] arr = {1,2,3,4,5};
    //๋ฐฉ๋ฒ• 1: for( ๋ณ€์ˆ˜ ์ดˆ๊ธฐํ™”; ๋ฐ˜๋ณต ์กฐ๊ฑด ; ์ฆ๊ฐ์‹)
    for(int i =0 ; i<arr.length; i++) {System.out.print(arr[i] +" "); }
    //๋ฐฉ๋ฒ• 2: for each loop
    for(int x: arr) {System.out.print(x+" ");}

     

    2. While Loop

    (1) ๋ฌธ๋ฒ•
    (2) while vs do... while:
    while loop ๋Š” condition์ด true ์ผ๋•Œ๋งŒ block ์•ˆ์— ์žˆ๋Š” ์กฐ๊ฑด์„ ์‹คํ–‰ํ•˜์ง€๋งŒ, do...while loop ๋Š” condition์„ ๋งŒ์กฑํ•˜์ง€ ๋ชปํ•˜๋”๋ผ๋„ loop์˜ ๋๊นŒ์ง€ ๋Œ์•„๊ฐ„๋‹ค.

    //๋ฐฉ๋ฒ• 1: while loop
    int i =0; //declare variables outside of the loop and write inc/dec inside body
    while(i<arr.length){System.out.print(arr[i]); i++;}
    //๋ฐฉ๋ฒ• 2: Do- While Loop
    do { System.out.print(arr[i]+" "); i++; }while(i<arr.length);

     

    3.  For Loop vs While Loop

    Loop Use When...
    for 1. ์ดˆ๊ธฐ๊ฐ’, ์กฐ๊ฑด์‹, ์ฆ๊ฐ์‹์˜ ์œ„์น˜๊ฐ€ ๋ช…ํ™•
    2. ์˜ˆ์ธก ๊ฐ€๋Šฅํ•œ ๋ฐ˜๋ณต
    3. index์˜ ์ฆ๊ฐ ํ™œ์šฉ
    while 1. ์˜ˆ์ธก ๊ฐ€๋ณ€์ ์ธ ๋ฐ˜๋ณต
    2. index ๋ณด๋‹ค๋Š” break, continue ํ™œ์šฉ

    <8> ๋ฐฐ์—ด

    ๋™์ผํ•œ type์˜ ๋ณ€์ˆ˜๋ฅผ ์—ฌ๋Ÿฌ๊ฐœ ์‚ฌ์šฉํ•˜๋‹ค๋ณด๋ฉด ๋ณ€์ˆ˜์˜ ์ˆ˜๋„ ์ฆ๊ฐ€ํ•˜๊ณ  ์ฝ”๋“œ์˜ ๊ธธ์ด๊ฐ€ ์ฆ๊ฐ€ํ•œ๋‹ค. ๋˜, ๋ฐ˜๋ณต๋ฌธ ์ ์šฉ์ด ๋ถˆ๊ฐ€ํ•˜๊ณ  ๋ณ€์ˆ˜์˜ ์ˆ˜๊ฐ€ ๋™์ ์œผ๋กœ ๊ฒฐ์ •๋  ๊ฒฝ์šฐ์— ์‚ฌ์šฉ์ด ๋ถˆ๊ฐ€ํ•˜๋‹ค.

    ์ด ๋•Œ, ๋ฐฐ์—ด(Array)๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๋™์ผํ•œ ํƒ€์ž…์˜ ๋ณ€์ˆ˜๋ฅผ ๋Œ€์‹ ํ•œ๋‹ค.

    1. ์ •์˜
      (1) ๋™์ผํ•œ ํƒ€์ž…์˜ ๋ฐ์ดํ„ฐ ์—ฌ๋Ÿฌ๊ฐœ๋ฅผ ํ•˜๋‚˜์˜ ์—ฐ์†๋œ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์— ๊ด€๋ฆฌํ•˜๋Š” ๊ฒƒ
      (2) ์š”์†Œ์— ์ ‘๊ทผํ•˜๋Š” ์†๋„๊ฐ€ ๋งค์šฐ ๋น ๋ฅด๋ฉฐ ํฌ๊ธฐ ๋ณ€๊ฒฝ์ด ๋ถˆ๊ฐ€ํ•˜๋‹ค.
    2. ๋ฐฐ์—ด ์„ ์–ธ
      (1) ๋ฐฐ์—ด ์„ ์–ธ:
      new keyword์™€ ํ•จ๊ป˜ ๋ฐ์ดํ„ฐ ํƒ€์ž…๊ณผ ํฌ๊ธฐ๋ฅผ ์ง€์ •ํ•œ๋‹ค โ†’ new data_type[size]
      ex) int [] array = new int[2]; โ†’ array ๋Š” ์ƒ์„ฑ๋œ ๋ฐฐ์—ด์„ ๊ฐ€๋ฅดํ‚ค๋Š” ์ฐธ์กฐํ˜• ๋ณ€์ˆ˜๋‹ค.
      (2) ๋ฐฐ์—ด ์„ ์–ธ์˜ 4๊ฐ€์ง€ ๋ฐฉ์‹
      1. int [] array1 = new int [5] ; array = new int [5];
      2. int [] array 2 = new int [5];
      3. int [] arryay3 = new int[] {1,2,3,4,5};
      4. int [] array4 = {1,2,3,4,5};

    ๐Ÿคฆ๐Ÿปโ€โ™€๏ธ ๋ฐฐ์—ด ์„ ์–ธ ํ›„ ์ƒ์„ฑ ์‹œ ์ดˆ๊ธฐํ™”์— ์ฃผ์˜ํ•ด์•ผ ํ•œ๋‹ค !

    int [] array1 ;
    array1 = {1,2,3,4,5}; //Compile Error -> array size is not initialized
    //Valid Code
    int [] intarr = {1,2,3};
    //inValid Code : { } ๋ฅผ ํ†ตํ•œ ๋ฐฐ์—ด ์ƒ์„ฑ์€ ๋ณ€์ˆ˜ ์„ ์–ธ๊ณผ ๋™์‹œ์— ํ•ด์•ผํ•œ๋‹ค
    bool[] bools;
    bools = {true, false, false} ;
    int [] array2 ;
    array2 = new int [] {1,2,3,4,5}; //์„ ์–ธํ•  ๋•Œ๋Š” ๋ฐฐ์—ด์˜ ํฌ๊ธฐ๋ฅผ ์•Œ ์ˆ˜ ์—†์„ ๋•Œ

    3. ๋ฐฐ์—ด์˜ ๊ฐ’์„ ์กฐํšŒ ํ•  ๋•Œ์—๋Š” index ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค

    4. for- each ๋Š” ๋ฐฐ์—ด์—์„œ ์ž์ฃผ ์“ฐ์ธ๋‹ค โ†’ Read Only ์ธ ๊ฒฝ์šฐ์—๋งŒ ์ฃผ๋กœ ์“ฐ์ธ๋‹ค

    5. Array is Immutable
    ๋ฐฐ์—ด์€ ์ตœ์ดˆ ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น ์ดํ›„ ๋ณ€๊ฒฝ์ด ๋ถˆ๊ฐ€ํ•˜๋‹ค
    ๊ฐœ๋ณ„ ์š”์†Œ๋Š” ๋‹ค๋ฅธ ๊ฐ’์œผ๋กœ ๋ณ€๊ฒฝ/overwrite ๊ฐ€๋Šฅํ•˜์ง€๋งŒ ์‚ญ์ œํ• ์ˆ˜๊ฐ€ ์—†๊ณ , ํฌ๊ธฐ๋ฅผ ๋Š˜๋ฆฌ๊ฑฐ๋‚˜ ์ค„์ผ ์ˆ˜๋„ ์—†๋‹ค โ†’ resize: ArraysCopyOf ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ํ•œ๋‹ค

    6. 2์ฐจ์› ๋ฐฐ์—ด
    ๋ฐฐ์—ด ์„ ์–ธ:

    1. int arr1 [ ] [ ] = new int [4][2] ;
    2. int [ ] arr2 [ ] = new int [4][2]; โ†’ 2D Array : [ ] ์˜ ์œ„์น˜๋Š” ์ƒ๊ด€ ์—†๋‹ค !
    3. int [ ] [ ] arr3 = new int [4][3];
    4. int [ ] [ ] arr5 = new int [ ] [ ] {{1,2,3,4,5},{2,3,4},{3,4} };
    5. int [ ] [ ] arr6 = {{1,2} , {2,4,5,6,2} , {2,3,4,} };
    6. int [ ] [ ] arr4 = new int [4]{1,2,3,4,5} ; โ†’ ๋ถˆ๊ฐ€๋Šฅ !!
    int [][] arr2D = new int [4][]; //valid
    arr2D[2] = new int [2]; //valid
    arr2D[0]= new int[4]; //valid
    arr2D[1]= {1,2,3}; //inValid! -> arr2D = new int [] {1,2,3}; ์œผ๋กœ ์ˆ˜์ •

    ๐Ÿคฆ๐Ÿปโ€โ™€๏ธ 2D Arrays Tip 

    1. ํ”„๋ฆฐํŠธ ๋ฐฉ๋ฒ•
        ๋ฐฐ์—ด์„ ํ”„๋ฆฐํŠธ ํ• ๋•Œ๋Š”,
       (1) 1์ฐจ์› ๋ฐฐ์—ด์ผ ๊ฒฝ์šฐ, Arrays.toString()
       (2) 2์ฐจ์› ๋ฐฐ์—ด์ผ ๊ฒฝ์šฐ Arrays.deepToString() ์„ ์‚ฌ์šฉํ•œ๋‹ค
    2. Getting Length:
       int [ ] [ ] array1 = new int [4][5];
       (1) row : array1[0].length //4
       (2) column : array1. length //5
    728x90
    ๋ฐ˜์‘ํ˜•

    '๐Ÿ““ STUDY > JAVA' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

    ์ถ”์ƒํ™”  (0) 2022.05.17
    ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ  (1) 2022.05.17
    Class Case Exception  (0) 2022.05.17
    Variables  (0) 2021.07.15
    ๋‹ค์ง  (0) 2021.07.15

    ๋Œ“๊ธ€