All :L

[Java] ์ž๋ฐ” ๊ธฐ๋ณธ ๋ณธ๋ฌธ

STUDY/Java

[Java] ์ž๋ฐ” ๊ธฐ๋ณธ

ofijwe 2024. 10. 16. 14:11
๋ฐ˜์‘ํ˜•

๐Ÿ“’ ์ž๋ฐ” ๊ธฐ๋ณธ

1๏ธโƒฃ Variable

  • ์ž๋ฃŒ๋ฅผ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•œ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์œผ๋กœ ํƒ€์ž…์— ๋”ฐ๋ผ ํฌ๊ธฐ๊ฐ€ ๋‹ฌ๋ผ์ง.
    • Type
      • ๊ธฐ๋ณธํ˜•: ์ •ํ•ด์ง„ ํฌ๊ธฐ
        • ๋…ผ๋ฆฌํ˜• : boolean
          • ์ •์ˆ˜ํ˜• : byte, short, int, long
        • ์‹ค์ˆ˜ํ˜• : float, double
        • ๋ฌธ์žํ˜• : char
      • ์ฐธ์กฐํ˜•: ์ฐธ์กฐ ์ฃผ์†Œ ์ €์žฅ
        • String(๊ฐ์ฒดํ˜•)
          • ์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” Strinig ๋ฉ”์„œ๋“œ ๊ธฐ์–ตํ•ด๋‘๊ธฐ
          • ๋‚ด์šฉ์ผ ๊ฐ™์„ ๊ฒฝ์šฐ → equals() ์‚ฌ์šฉ
          • ๊ฐ™์€ ๊ฐ์ฒด์ผ ๊ฒฝ์šฐ → == ์‚ฌ์šฉ

2๏ธโƒฃ ํ˜• ๋ณ€ํ™˜

  • ๋ณ€์ˆ˜์˜ ํ˜•์„ ๋‹ค๋ฅธ ํ˜•์œผ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๊ฒƒ
    • ๊ธฐ๋ณธํ˜•์˜ ํ˜• ๋ณ€ํ™˜ ์ง„ํ–‰
      • ๋ช…์‹œ์  ํ˜• ๋ณ€ํ™˜ VS ๋ฌต์‹œ์  ํ˜• ๋ณ€ํ™˜
      • ํƒ€์ž…์˜ ํ‘œํ˜„ ๋ฒ”์œ„๊ฐ€ ์ปค์ง€๋Š” ๋ฐฉํ–ฅ์œผ๋กœ ํ• ๋‹นํ•  ๊ฒฝ์šฐ ๋ฌต์‹œ์  ํ˜•๋ณ€ํ™˜ ๋ฐœ์ƒ
      • ๋ช…์‹œ์  ํ˜•๋ณ€ํ™˜์€ ๊ฐ’ ์†์‹ค์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Œ → ์ฑ…์ž„ํ•˜์— ํ˜•๋ณ€ํ™˜ ์ง„ํ–‰
      • ๋ฌต์‹œ์  ํ˜•๋ณ€ํ™˜์€ ์ž๋ฃŒ์˜ ์†์‹ค ๊ฑฑ์ • X → ํ˜•๋ณ€ํ™˜ ์—ฐ์‚ฐ ์ƒ๋žต
  • ๊ณ„์‚ฐํ•˜๊ธฐ ์ „์— ํ˜• ๋ณ€ํ™˜ ํ•˜๊ธฐ! → ๊ณ„์‚ฐ ํ›„์— ํ•˜๋ฉด X
  • ๊ธฐ๋ณธํ˜•๊ณผ ๊ฐ์ฒดํ˜•์˜ ํ˜• ๋ณ€ํ™˜
    • wrapper class ํ™œ์šฉ
      • 8๊ฐœ์˜ ๊ธฐ๋ณธํ˜•์— ๋Œ€์‘ํ•˜๋Š” 8๊ฐœ์˜ class ์กด์žฌ
      • ๊ธฐ๋ณธํ˜•๊ณผ ๋‹ฌ๋ฆฌ ์ถ”๊ฐ€์ ์ธ ์†์„ฑ๊ณผ ๊ธฐ๋Šฅ ํฌํ•จ
        • Integer.MAX_VALUE
        • Integer.MIN_VALUE
        • Integer.compare(int a, int b)
      • ํ˜•๋ณ€ํ™˜ ๊ด€๋ จ ๋ฉ”์„œ๋“œ
        • Integer.parseInt(String str)
        • Integer.valueOf(Integer i)
        • Integer.intValue()

3๏ธโƒฃ ์กฐ๊ฑด๋ฌธ

  • if / else if / else
  • switch expressions
    • ํ‘œํ˜„์‹ ์ž์ฒด๊ฐ€ ๊ฐ’์„ ๋ฐ˜ํ™˜ ๊ฐ€๋Šฅ, ์ž๋™ break
      • ์‹คํ–‰ ๋ผ์ธ์ด 1์ค„์ธ ๊ฒฝ์šฐ : ๋นผ๊ณ  → ์ด์šฉ
      • block์„ ๊ตฌ์„ฑํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ yleld ํ‚ค์›Œ๋“œ ์‚ฌ์šฉ
    • ์—ฌ๋Ÿฌ ์กฐ๊ฑด์„ ์‰ผํ‘œ๋กœ ๊ตฌ๋ถ„ํ•ด ํ•œ ๋ผ์ธ์— ์ฒ˜๋ฆฌ ๊ฐ€๋Šฅ

4๏ธโƒฃ ๋ฐ˜๋ณต๋ฌธ

  • ์ดˆ๊ธฐ๊ฐ’ / ์กฐ๊ฑด์‹ / ์ฆ๊ฐ์‹

๐Ÿ“’ ๋ฐฐ์—ด

1๏ธโƒฃ ๋ฐฐ์—ด

  • ๋™์ผํ•œ ํƒ€์ž…์˜ ๋ฐ์ดํ„ฐ 0๊ฐœ ์ด์ƒ → ์—ฐ์†๋œ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์— ๊ด€๋ฆฌํ•˜๋Š” ๊ฒƒ

2๏ธโƒฃ ๋ฐฐ์—ด์˜ ์ƒ์„ฑ๊ณผ ์ดˆ๊ธฐํ™”

  • Array ๋งŒ๋“ค๊ธฐ #1
    • ๋ณ€์ˆ˜ [] ๋ณ€์ˆ˜๋ช…;
      • int [] points;
    • ํƒ€์ž… ๋ณ€์ˆ˜๋ช…[];
      • String names [];
  • Array ๋งŒ๋“ค๊ธฐ #2
    • ์ƒ์„ฑ๊ณผ ๋™์‹œ์— ํ• ๋‹นํ•œ ๊ฐ’์œผ๋กœ ์ดˆ๊ธฐํ™”
      • int [] b = new int [] {1, 3, 5, 6, 8};
      • int [] c = {1, 3, 5, 6, 8};
    • ์„ ์–ธ๊ณผ ์ƒ์„ฑ ๋”ฐ๋กœ ์ดˆ๊ธฐํ™” ์‹œ ์ฃผ์˜ ํ•„์š”
      • ์ปดํŒŒ์ผ ์˜ค๋ฅ˜
        • ๋ฐฐ์—ด ํฌ๊ธฐ๋ฅผ ์•Œ ์ˆ˜ ์—†์„ ๋•Œ
    • for-each with Array
      • ๊ฐ€๋…์„ฑ ๊ฐœ์„ ๋œ ๋ฐ˜๋ณต๋ฌธ
      • ๋ฐฐ์—ด ๋ฐ Collections์— ์‚ฌ์šฉ
      • index ๋Œ€์‹  ์ง์ ‘ ์š”์†Œ์— ์ ‘๊ทผํ•˜๋Š” ๋ณ€์ˆ˜ ์ œ๊ณต
        • naturally read only ( copied value )
      • ์‚ฌ์šฉ
        int intArray[] = {1, 3, 5, 7, 9};
        for(int x : intArray) {
          System.out.println(x);
        }
    • Array is Immutable
      • ๋“ฑํ˜ธ์˜ ์ขŒ์ธก์€ ๋ฐฐ์—ด x(์ฐธ์กฐํ•˜๊ณ  ์žˆ๋Š” ๋ ˆํผ๋Ÿฐ์Šค ํƒ€์ž…์˜ ๋ณ€์ˆ˜์ผ ๋ฟ) / ์šฐ์ธก์ด ๋ฐฐ์—ด
      • ๋ฐฐ์—ด์€ ์ตœ์ดˆ ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น ์ดํ›„, ๋ณ€๊ฒฝํ•  ์ˆ˜ X
      • ๊ฐœ๋ณ„ ์š”์†Œ๋Š” ๋‹ค๋ฅธ ๊ฐ’์œผ๋กœ ๋ณ€๊ฒฝ ๊ฐ€๋Šฅ
      • but, ์š”์†Œ ์ถ”๊ฐ€ & ์‚ญ์ œ ํ•  ์ˆ˜ X
    • ์ƒ์„ฑ
      • new keyword์™€ ํ•จ๊ป˜ ์ €์žฅํ•˜๋ ค๋Š” ๋ฐ์ดํ„ฐ ํƒ€์ž… ๋ฐ ๊ธธ์ด ์ง€์ •
    • ๋ฐฐ์—ด ์š”์†Œ์˜ ์ดˆ๊ธฐํ™”
      • ๋ฐฐ์—ด ์ƒ์„ฑ๊ณผ ๋™์‹œ์— ์ €์žฅ ๋Œ€์ƒ ์ž๋ฃŒํ˜•์— ๋Œ€ํ•œ ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ default ์ดˆ๊ธฐํ™”

3๏ธโƒฃ api ์ œ๊ณตํ•˜๋Š” ๋ฐฐ์—ด ๋ณต์‚ฌ method

  • System.arrayCopy
  • Arrays.copyOf

๐Ÿ“’ ๋‹ค์ฐจ์› ๋ฐฐ์—ด

1๏ธโƒฃ ๋‹ค์ฐจ์› ๋ฐฐ์—ด

  • ๋‹ค์ฐจ์› ๋ฐฐ์—ด์€ ๋ฐฐ์—ด์˜ ๋ฐฐ์—ด์„ ์˜๋ฏธ
  • Java๋Š” 2์ฐจ์› ์ด์ƒ์˜ ๋ฐฐ์—ด๋„ ์„ ์–ธํ•˜๊ณ  ์‚ฌ์šฉ ๊ฐ€๋Šฅ
  • ์ฃผ๋กœ 2์ฐจ์› ๋ฐฐ์—ด์ด ๋งŽ์ด ์‚ฌ์šฉ → ํ‘œ๋‚˜ ํ–‰๋ ฌ ๋“ฑ์„ ํ‘œํ˜„ํ•  ๋•Œ ์œ ์šฉ

2๏ธโƒฃ ๋‹ค์ฐจ์› ๋ฐฐ์—ด ์„ ์–ธ๊ณผ ์ดˆ๊ธฐํ™”

  • 2์ฐจ์› ๋ฐฐ์—ด ์„ ์–ธ
    • ๋ฐฐ์—ด์˜ ๊ฐ ์š”์†Œ๊ฐ€ ๋˜ ๋‹ค๋ฅธ 1์ฐจ์› ๋ฐฐ์—ด์„ ๊ฐ€๋ฆฌํ‚ด.
  • int[][] arr; // 2์ฐจ์› ์ •์ˆ˜ํ˜• ๋ฐฐ์—ด ์„ ์–ธ
  • ๋ฐฐ์—ด ์ƒ์„ฑ ๋ฐ ํฌ๊ธฐ ์ง€์ •
    • ์ฒซ ๋ฒˆ์งธ ๋Œ€๊ด„ํ˜ธ [3]๋Š” ๋ฐฐ์—ด์˜ ํ–‰(row)
    • ๋‘ ๋ฒˆ์งธ ๋Œ€๊ด„ํ˜ธ [4]๋Š” ์—ด(column)
  • arr = new int[3][4]; // 3ํ–‰ 4์—ด์˜ 2์ฐจ์› ๋ฐฐ์—ด ์ƒ์„ฑ
  • ๋ฐฐ์—ด ์„ ์–ธ๊ณผ ๋™์‹œ์— ์ดˆ๊ธฐํ™”
    • ์œ„ ์˜ˆ์ œ๋Š” 3x4 ํฌ๊ธฐ์˜ ๋ฐฐ์—ด์„ ์„ ์–ธ
    • ๊ฐ ์š”์†Œ์— ์ดˆ๊ธฐ ๊ฐ’ ํ• ๋‹น
  • int[][] arr = { {1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12} };

3๏ธโƒฃ ๋‹ค์ฐจ์› ๋ฐฐ์—ด ์š”์†Œ ์ ‘๊ทผ

  • ๋‹ค์ฐจ์› ๋ฐฐ์—ด์˜ ํŠน์ • ์š”์†Œ ์ ‘๊ทผ → ํ–‰๊ณผ ์—ด ์ธ๋ฑ์Šค๋ฅผ ๋ชจ๋‘ ์‚ฌ์šฉ
    • ๋ฐฐ์—ด์˜ ์ธ๋ฑ์Šค๋Š” 0๋ถ€ํ„ฐ ์‹œ์ž‘
    • arr[1][2]๋Š” ๋‘ ๋ฒˆ์งธ ํ–‰์˜ ์„ธ ๋ฒˆ์งธ ์—ด์˜ ๊ฐ’์„ ๊ฐ€์ ธ์˜ด
  • int value = arr[1][2]; // 2๋ฒˆ์งธ ํ–‰, 3๋ฒˆ์งธ ์—ด์˜ ์š”์†Œ์— ์ ‘๊ทผ

4๏ธโƒฃ ๋‹ค์ฐจ์› ๋ฐฐ์—ด์˜ ์ˆœํšŒ

  • ์ค‘์ฒฉ for๋ฌธ ์‚ฌ์šฉ → ๋‹ค์ฐจ์› ๋ฐฐ์—ด์˜ ๋ชจ๋“  ์š”์†Œ ์ˆœํšŒ
    • arr.length๋Š” ๋ฐฐ์—ด์˜ ํ–‰ ์ˆ˜๋ฅผ ๋ฐ˜ํ™˜
    • arr[i].length๋Š” ํŠน์ • ํ–‰์˜ ์—ด ์ˆ˜๋ฅผ ๋ฐ˜ํ™˜
  • for (int i = 0; i < arr.length; i++) { // ํ–‰์˜ ๊ฐœ์ˆ˜๋งŒํผ ๋ฐ˜๋ณต for (int j = 0; j < arr[i].length; j++) { // ํ•ด๋‹น ํ–‰์˜ ์—ด ๊ฐœ์ˆ˜๋งŒํผ ๋ฐ˜๋ณต System.out.print(arr[i][j] + " "); } System.out.println(); // ํ–‰์ด ๋๋‚˜๋ฉด ์ค„๋ฐ”๊ฟˆ }

5๏ธโƒฃ ๊ฐ€๋ณ€ ๊ธธ์ด ๋ฐฐ์—ด (Jagged Array)

  • Java๋Š” ๋ชจ๋“  ํ–‰์ด ๊ฐ™์€ ๊ธธ์ด์ผ ํ•„์š” X → ๊ฐ€๋ณ€ ๊ธธ์ด ๋ฐฐ์—ด์ด๋ผ๊ณ  ํ•จ
    • ๊ฐ ํ–‰์ด ๋‹ค๋ฅธ ๊ธธ์ด๋ฅผ ๊ฐ€์งˆ ์ˆ˜ O
    • ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ ์ธก๋ฉด์—์„œ ์œ ๋ฆฌ
  • int[][] jaggedArr = new int[3][]; // 3๊ฐœ์˜ ํ–‰์„ ๊ฐ€์ง„ ๊ฐ€๋ณ€ ๊ธธ์ด ๋ฐฐ์—ด ์„ ์–ธ jaggedArr[0] = new int[2]; // ์ฒซ ๋ฒˆ์งธ ํ–‰์˜ ๊ธธ์ด๋Š” 2 jaggedArr[1] = new int[4]; // ๋‘ ๋ฒˆ์งธ ํ–‰์˜ ๊ธธ์ด๋Š” 4 jaggedArr[2] = new int[3]; // ์„ธ ๋ฒˆ์งธ ํ–‰์˜ ๊ธธ์ด๋Š” 3

6๏ธโƒฃ ๋‹ค์ฐจ์› ๋ฐฐ์—ด ์‚ฌ์šฉ ์‹œ ์ฃผ์˜์‚ฌํ•ญ

  • ๋ฐฐ์—ด์˜ ์ธ๋ฑ์Šค๋Š” 0๋ถ€ํ„ฐ ์‹œ์ž‘ → ๋ฐฐ์—ด์˜ ํฌ๊ธฐ๋ฅผ ๋ฒ—์–ด๋‚œ ์ ‘๊ทผ์€ ArrayIndexOutOfBoundsException ์˜ค๋ฅ˜ ๋ฐœ์ƒ
  • ๋‹ค์ฐจ์› ๋ฐฐ์—ด์€ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋งŽ์ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ → ํฌ๊ธฐ์™€ ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰ ๊ณ ๋ คํ•ด ์„ค๊ณ„ํ•  ํ•„์š” O
๋ฐ˜์‘ํ˜•

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

[Java] ์ œ๋„ค๋ฆญ (Generic)  (2) 2024.10.28
[Java] ์ธํ„ฐํŽ˜์ด์Šค (Interface)  (0) 2024.10.26
[Java] ๋‹คํ˜•์„ฑ (Polymorphism)  (0) 2024.10.24
[Java] ์ƒ์† (Inheritance)  (0) 2024.10.20
[Java] ์ถ”์ƒํ™” (Abstraction)  (0) 2024.10.18
Comments