์ƒˆ์†Œ์‹

Languages/JAVA

[Java] ์ž๋ฐ” APIํด๋ž˜์Šค

  • -
๋ฐ˜์‘ํ˜•

์˜ค๋Š˜์€ ์ž๋ฐ” APIํด๋ž˜์Šค ์ค‘ String๊ณผ StringBufferํด๋ž˜์Šค์— ์ฐจ์ด๋ฅผ ์•Œ์•„๋ณด๊ณ 

์ด์™€ ๊ด€๋ จ๋œ "equals()",  "contentEquals()" ์˜ ์ฐจ์ด๋ฅผ ์•Œ์•„๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.


1. String ?

C์–ธ์–ด์—์„œ๋Š” ๋ฌธ์ž์—ด์„ charํ˜• ๋ฐฐ์—ด๋กœ ํ‘œํ˜„ํ•˜์ง€๋งŒ, ์ž๋ฐ”์—์„œ๋Š” ๋ฌธ์ž์—ด์„ ์œ„ํ•œ String์ด๋ผ๋Š” ํด๋ž˜์Šค๊ฐ€ ๋”ฐ๋กœ ์ œ๊ณต๋˜์–ด์žˆ๋‹ค.

String ํด๋ž˜์Šค์—๋Š” ๋ฌธ์ž์—ด๊ณผ ๊ด€๋ จ๋œ ์ž‘์—…์„ ํ•  ๋•Œ ์œ ์šฉํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋‹ค์–‘ํ•œ ๋ฉ”์†Œ๋“œ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์œผ๋ฉฐ,

์ด๋Ÿฌํ•œ String ํด๋ž˜์Šค๋Š” java.lang ํŒจํ‚ค์ง€์— ํฌํ•จ๋˜์–ด ์ œ๊ณต๋œ๋‹ค.

String ์ธ์Šคํ„ด์Šค๋Š” ํ•œ ๋ฒˆ ์ƒ์„ฑ๋˜๋ฉด ๊ทธ ๊ฐ’์„ ์ฝ๊ธฐ๋งŒ ํ•  ์ˆ˜ ์žˆ๊ณ , ๋ณ€๊ฒฝํ•  ์ˆ˜๋Š” ์—†๋‹ค.

์ด๋Ÿฌํ•œ ๊ฐ์ฒด๋ฅผ ์ž๋ฐ”์—์„œ๋Š” ๋ถˆ๋ณ€ ๊ฐ์ฒด(immutable object)๋ผ๊ณ  ํ•œ๋‹ค.

์ฆ‰, ์ž๋ฐ”์—์„œ ๋ง์…ˆ(+) ์—ฐ์‚ฐ์ž๋ฅผ ์ด์šฉํ•˜์—ฌ ๋ฌธ์ž์—ด ๊ฒฐํ•ฉ์„ ์ˆ˜ํ–‰ํ•˜๋ฉด, ๊ธฐ์กด ๋ฌธ์ž์—ด์˜ ๋‚ด์šฉ์ด ๋ณ€๊ฒฝ๋˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ๋‚ด์šฉ์ด ํ•ฉ์ณ์ง„ ์ƒˆ๋กœ์šด String ์ธ์Šคํ„ด์Šค๊ฐ€ ์ƒ์„ฑ๋˜๋Š” ๊ฒƒ์ด๋‹ค. (์ถœ์ฒ˜ : tcpschool)

 

2. String  vs  StringBuffer 

StringBufferํด๋ž˜์Šค๋Š” String๊ณผ ๋‹ค๋ฅด๊ฒŒ mutable(๋ณ€๊ฒฝ๊ฐ€๋Šฅ)ํ•˜๋‹ค. ์ฆ‰ ๊ฐ€๋ณ€ํ•œ ๊ฐ์ฒด์ด๋‹ค.

๋ฌธ์ž์—ด ์—ฐ์‚ฐ์„ ํ•  ๋•Œ, ํด๋ž˜์Šค๋Š” ํ•œ ๋ฒˆ๋งŒ ๋งŒ๋“ค๊ณ (new), ๋ฉ”๋ชจ๋ฆฌ์˜ ๊ฐ’์„ ๋ณ€๊ฒฝ์‹œ์ผœ์„œ ๋ฌธ์ž์—ด์„ ๋ณ€๊ฒฝํ•œ๋‹ค.

์ค‘๊ฐ„์— ๋ฌธ์ž์—ด ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”๊ฐ€ํ•  ํ•„์š”๊ฐ€ ์—†์œผ๋ฏ€๋กœ, ๋ฌธ์ž์—ด ์—ฐ์‚ฐ์ด ๋งŽ์€ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ์‚ฌ์šฉํ•˜๋ฉด ์„ฑ๋Šฅ์ ์œผ๋กœ ์œ ๋ฆฌํ•˜๋‹ค.

StringBuffer์™€ ๋น„์Šทํ•œ ํด๋ž˜์Šค๋กœ StringBuilderํด๋ž˜์Šค๊ฐ€ ์žˆ๋Š”๋ฐ ๋‘ ํด๋ž˜์Šค๋Š” ๋ฉ”์†Œ๋“œ ํ˜ธํ™˜์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

3. StringBuffer  vs  StringBuilder

StringBuffer์™€ StringBuilder๋Š” ๊ฐ€๋ณ€ ๊ฐ์ฒด๋ผ๋Š” ์ ์—์„œ ๊ฐ™์ง€๋งŒ(์—ฐ์‚ฐ์ด ์ž์ฃผ ๋ฐœ์ƒ ์‹œ ์œ ๋ฆฌํ•จ.)

์ฐจ์ด์ ์€ StringBuffer๋Š” ๋ฉ€ํ‹ฐ์“ฐ๋ ˆ๋“œํ™˜๊ฒฝ์—์„œ 'synchronized'ํ‚ค์›Œ๋“œ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋ฏ€๋กœ ๋™๊ธฐํ™”๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค.

์ฆ‰, thread-safeํ•œ๋‹ค. ๋ฐ˜๋Œ€๋กœ StringBuilder๋Š” thread-safeํ•˜์ง€ ์•Š๋Š”๋‹ค.

๋”๋ณด๊ธฐ

Thead Safe

์Šค๋ ˆ๋“œ ์•ˆ์ „(thread ๅฎ‰ๅ…จ, ์˜์–ด: thread safety)์€ ๋ฉ€ํ‹ฐ ์Šค๋ ˆ๋“œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ์ผ๋ฐ˜์ ์œผ๋กœ ์–ด๋–ค ํ•จ์ˆ˜๋‚˜ ๋ณ€์ˆ˜, ํ˜น์€ ๊ฐ์ฒด๊ฐ€ ์—ฌ๋Ÿฌ ์Šค๋ ˆ๋“œ๋กœ๋ถ€ํ„ฐ ๋™์‹œ์— ์ ‘๊ทผ์ด ์ด๋ฃจ์–ด์ ธ๋„ ํ”„๋กœ๊ทธ๋žจ์˜ ์‹คํ–‰์— ๋ฌธ์ œ๊ฐ€ ์—†์Œ์„ ๋œปํ•œ๋‹ค. ๋ณด๋‹ค ์—„๋ฐ€ํ•˜๊ฒŒ๋Š” ํ•˜๋‚˜์˜ ํ•จ์ˆ˜๊ฐ€ ํ•œ ์Šค๋ ˆ๋“œ๋กœ๋ถ€ํ„ฐ ํ˜ธ์ถœ๋˜์–ด ์‹คํ–‰ ์ค‘์ผ ๋•Œ, ๋‹ค๋ฅธ ์Šค๋ ˆ๋“œ๊ฐ€ ๊ทธ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ ๋™์‹œ์— ํ•จ๊ป˜ ์‹คํ–‰๋˜๋”๋ผ๋„ ๊ฐ ์Šค๋ ˆ๋“œ์—์„œ์˜ ํ•จ์ˆ˜์˜ ์ˆ˜ํ–‰ ๊ฒฐ๊ณผ๊ฐ€ ์˜ฌ๋ฐ”๋กœ ๋‚˜์˜ค๋Š” ๊ฒƒ์œผ๋กœ ์ •์˜ํ•œ๋‹ค.

StringBuilder๋Š” ๋™๊ธฐํ™”๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ๋ฉ€ํ‹ฐ ์“ฐ๋ ˆ๋“œ ํ™˜๊ฒฝ์—์„œ๋Š” ์ ํ•ฉํ•˜์ง€ ์•Š์ง€๋งŒ, ์‹ฑ๊ธ€ ์“ฐ๋ ˆ๋“œ ํ™˜๊ฒฝ์—์„œ StringBuffer์— ๋น„ํ•ด ์—ฐ์‚ฐ์ฒ˜๋ฆฌ๊ฐ€ ๋น ๋ฅด๋‹ค๋Š” ์žฅ์ ์ด ์žˆ๋‹ค.

 

 

์˜ˆ์ œ ์ฝ”๋“œ) String

String ํด๋ž˜์Šค ์‚ฌ์šฉํ•ด๋ณด๊ธฐ

 

๊ฒฐ๊ณผ

์˜ˆ์ œ ์ฝ”๋“œ) String Buffer

StringBuffer ์˜ˆ์ œ

 

๊ฒฐ๊ณผ

4. equals vs contentEquals

equals์™€ contentEquals์˜ ์ฐจ์ด๋Š”

equals๋Š” String ๋ผ๋ฆฌ์˜ ๋ฌธ์ž์—ด์ด ๋™์ผํ•œ ์ง€ ํ™•์ธํ•  ๋•Œ ์‚ฌ์šฉํ•˜๊ณ (๋‹ค๋ฅธ๊ฐ์ฒด์™€๋Š” ๋น„๊ตx),

contentEquals ๋Š” String๊ณผ ๋‹ค๋ฅธ ๊ฐ์ฒด์™€์˜ ๋ฌธ์ž์—ด์ด ๋™์ผํ•œ ์ง€๋ฅผ ํ™•์ธํ•  ๋•Œ๋„ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.

 

: a.equals

a๋ณ€์ˆ˜์˜ ๋ฌธ์ž์—ด๊ณผ ๋งค๊ฐœ๋ณ€์ˆ˜์˜ ๋ฌธ์ž์—ด ๊ฐ’์ด ๊ฐ™๋‹ค๋ฉด true๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ๋ฉ”์†Œ๋“œ

๋งค๊ฐœ๋ณ€์ˆ˜์˜ ๊ฐ์ฒด๊ฐ€ String์˜ ์ธ์Šคํ„ด์Šค์ธ์ง€๋„ ํ™•์ธํ•œ๋‹ค.
String ๊ฐ์ฒด์™€ StringBuffer ๊ฐ์ฒด์˜ ๋ฌธ์ž์—ด์„ ๋น„๊ตํ•  ์ˆ˜ ์—†๋‹ค.

 

: a.contentEquals

a ๋ณ€์ˆ˜์˜ ๋ฌธ์ž์—ด๊ณผ ๋งค๊ฐœ๋ณ€์ˆ˜์˜ ๋ฌธ์ž์—ด์˜ ๊ฐ’์ด ์ •ํ™•ํžˆ ์ผ์น˜ํ•˜๋ฉด true๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ๋ฉ”์†Œ๋“œ

๋งค๊ฐœ๋ณ€์ˆ˜์˜ ๊ฐ์ฒด๊ฐ€ String์˜ ์ธ์Šคํ„ด์Šค์ธ์ง€๋Š” ํ™•์ธํ•˜์ง€ ์•Š๊ณ  ๋‚ด์šฉ๋งŒ ๋น„๊ตํ•œ๋‹ค.

String ๊ฐ์ฒด๋ฅผ StringBuffer, StringBuilder..๋“ฑ์˜ ๊ฐ์ฒด๋“ค๊ณผ ๋น„๊ต ๊ฐ€๋Šฅ

 

equals๋ฅผ ์•„๋ž˜์™€ ๊ฐ™์ด ์‚ฌ์šฉํ•ด ์ค„ ์ˆ˜๋„ ์žˆ๋‹ค. ์•„๋ž˜์˜ ์‚ฌ์šฉํ•œ ์ฝ”๋“œ๋Š” ๋‹ค์Œ ๊ธ€์— "์ปฌ๋ ‰์…˜"์—์„œ ์„ค๋ช…ํ•˜๊ฒ ๋‹ค.

๋ฐ˜์‘ํ˜•

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

[Java] ์ƒ์†  (0) 2020.04.29
[Java] Collection-list์˜ˆ์ œ  (0) 2020.04.25
[Java] ์ปฌ๋ ‰์…˜(Collection)  (0) 2020.04.21
[JavaFx] ๋ธ”๋ก ์ƒ์„ฑํ•˜๊ธฐ  (0) 2020.04.20
Contents

ํฌ์ŠคํŒ… ์ฃผ์†Œ๋ฅผ ๋ณต์‚ฌํ–ˆ์Šต๋‹ˆ๋‹ค

์ด ๊ธ€์ด ๋„์›€์ด ๋˜์—ˆ๋‹ค๋ฉด ๊ณต๊ฐ ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค.