TIL#08 Java

Mixerยท2022๋…„ 5์›” 4์ผ
0

๐Ÿƒ๐Ÿป

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

  • ์šด์˜์ฒด์ œ์— ๋…๋ฆฝ์ 

    • ๋ชจ๋“  ์šด์˜์ฒด์ œ(OS)์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๋„๋ก ํ˜ธํ™˜์„ฑ์ด ๋†’๊ฒŒ ๋งŒ๋“ค์–ด์ง„ ์–ธ์–ด๋‹ค

  • ๊ฐ์ฒด ์ง€ํ–ฅ ์–ธ์–ด (Object Oriented Programming, OOP)

    • ์ž๋ฐ”๋Š” ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ฐœ๋…์„ ์‚ฌ์šฉํ•˜๋Š” ์–ธ์–ด๋‹ค. ๋”ฐ๋ผ์„œ ๋ชจ๋“  ๊ธฐ๋Šฅ์€ ๊ฐ์ฒด๋กœ ๋งŒ๋“ค์–ด ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค. ๊ฐ์ฒด๋Š” ํ”„๋กœ๊ทธ๋žจ์ด ๋™์ž‘ํ•˜๋Š” ๋ถ€ํ’ˆ์œผ๋กœ ์ƒ๊ฐํ•˜๋ฉด ํŽธํ•˜๋‹ค. ์—ฌ๋Ÿฌ ๋ถ€ํ’ˆ(๊ฐ์ฒด)๋“ค์„ ๋งŒ๋“ค๊ณ  ์กฐ๋ฆฝํ•ด์„œ ํ•˜๋‚˜์˜ ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•˜๋Š” ๊ฐœ๋…์ด OOP๋‹ค.
    • ์ปดํ“จํ„ฐ == ์™„์„ฑ๋œ ํ•˜๋‚˜์˜ ํ”„๋กœ๊ทธ๋žจ
    • ๋žจ์นด๋“œ, ๊ทธ๋ž˜ํ”ฝ์นด๋“œ, cpu, SSD ๋“ฑ ๋ถ€ํ’ˆ๋“ค์€ == ๊ฐ์ฒด๋กœ ๋น„์œ ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค

  • ํ•จ์ˆ˜ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์ง€์›

  • ์ž๋™ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ (Garbage Collection)

    • ์ž๋ฐ”๋Š” ๊ฐœ๋ฐœ์ž๊ฐ€ ์ง์ ‘ ๋ฉ”๋ชจ๋ฆฌ์— ์ ‘๊ทผํ•  ์ˆ˜ ์—†๋„๋ก ์„ค๊ณ„๋˜์–ด์žˆ์œผ๋ฉฐ, ๋ฉ”๋ชจ๋ฆฌ๋Š” ์ž๋ฐ”๊ฐ€ ์ง์ ‘ ๊ด€๋ฆฌํ•œ๋‹ค
      ๊ฐ์ฒด ์ƒ์„ฑ ์‹œ ์ž๋™์ ์œผ๋กœ ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์„ ์ฐพ์•„ ํ• ๋‹นํ•˜๊ณ , ์‚ฌ์šฉ์ด ์™„๋ฃŒ๋˜๋ฉด Garbage Colloector(AKA.์“ฐ๋ ˆ๊ธฐ ์ˆ˜์ง‘๊ธฐ)๋ฅผ ์‹คํ–‰์‹œ์ผœ ์ž๋™์ ์œผ๋กœ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฐ์ฒด๋ฅผ ์ œ๊ฑฐํ•œ๋‹ค.
  • ๋™์  ๋กœ๋”ฉ (Dynamic Loading)์ง€์›

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

JVM & JRE & JDK

Write Once, Run Anywhere (ํ•œ ๋ฒˆ ์“ฐ๊ณ  ๋ชจ๋“  ๊ณณ์—์„œ ์‹คํ–‰ํ•œ๋‹ค.)

JVM ์ž๋ฐ” ๊ฐ€์ƒ๋จธ์‹ (Java Virtual Machine)

์ž๋ฐ”๋Š” ์ปดํŒŒ์ผ๋Ÿฌ(Compiler)๋ฅผ ํ†ตํ•ด ๊ธฐ๊ณ„์–ด(Machine Language)๋กœ ๋ณ€ํ™˜๋˜๋Š” ์–ธ์–ด๋‹ค
์ปดํŒŒ์ผ(Compiler)์ด๋ž€, ํŠน์ • ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋ฅผ ๊ธฐ๊ณ„๊ฐ€ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ์–ธ์–ด๋กœ ์˜ฎ๊ธฐ๋Š” ๋ฒˆ์—ญ ๊ณผ์ •์ด๋‹ค.
์ž๋ฐ” ์–ธ์–ด๋ฅผ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ์ฝ”๋“œ (๋ฐ”์ดํŠธ์ฝ”๋“œ,ByteCode)๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค.

JVM์€ ์ž๋ฐ” ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰์‹œํ‚ค๋Š” ๋„๊ตฌ์ž…๋‹ˆ๋‹ค.

์ž๋ฐ”๊ฐ€ ์šด์˜์ฒด์ œ์— ๋…๋ฆฝ์ ์ธ ๊ฒƒ์€ JVM์ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ€๋Šฅํ•˜๋‹ค
JVM์€ ์ž๋ฐ” ์ฝ”๋“œ๋กœ ์ž‘์„ฑํ•œ ํ”„๋กœ๊ทธ๋žจ์„ ํ•ด์„ํ•ด ์‹คํ–‰ํ•˜๋Š” ๋ณ„๋„์˜ ํ”„๋กœ๊ทธ๋žจ์ด๋‹ค.
์ฆ‰, ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์ด๋‹ค.

JRE (Java Runtime Environment)

์ž๋ฐ” ์‹คํ–‰ ํ™˜๊ฒฝ์˜ ์•ฝ์ž, ์ž๋ฐ” ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•œ ๋„๊ตฌ๋“ค์ด ๋“ค์–ด์žˆ์œผ๋ฉฐ JVM์ด ์ด ์•ˆ์— ํฌํ•จ๋œ๋‹ค.

JDK(Java Development Kit)

์ž๋ฐ” ๊ฐœ๋ฐœ ๋„๊ตฌ์˜ ์•ฝ์ž, ์ž๋ฐ”๋กœ ๊ฐœ๋ฐœํ•˜๊ธฐ ์œ„ํ•œ ๋ชจ๋“  ๊ฒƒ์œผ ๋ฌถ์–ด๋†“์€ ํ‚คํŠธ์ด๋‹ค
์ž๋ฐ” ์‹คํ–‰ ํ™˜๊ฒฝ๊ณผ ๊ธฐํƒ€ ๊ฐœ๋ฐœ ๋„๊ตฌ๋กœ ๊ตฌ์„ฑ๋œ๋‹ค.

JRE(Java Runtime Environment) : JVM + ํ‘œ์ค€ ํด๋ž˜์Šค ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ
JDK(Java Development Kit) : JRE + ๊ฐœ๋ฐœ์— ํ•„์š”ํ•œ ๋„๊ตฌ


๊ธฐ๋ณธ ํƒ€์ž…๊ณผ ์ฐธ์กฐ ํƒ€์ž…

๊ธฐ๋ณธ ํƒ€์ž… (primitive type)
์ •์ˆ˜, ์‹ค์ˆ˜, ๋ฌธ์ž, ๋…ผ๋ฆฌ ๋ฆฌํ„ฐ๋Ÿด์„ ์ €์žฅํ•˜๋Š” ํƒ€์ž…์„ ์นญํ•˜๋ฉฐ ์›์‹œ ํƒ€์ž…์ด๋ผ๊ณ ๋„ ํ•œ๋‹ค.

  • ๋ฐ์ดํ„ฐ์˜ ์‹ค์ œ ๊ฐ’์„ ์˜๋ฏธ
  • ์ •์ˆ˜ ํƒ€์ž… (byte, short, int, long), ์‹ค์ˆ˜ ํƒ€์ž…(float, double), ๋ฌธ์ž ํƒ€์ž…(char), ๋…ผ๋ฆฌ ํƒ€์ž…(Boolean)

๐Ÿš€ ์‹ค์ œ ๋ฐ์ดํ„ฐ ๊ฐ’์„ ์ €์žฅํ•˜๋Š” ํƒ€์ž…์ด๋‹ค.

์ฐธ์กฐ ํƒ€์ž…(reference type)
์ž๋ฐ”์—์„  ์‹ค์ œ ๊ฐ์ฒด๋Š” Heap ์˜์—ญ์— ์ €์žฅ๋˜๋ฉฐ ์ฐธ์กฐ ํƒ€์ž… ๋ณ€์ˆ˜๋Š” ์Šคํƒ ์˜์—ญ์— ์‹ค์ œ ๊ฐ์ฒด๋“ค์˜ ์ฃผ์†Œ๋ฅผ ์ €์žฅํ•˜์—ฌ ๊ฐ์ฒด๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ๋งˆ๋‹ค ์ฐธ์กฐ ๋ณ€์ˆ˜์— ์ €์žฅ๋œ ์ฃผ์†Œ๋ฅผ ๋ถˆ๋Ÿฌ์™€ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค.

  • ๋ฐ์ดํ„ฐ๊ฐ€ ์ €์žฅ๋œ ์ฃผ์†Ÿ๊ฐ’์„ ์˜๋ฏธ
  • ๊ฐ์ฒด์˜ ์ฃผ์†Œ๋ฅผ ์ €์žฅ, 8๊ฐœ์˜ ๊ธฐ๋ณธํ˜•์„ ์ œ์™ธํ•œ ๋‚˜๋จธ์ง€ ํƒ€์ž…
    ex) ๋ฌธ์ž์—ด, ๋ฐฐ์—ด, ์—ด๊ฑฐ, ํด๋ž˜์Šค, ์ธํ„ฐํŽ˜์ด์Šค

์ด๋•Œ "๋ณ€์ˆ˜๋Š” ๋ฌด์—‡๋ฌด์—‡์ด๋‹ค" ๋ผ๊ณ  ์ง์ ‘์ ์œผ๋กœ ์˜๋ฏธ๋ฅผ ์•Œ๋ ค์ฃผ๋ฉด ๊ธฐ๋ณธ ํƒ€์ž…์˜ ๋ฐ์ดํ„ฐ,
"๋ณ€์ˆ˜๋Š” ์–ด๋”” ํŽ˜์ด์ง€์— ์„ค๋ช…๋˜์—ˆ๋‹ค" ๋ผ๊ณ  ํ•˜๋ฉด ์ฐธ์กฐ ํƒ€์ž…์˜ ๋ฐ์ดํ„ฐ

Stack

์ง€์—ญ ๋ณ€์ˆ˜, ํŒŒ๋ผ๋ฏธํ„ฐ, ๋ฆฌํ„ด ๊ฐ’, ์—ฐ์‚ฐ์— ์‚ฌ์šฉ๋˜๋Š” ์ž„์‹œ ๊ฐ’๋“ค์ด ์ƒ์„ฑ๋˜๋Š” ์˜์—ญ
๋ฉ”์†Œ๋“œ๋ฅผ ํ˜ธ์ถœํ•  ๋•Œ๋งˆ๋‹ค ์Šคํƒ ์˜์—ญ์ด ์ƒ์„ฑ๋˜๊ณ , ๊ธฐ๋ณธ ํƒ€์ž… ๋ณ€์ˆ˜๋‚˜ ์ฐธ์กฐ ํƒ€์ž… ๋ณ€์ˆ˜๊ฐ€ ์Œ“์ด๊ณ  ์‚ฌ๋ผ์ง€๊ณ ๋ฅผ ๋ฐ˜๋ณตํ•œ๋‹ค.

ex) ๊ธฐ๋ณธ ํƒ€์ž… ๋ณ€์ˆ˜
int a = 10; >> ์ •์ˆ˜ ๊ฐ’์ด ํ• ๋‹น๋˜๋Š” 'a' ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์˜ ์Šคํƒ ์˜์—ญ์ด ์ƒ์„ฑ >> 10์ด ํ• ๋‹น

ex) class Person p = new Person(); >> 'p' ์ด๋ฆ„์˜ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์˜ ์Šคํƒ ์˜์—ญ ์ƒ์„ฑ >> ์ƒ์„ฑ๋œ p์˜ ์ธ์Šคํ„ด์Šค๋Š” Heap ์˜์—ญ์— ์ƒ์„ฑ

Heap

new ํ‚ค์›Œ๋“œ๋กœ ์ƒ์„ฑ๋œ ๊ฐ์ฒด์™€ ๋ฐฐ์—ด์ด ์ƒ์„ฑ๋˜๋Š” ์˜์—ญ, ๋ฉ”์†Œ๋“œ ์˜์—ญ์— ๋กœ๋“œ๋œ ํด๋ž˜์Šค๋งŒ ์ƒ์„ฑ์ด ๊ฐ€๋Šฅํ•˜๊ณ  ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰ํ„ฐ๊ฐ€ ์ฐธ์กฐ๋˜์ง€ ์•Š๋Š” ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ™•์ธํ•˜๊ณ  ์ œ๊ฑฐํ•˜๋Š” ์˜์—ญ์ด๋‹ค

๊ธฐ๋ณธ ํƒ€์ž… vs ์ฐธ์กฐ ํƒ€์ž… ์ฐจ์ด

  1. Null ํฌํ•จ ๊ฐ€๋Šฅ ์—ฌ๋ถ€
    ๊ธฐ๋ณธ ํƒ€์ž…์€ null์„ ๋‹ด์„์ˆ˜ ์—†์ง€๋งŒ, ์ฐธ์กฐ ํƒ€์ž…์€ ๊ฐ€๋Šฅํ•˜๋‹ค
  2. ์ œ๋„ค๋ฆญ ํƒ€์ž…์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅ ์—ฌ๋ถ€
    ์œ„์™€ ๋™์ผํ•˜๊ฒŒ ๊ธฐ๋ณธ ํƒ€์ž…์€ ๋ถˆ๊ฐ€, ์ฐธ์กฐ ํƒ€์ž…์€ ๊ฐ€๋Šฅ
    3.์ ‘๊ทผ ์†๋„, ๋ฉ”๋ชจ๋ฆฌ ์–‘
    ๊ธฐ๋ณธ ํƒ€์ž…์ด ์ฐธ์กฐ ํƒ€์ž…์— ๋น„ํ•ด ์ ‘๊ทผ ์†๋„๊ฐ€ ํ›จ์”ฌ ๋น ๋ฅด๊ณ  ๋ฉ”๋ชจ๋ฆฌ ์–‘๋„ ํ›จ์”ฌ ์ ๊ฒŒ ์‚ฌ์šฉํ•œ๋‹ค.

์ •์ˆ˜ ํƒ€์ž… (byte, short, int, long)

์ •์ˆ˜ ํƒ€์ž…์€ byte, char, short, int, long ํƒ€์ž…์ด ์žˆ๋‹ค.
์ž๋ฐ”์—์„  ์ •์ˆ˜ ์—ฐ์‚ฐ์€ ๊ธฐ๋ณธ์ ์œผ๋กœ int๋กœ ํ•œ๋‹ค.

๋กฑํƒ€์ž… ์ฃผ์˜์‚ฌํ•ญ

int longnumber = 12345678910; // ์˜ค๋ฅ˜ (์ •์ˆ˜ int์˜ ๋ฒ”์œ„๋ฅผ ๋ฒ—์–ด๋‚จ)

longํƒ€์ž…์„ ์˜๋ฏธํ•˜๋Š” L์„ ๋ถ™์—ฌ์ฃผ๋ฉด ์˜ค๋ฅ˜๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค.
์ด๋•Œ ์†Œ๋ฌธ์ž l์„ ์ž…๋ ฅํ•ด๋„ ๋˜์ง€๋งŒ ์ˆซ์ž์™€ ํ˜ผ๋™ ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ์œผ๋‹ˆ ๋Œ€๋ฌธ์ž๋ฅผ ์‚ฌ์šฉํ•˜์ž

int longnumber = 12345678910L;

์˜ค๋ฒ„/์–ธ๋”ํ”Œ๋กœ์šฐ

  • ์˜ค๋ฒ„ํ”Œ๋กœ์šฐ
    • ์ž๋ฃŒํ˜•์ด ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฒ”์œ„ ์ด์ƒ์˜ ๊ฐ’์„ ํ‘œํ˜„ํ•  ๊ฒฝ์šฐ ๋ฐœ์ƒ
    • ์˜ˆ) ํ•œ ๊ฐ’์ด btyeํ˜•์ผ๋•Œ, btyeํ˜•์˜ ์ตœ๋Œ“๊ฐ’์ธ 127์„ ๊ฐ’์œผ๋กœ ๊ฐ€์ง€๋Š” ๊ฒฝ์šฐ, ์ด ๊ฐ’์— 1 ์„ ๋”ํ•˜๋ฉด 128์ด ์•„๋‹Œ -128์ด ๋œ๋‹ค.
  • ์–ธ๋”ํ”Œ๋กœ์šฐ
    • ์ž๋ฃŒํ˜•์ด ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฒ”์œ„ ์ดํ•˜์˜ ๊ฐ’์„ ํ‘œํ˜„ํ•œ ๊ฒฝ์šฐ ๋ฐœ์ƒ
    • ์˜ˆ) ํ•œ ๊ฐ’์ด btyeํ˜•์ผ๋•Œ, btye ํ˜•์˜ ์ตœ์†Ÿ๊ฐ’์ธ -128 ์„ ๊ฐ€์ง€๋Š” ๊ฒฝ์šฐ, ์ด ๊ฐ’์— 1์„ ๋นผ๋ฉด -129๊ฐ€ ์•„๋‹ˆ๋ผ 127์ด ๋œ๋‹ค.

๋ฌธ์ž ํƒ€์ž…(char)

char ํƒ€์ž…์˜ ๋ณ€์ˆ˜๋Š” '๋‹จ ํ•˜๋‚˜์˜ ๋ฌธ์ž' ๋งŒ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋‹ค.
์—ฌ๋Ÿฌ ๋ฌธ์ž๋ฅผ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋ฌธ์ž์—ด(String)์„ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค.

char ํƒ€์ž…์—๋Š” ๋ฌธ์ž๋ฅผ ์ง์ ‘ ์ €์žฅํ•  ๋ฟ ์•„๋‹ˆ๋ผ, 10์ง„์ˆ˜ 16์ง„์ˆ˜ ์ •์ˆ˜๋„ ์ €์žฅ์ด ๊ฐ€๋Šฅํ•˜๋‹ค
๋‹ค๋งŒ ์ •์ˆ˜๋กœ ์ €์žฅํ•  ๊ฒฝ์šฐ ์ถœ๋ ฅ ์‹œ ์ •์ˆ˜ ๊ฐ’์— ํ•ด๋‹น๋˜๋Š” ์œ ๋‹ˆ์ฝ”๋“œ ๋ฌธ์ž๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค

์ž๋ฐ”๋Š” ์œ ๋‹ˆ์ฝ”๋“œ์— ๊ธฐ๋ฐ˜ํ•˜์—ฌ ๋ฌธ์ž๋ฅผ ํ‘œํ˜„ํ•œ๋‹ค,
์œ ๋‹ˆ์ฝ”๋“œ๋ž€? ์ „ ์„ธ๊ณ„์˜ ๋ชจ๋“  ๋ฌธ์ž๋ฅผ ์ปดํ“จํ„ฐ์—์„œ ์ผ๊ด€๋˜๊ฒŒ ๋‹ค๋ฃจ๊ธฐ ์œ„ํ•œ ๊ตญ์ œ ํ‘œ์ค€
2byte ํฌ๊ธฐ์ธ ์ž๋ฐ”์˜ char(Character์˜ ์•ฝ์ž) ํƒ€์ž…์— ํ•˜๋‚˜์˜ ์œ ๋‹ˆ์ฝ”๋“œ๋ฅผ ์ €์žฅํ•œ๋‹ค

๋ฌธ์ž๋ฅผ ๋ณ€์ˆ˜์— ๋Œ€์ž…ํ•˜๋ฉด ๋ฌธ์ž ๊ทธ๋Œ€๋กœ ์ €์žฅ๋˜๋Š” ๊ฒƒ์ด ์•„๋‹Œ, ๊ทธ ๋ฌธ์ž์— ํ•ด๋‹นํ•˜๋Š” ์ •์ˆ˜ ๊ฐ’(์œ ๋‹ˆ์ฝ”๋“œ ๊ฐ’)์ด ์ €์žฅ๋œ๋‹ค.

char c1 = 'A' // char ํƒ€์ž…์€ ์ž‘์€ ๋”ฐ์˜ดํ‘œ('')๋ฅผ ์‚ฌ์šฉ
System.out.println(c1); // 'A'๊ฐ€ ์ถœ๋ ฅ

char c2 = 44032; // '๊ฐ€'์˜ ์œ ๋‹ˆ์ฝ”๋“œ๊ฐ’
System.out.println(c2); // '๊ฐ€'๊ฐ€ ์ถœ๋ ฅ

char c3 = '\u0041';  // 16์ง„์ˆ˜ ์ •์ˆ˜ ์ €์žฅ
char c4 = '65' // 10์ง„์ˆ˜ ์ •์ˆ˜ ๋ฌธ์ž๋กœ ์ €์žฅ

์‹ค์ˆ˜ ํƒ€์ž…(float, double)

์‹ค์ˆ˜๋Š” ์†Œ์ˆ˜์ ์„ ๊ฐ€์ง€๋Š” ๊ฐ’์„ ์˜๋ฏธ

์ž๋ฐ”์—์„  ์‹ค์ˆ˜ ์—ฐ์‚ฐ์€ ๊ธฐ๋ณธ์ ์œผ๋กœ double ํƒ€์ž…์œผ๋กœ ์ฒ˜๋ฆฌ

  • ์ •์ˆ˜ ๋ฆฌํ„ฐ๋Ÿด์— 10์˜ ์ง€์ˆ˜๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” e ๋˜๋Š” E๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ๋‹ค๋ฉด(๋ถ€๋™ ์†Œ์ˆ˜์  ๋ฐฉ์‹), ์‹ค์ˆ˜ ํƒ€์ž… ๋ณ€์ˆ˜์— ์ €์žฅํ•ด์•ผํ•œ๋‹ค.
float num1 = 3.14f;
double num2 = 3.141592d;
double num3 = 3.141592;
  • float type: 4btye
  • double type: 8btye

์‹ค์ˆ˜ํ˜• ๊ฐ’ ๋’ค์—๋Š” floatํ˜•์˜ ๊ฐ’์ธ์ง€, doubleํ˜•์˜ ๊ฐ’์ธ์ง€ ํ‘œํ˜„ํ•˜๊ธฐ ์œ„ํ•ด f ๋˜๋Š”d๋ฅผ ๋ถ™์—ฌ์•ผ ํ•œ๋‹ค
ํ•˜์ง€๋งŒ, doubleํ˜•์€ ์‹ค์ˆ˜ํ˜•์˜ ๋””ํดํŠธ(default) ๊ฐ’์ด๊ธฐ ๋•Œ๋ฌธ์— d๋ฅผ ๋ถ™์ด๋Š”๊ฑด num3 ์ฒ˜๋Ÿผ ์ƒ๋žต์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

๐Ÿ’ก doubleํ˜•์€ floatํ˜•๋ณด๋‹ค ์ •๋ฐ€๋„๊ฐ€ ๋†’๋‹ค
๋” ํฐ ์‹ค์ˆ˜๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ๊ณ , ๋” ์ •ํ™•ํ•˜๊ฒŒ ์ €์žฅ์ด ๊ฐ€๋Šฅํ•˜๋‹ค

๋…ผ๋ฆฌ ํƒ€์ž…(boolean)

๋…ผ๋ฆฌ ํƒ€์ž…์˜ ์ข…๋ฅ˜๋Š” booleanํ˜• ํ•œ๊ฐ€์ง€ ๋ฟ์ด๋‹ค, boolean์€ ์ฐธ ๋˜๋Š” ๊ฑฐ์ง“์„ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐ์ดํ„ฐ ํƒ€์ž…์ด๋ฉฐ, ๊ฐ’์œผ๋กœ๋Š” true ์™€ false ๊ฐ€ ์žˆ๋‹ค.

์ฐธ๊ณผ ๊ฑฐ์ง“์„ 0๊ณผ 1๋กœ ์ €์žฅํ•˜๋ฏ€๋กœ ๋‹จ ํ•˜๋‚˜์˜ ๋น„ํŠธ๋งŒ์œผ๋กœ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ, JVM์ด ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ๋Š” ๋ฐ์ดํ„ฐ์˜ ์ตœ์†Œ ๋‹จ์œ„๊ฐ€ 1byte์ด๊ธฐ ๋•Œ๋ฌธ์— 1byte์˜ ํฌ๊ธฐ๋ฅผ ์ฐจ์ง€ํ•œ๋‹ค.

boolean isSunnyDays = true; // isSunnyDays ๋ผ๋Š” ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•˜๊ณ  true์˜ ๊ฐ’์„ ๋Œ€์ž…ํ•œ๋‹ค.
if(isSunnyDays){
// ์„ ํฌ๋ฆผ์„ ๋“ค๊ณ  ๋‚˜๊ฐ„๋‹ค
}

์ด๋•Œ ์กฐ๊ฑด์€ ํ–‡๋น›์ด ์จํ•˜๊ฑฐ๋‚˜, ์จํ•˜์ง€์•Š๊ฑฐ๋‚˜ ๋‘๊ฐ€์ง€
์ด๋ ‡๊ฒŒ ์กฐ๊ฑด์„ ์ฐธ or ๊ฑฐ์ง“์œผ๋กœ ํ‘œํ˜„ ํ• ์ˆ˜ ์žˆ์„๋•Œ boolean์„ ์‚ฌ์šฉํ•œ๋‹ค.


String ์„ ์–ธ๊ณผ ๋ฉ”์„œ๋“œ

String ํด๋ž˜์Šค ์„ ์–ธ

์ž๋ฐ”๋Š” ๋ฌธ์ž์—ด์„ String ๋ณ€์ˆ˜์— ์ €์žฅํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์•„๋ž˜์™€ ๊ฐ™์ด String ๋ณ€์ˆ˜๋ฅผ ์šฐ์„ ์ ์œผ๋กœ ์„ ์–ธํ•ด์•ผํ•œ๋‹ค

๊ธฐ๋ณธ์ ์œผ๋กœ String ํƒ€์ž…์€ ํฐ๋”ฐ์˜ดํ‘œ("")๋กœ ๊ฐ์‹ธ์ง„ ๋ฌธ์ž์—ด ํƒ€์ž…์ด๋ฉฐ, char์˜ ๋ฐฐ์—ด์„ ์˜๋ฏธํ•œ๋‹ค

String str;

str = "๋ฌธ์ž์—ด"; // ๋ฌธ์ž์—ด ๋ฆฌํ„ฐ๋Ÿด์„ ๋Œ€์ž…ํ•˜๋Š” ๋ฐฉ์‹

String str = "๋ฌธ์ž์—ด"; // ์„ ์–ธ๊ณผ ๋™์‹œ์— ์ €์žฅ๋„ ๊ฐ€๋Šฅ

String str = new String("๋ฌธ์ž์—ด"); // new ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•ด ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ๋ฌธ์ž์—ด์„ ๋Œ€์ž…ํ•˜๋Š” ๋ฐฉ์‹

String type์€ ์ฐธ์กฐ ์ž๋ฃŒํ˜•์ด๋‹ค.

String name1 = "minthug";
String name2 = "minthug";
String name3 = new String("minthug");

//case1
System.out.println(name1 == name2); // true
System.out.println(name1 == name3); // false

์œ„ ์˜ˆ์‹œ์˜ ๊ฒฝ์šฐ name1 ๊ณผ name2๋Š” ๋™์ผํ•œ ๋ฌธ์ž์—ด ๋ฆฌํ„ฐ๋Ÿด๋กœ ์ƒ์„ฑ๋œ ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ•˜๊ธฐ ๋•Œ๋ฌธ์—, ๋น„๊ต ์—ฐ์‚ฐ์ž (==)๋กœ ๋น„๊ตํ–ˆ์„๋•Œ, ๊ฒฐ๊ณผ๊ฐ’์ด true๊ฐ€ ๋‚˜์˜จ๋‹ค, ํ•˜์ง€๋งŒ name3๋Š” new ํ‚ค์›Œ๋“œ๋กœ String ๊ฐ์ฒด๋ฅผ ๋ณ„๋„๋กœ ์ƒ์„ฑํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ฃผ์†Ÿ๊ฐ’์ด ๋‹ค๋ฅด๋‹ค

๊ฒฐ๊ณผ์ ์œผ๋กœ ๋น„๊ต ์—ฐ์‚ฐ์ž๋กœ ๋น„๊ต ํ•˜์˜€์„๋•Œ, name1๊ณผ name3๋Š” false์˜ ๊ฐ’์„ ๋‚˜ํƒ€๋‚ธ๋‹ค.

Stirng ๋ฉ”์„œ๋“œ ์˜ˆ์‹œ

StringTokenizer

StringTokenizer ํด๋ž˜์Šค๋Š” ๋ฌธ์ž์—ด์„ ์šฐ๋ฆฌ๊ฐ€ ์ง€์ •ํ•œ ๊ตฌ๋ถ„์ž๋กœ ๋ฌธ์ž์—ด์„ ์ชผ๊ฐœ์ฃผ๋Š” ํด๋ž˜์Šค์ด๋‹ค
๊ทธ๋ ‡๊ฒŒ ์ชผ๊ฐœ์–ด์ง„ ๋ฌธ์ž์—ด์„ ์šฐ๋ฆฌ๋Š” ํ† ํฐ(token)์ด๋ผ๊ณ  ์นญํ•œ๋‹ค.
StringTokenizer๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” java.util.StringTokenizer๋ฅผ import ํ•ด์•ผ ํ•œ๋‹ค.

์ž์ฃผ ์‚ฌ์šฉํ•˜๋Š” ๋ฉ”์„œ๋“œ

  • int countTokens()

    • ๋‚จ์•„์žˆ๋Š” token์˜ ๊ฐœ์ˆ˜๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค. ์ „์ฒด token์˜ ๊ฐฏ์ˆ˜๊ฐ€ ์•„๋‹Œ ํ˜„์žฌ ๋‚จ์•„์žˆ๋Š” token ๊ฐฏ์ˆ˜
  • boolean hasMoreElements(), boolean hasMoreTokens()
    -๋‹ค์Œ์˜ token์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค, StringTokenizer๋Š” ๋‚ด๋ถ€์ ์œผ๋กœ ์–ด๋–ค ์œ„์น˜์˜ ํ† ํฐ์„ ์‚ฌ์šฉํ–ˆ๋Š”์ง€ ๊ธฐ์–ตํ•˜๊ณ  ์žˆ์œผ๋ฉฐ, ๊ทธ ์œ„์น˜๋ฅผ ๋‹ค์Œ์œผ๋กœ ์˜ฎ๊ธด๋‹ค. -> ๋‘๊ฐ€์ง€ ๋ฉ”์„œ๋“œ๋Š” ๋ชจ๋‘ ๊ฐ™์€ ๊ฐ’์„ ๋ฐ˜ํ™˜

  • Object nextElement(), String nextToken()

    • ์ด ๋‘ ๋ฉ”์„œ๋“œ๋Š” ๋‹ค์Œ์˜ ํ† ํฐ์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค, ๋‘ ๊ฐ€์ง€ ๋ฉ”์„œ๋“œ๋Š” ๊ฐ™์€ ๊ฐ์ฒด๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š”๋ฐ ๋ฐ˜ํ™˜ํ˜•์ด ๋‹ค๋ฅด๋‹ค
      -> nextElement๋Š” Object๋ฅผ, nextToken์€ String์„ ๋ฐ˜ํ™˜ํ•˜๊ณ  ์žˆ๋‹ค.

StringBuffer

StringBuffer

String ํด๋ž˜์Šค์˜ ์ธ์Šคํ„ด์Šค๋Š” ํ•œ ๋ฒˆ ์ƒ์„ฑ๋˜๋ฉด ๊ทธ ๊ฐ’์„ ์ฝ๊ธฐ๋งŒ ํ•  ์ˆ˜ ์žˆ๊ณ , ๋ณ€๊ฒฝํ•  ์ˆ˜๋Š” ์—†๋‹ค.
ํ•˜์ง€๋งŒ StringBuffer ํด๋ž˜์Šค์˜ ์ธ์Šคํ„ด์Šค๋Š” ๊ทธ ๊ฐ’์„ ๋ณ€๊ฒฝํ•  ์ˆ˜๋„ ์žˆ๊ณ , ์ถ”๊ฐ€ํ•  ์ˆ˜๋„ ์žˆ๊ฒŒ ๋œ๋‹ค.
์ด๋ฅผ ์œ„ํ•ด StringBuffer ํด๋ž˜์Šค๋Š” ๋‚ด๋ถ€์ ์œผ๋กœ ๋ฒ„ํผ(buffer)๋ผ๊ณ  ํ•˜๋Š” ๋…๋ฆฝ์ ์ธ ๊ณต๊ฐ„์„ ๊ฐ€์ง€๋Š”๋ฐ, ๋ฒ„ํผ ํฌ๊ธฐ์˜ ๊ธฐ๋ณธ๊ฐ’์€ 16๊ฐœ์˜ ๋ฌธ์ž๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” ํฌ๊ธฐ์ด๋ฉฐ, ์ƒ์„ฑ์ž๋ฅผ ํ†ตํ•ด ๊ทธ ํฌ๊ธฐ๋ฅผ ๋ณ„๋„๋กœ ์„ค์ •ํ•  ์ˆ˜๋„ ์žˆ๋‹ค.
ํ•˜์ง€๋งŒ ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ ์‹œ ์‚ฌ์šฉ์ž๊ฐ€ ์„ค์ •ํ•œ ํฌ๊ธฐ๋ณด๋‹ค ์–ธ์ œ๋‚˜ 16๊ฐœ์˜ ๋ฌธ์ž๋ฅผ ๋” ์ €์žฅํ•  ์ˆ˜ ์žˆ๋„๋ก ์—ฌ์œ  ์žˆ๋Š” ํฌ๊ธฐ๋กœ ์ƒ์„ฑ๋œ๋‹ค.

๋ง์…ˆ(+) ์—ฐ์‚ฐ์ž๋ฅผ ์ด์šฉํ•ด String ์ธ์Šคํ„ด์Šค์˜ ๋ฌธ์ž์—ด์„ ๊ฒฐํ•ฉํ•˜๋ฉด, ๋‚ด์šฉ์ด ํ•ฉ์ณ์ง„ ์ƒˆ๋กœ์šด String ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.
๋”ฐ๋ผ์„œ ๋ฌธ์ž์—ด์„ ๋งŽ์ด ๊ฒฐํ•ฉํ•˜๋ฉด ๊ฒฐํ•ฉํ• ์ˆ˜๋ก ๊ณต๊ฐ„์ด ๋‚ญ๋น„๋  ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์†๋„ ๋˜ํ•œ ๋งค์šฐ ๋А๋ ค์ง€๊ฒŒ ๋œ๋‹ค, ํ•˜์ง€๋งŒ StringBuffer ์ธ์Šคํ„ด์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ฌธ์ž์—ด์„ ๋ฐ”๋กœ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ, ๊ณต๊ฐ„์˜ ๋‚ญ๋น„๋„ ์—†์œผ๋ฉฐ ์†๋„๋„ ๋งค์šฐ ๋นจ๋ผ์ง€๊ฒŒ๋œ๋‹ค.

๊ทธ๋ ‡๋‹ค๊ณ  ๋ฌด์กฐ๊ฑด StringBuffer๊ฐ€ ์‚ฌ์šฉํ•˜๋Š”๊ฒƒ์ด ์ข‹๋ƒ?
์ƒํ™ฉ์— ๋”ฐ๋ผ ๋‹ค๋ฅผ ๊ฒƒ์ด๋‹ค. StringBuffer ์ž๋ฃŒํ˜•์€ String ์ž๋ฃŒํ˜•๋ณด๋‹ค ๋ฌด๊ฑฐ์šด ํŽธ์— ์†ํ•˜๋‚Ÿ.
new StringBuffer();๋กœ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๊ฒƒ์€ ์ผ๋ฐ˜ String์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰๋„ ๋งŽ๊ณ  ์†๋„๋„ ๋А๋ฆฌ๋‹ค, ๋”ฐ๋ผ์„œ ๋ฌธ์ž์—ด ์ถ”๊ฐ€๋‚˜ ๋ณ€๊ฒฝ ์ž‘์—…์ด ๋งŽ์€ ๊ฒฝ์šฐ์—๋Š” StringBuffer๋ฅผ ์‚ฌ์šฉํ•˜๊ณ 
๋ฌธ์ž์—ด ๋ณ€๊ฒฝ์ด ๊ฑฐ์˜ ์—†์œผ๋ฉด ๊ทธ๋ƒฅ String์„ ์‚ฌ์šฉํ•˜๋Š”๊ฒƒ์ด ์ข‹๋‹ค

StringBuffer ts = new StringBuffer(); // ๊ฐ์ฒด ts ์ƒ์„ฑ
ts.append("Hello");
ts.append(" ");
ts.append("java to study");
String result = ts.toString(); // toString()๋ฉ”์†Œ๋“œ๋ฅผ ์ด์šฉํ•˜๋ฉด String ์ž๋ฃŒํ˜•์œผ๋กœ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋‹ค.
System.out.println(result);
-> Hello java to study

๋ฒ„ํผ๋ฅผ ์‚ฌ์šฉํ•˜์ง€์•Š์•„๋„ ์ถฉ๋ถ„ํžˆ ๊ฐ€๋Šฅํ•˜๊ธดํ•˜๋‹ค.

String result = "";
result += "Hello";
result += " ";
result += "java to study";
System.out.println(result);
-> Hello java to study 

StringBuffer์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ฉ”์„œ๋“œ

append()๋ฉ”์„œ๋“œ

append() ๋ฉ”์„œ๋“œ๋Š” ์ธ์ˆ˜๋กœ ์ „๋‹ฌ๋œ ๊ฐ’์„ ๋ฌธ์ž์—ด๋กœ ๋ณ€ํ™˜ํ•œ ํ›„, ํ•ด๋‹น ๋ฌธ์ž์—ด์˜ ๋งˆ์ง€๋ง‰์— ์ถ”๊ฐ€ํ•œ๋‹ค.
์ด ๋ฉ”์„œ๋“œ๋Š” String ํด๋ž˜์Šค์˜ concat() ๋ฉ”์„œ๋“œ์™€ ๊ฐ™์€๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜ํ•˜์ง€๋งŒ, ๋‚ด๋ถ€์ ์ธ ์ฒ˜๋ฆฌ ์†๋„๊ฐ€ ํ›จ์”ฌ ๋น ๋ฅด๋‹ค.

StringBuffer str = new StringBuffer("Java");
System.out.println("๋ฌธ์ž์—ด : " + str);
System.out.println(str.append(" Study"));
System.out.println("append() ๋ฉ”์„œ๋“œ ํ˜ธ์ถœ ํ›„ ๋ฌธ์ž์—ด : " + str);

capacity() ๋ฉ”์„œ๋“œ

capacity() ๋ฉ”์„œ๋“œ๋Š” StringBuffer ์ธ์Šคํ„ด์Šค์˜ ํ˜„์žฌ ๋ฒ„ํผ ํฌ๊ธฐ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

StringBuffer str01 = new StringBuffer();
StringBuffer str02 = new StringBuffer("Java");
System.out.println(str01.capacity()); // -> 16
System.out.println(str02.capacity()); // -> 20

์˜ˆ์ œ์ฒ˜๋Ÿผ ๊ธธ์ด๊ฐ€ 4์ธ ๋ฌธ์ž์—ด๋กœ StringBuffer ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•˜๋ฉด, ๊ธฐ๋ณธ์ ์œผ๋กœ ์ƒ์„ฑ๋˜๋Š” ์—ฌ์œ  ๋ฒ„ํผ ํฌ๊ธฐ์ธ 16์— ๋ฌธ์ž์˜ ๊ธธ์ด์ธ 4๋ฅผ ๋”ํ•œ ์ด 20๊ฐœ์˜ ๋ฌธ์ž๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” ๋ฒ„ํผ๊ฐ€ ์ƒ์„ฑ๋˜๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

delete() ๋ฉ”์„œ๋“œ

delete() ๋ฉ”์„œ๋“œ๋Š” ์ „๋‹ฌ๋œ ์ธ๋ฑ์Šค์— ํ•ด๋‹นํ•˜๋Š” ๋ถ€๋ถ„ ๋ฌธ์ž์—ด์„ ํ•ด๋‹น ๋ฌธ์ž์—ด์—์„œ ์ œ๊ฑฐํ•œ๋‹ค.
๋˜ํ•œ, deleteCharAt() ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ํŠน์ • ์œ„์น˜์— ๋ฌธ์ž ํ•œ๊ฐœ๋งŒ์„ ์ œ๊ฑฐ ํ• ์ˆ˜๋„ ์žˆ๋‹ค.

StringBuffer str = new StringBuffer("Java Oracle");
System.out.println("๋ฌธ์ž์—ด : " + str);
System.out.println(str.delete(4, 6)); // -> Javaracle
System.out.println(str.deleteCharAt(1)); // -> avaracle
System.out.println("deleteCharAt() ๋ฉ”์†Œ๋“œ ํ˜ธ์ถœ ํ›„ ๋ฌธ์ž์—ด : " + str); // -> avaracle

delete() ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ•ด๋‹น ๋ฌธ์ž์—ด์—์„œ ์ธ๋ฑ์Šค๊ฐ€ 4์ธ ์œ„์น˜๋ถ€ํ„ฐ 6์ธ ์œ„์น˜์˜ ๋ฌธ์ž๊นŒ์ง€๋ฅผ ์‚ญ์ œํ•˜๊ณ  ์žˆ๋‹ค.
์ด์ฒ˜๋Ÿผ delete() ๋ฉ”์„œ๋“œ๋Š” ์ฒซ ๋ฒˆ์งธ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ „ใ„ท๋ผ๋œ ์ธ๋ฑ์Šค๋ถ€ํ„ฐ ๋‘ ๋ฒˆ์งธ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ „๋‹ฌ๋œ ์ธ๋ฑ์Šค ๋ฐ”๋กœ ์•ž์˜ ๋ฌธ์ž๋ฅผ ์‚ญ์ œํ•˜๋Š” ๋ฉ”์„œ๋“œ์ด๋‹ค.

insert() ๋ฉ”์„œ๋“œ

insert() ๋ฉ”์„œ๋“œ๋Š” ์ธ์ˆ˜๋กœ ์ „๋‹ฌ๋œ ๊ฐ’์„ ๋ฌธ์ž์—ด๋กœ ๋ณ€ํ™˜ํ•œ ํ›„, ํ•ด๋‹น ๋ฌธ์ž์—ด์˜ ์ง€์ •๋œ ์ธ๋ฑ์Šค ์œ„์น˜์— ์ถ”๊ฐ€ํ•œ๋‹ค.
์ด๋•Œ ์ „๋‹ฌ๋œ ์ธ๋ฑ์Šค๊ฐ€ ํ•ด๋‹น ๋ฌธ์ž์—ด์˜ ๊ธธ์ด์™€ ๊ฐ™์œผ๋ฉด, append() ๋ฉ”์„œ๋“œ์™€ ๊ฐ™์€ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

StringBuffer str = new StringBuffer("Java Programming!!");
System.out.println("๋ฌธ์ž์—ด : " + str);
System.out.println(str.insert(4, "Script")); // -> "JavaScript Programming!!"
System.out.println("insert() ๋ฉ”์„œ๋“œ ํ˜ธ์ถœ ํ›„ ๋ฌธ์ž์—ด : " + str);

์ถœ์ฒ˜ ๊ด€๋ จ : https://itworldyo.tistory.com/14
https://week-year.tistory.com/141
https://wikidocs.net/276

profile
Minthug'life

0๊ฐœ์˜ ๋Œ“๊ธ€