moon
sun

Java :: String

ํƒœ๊ทธ
Java
3 more properties

String

String์€ Java์˜ ๐Ÿ”—๊ธฐ๋ณธ ์ž๋ฃŒํ˜•์ฒ˜๋Ÿผ ์‚ฌ์šฉ๋˜๋Š” ์ฐธ์กฐํ˜• class ์ด๋‹ค.
String์€ ์ฐธ์กฐ ํƒ€์ž…์ด์ง€๋งŒ, ๋ฆฌํ„ฐ๋Ÿด ํ‘œ๊ธฐ ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.
String str = "Hello";
Java
๋ณต์‚ฌ

๋ถˆ๋ณ€์„ฑ

String์€ ํ•œ ๋ฒˆ ์ƒ์„ฑ๋˜๋ฉด ๊ฐ’์„ ์ฝ๊ธฐ๋งŒ ํ•  ์ˆ˜ ์žˆ๊ณ , ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†๋‹ค.
new ํ‚ค์›Œ๋“œ๋กœ ์ƒ์„ฑํ•  ๊ฒฝ์šฐ Heap์— ๊ฐœ๋ณ„์ ์ธ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ฐ–๊ฒŒ ๋˜๊ณ ,
๋ฆฌํ„ฐ๋Ÿด๋กœ ์ƒ์„ฑํ•  ๊ฒฝ์šฐ Heap์˜ String Pool์— ์ƒ์„ฑํ•˜๊ฒŒ ๋œ๋‹ค.
๋™์ผํ•œ ๊ฐ’์ด ์กด์žฌํ•œ๋‹ค๋ฉด String Pool์— ์žˆ๋Š” ์ฃผ์†Œ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•˜๊ณ ,
๋™์ผํ•œ ๊ฐ’์ด ์กด์žฌํ•˜์ง€ ์•Š๋‹ค๋ฉด, ์ƒˆ๋กœ์šด ์ฃผ์†Œ๋ฅผ ํ• ๋‹นํ•˜๊ณ  ํ•ด๋‹น ์ฃผ์†Œ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
๋งŒ์•ฝ A๋ผ๋Š” String ๋ฆฌํ„ฐ๋Ÿด์„ ์ €์žฅํ•˜๊ณ  ์žˆ๋Š” ๋ณ€์ˆ˜์— ๋‹ค๋ฅธ String ๋ฆฌํ„ฐ๋Ÿด B๋ฅผ ๋Œ€์ž…ํ•œ๋‹ค๋ฉด? Java๋Š” B๋ผ๋Š” ๋ฆฌํ„ฐ๋Ÿด์ด String Pool์— ์กด์žฌํ•˜์ง€ ์•Š๋Š”๋‹ค๋ฉด String Pool์— ์ƒ์„ฑ ํ›„ ์ฐธ์กฐ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•˜๊ณ , ๋งŒ์•ฝ B๋ผ๋Š” ๋ฆฌํ„ฐ๋Ÿด์ด ์กด์žฌํ•  ๊ฒฝ์šฐ B์˜ ์ฐธ์กฐ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•˜์—ฌ ์ค‘๋ณต ์ƒ์„ฑ๋˜์ง€ ์•Š๋„๋ก ํ•œ๋‹ค. ๋˜ ๋ง์…ˆ(+) ์—ฐ์‚ฐ์ž๋ฅผ ์ด์šฉํ•˜์—ฌ ๋ฌธ์ž์—ด ๊ฒฐํ•ฉ์„ ์ˆ˜ํ–‰ํ•˜๋ฉด, ๊ธฐ์กด ๋ฌธ์ž์—ด์˜ ๋‚ด์šฉ์ด ๋ณ€๊ฒฝ๋˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ๋‚ด์šฉ์ด ํ•ฉ์ณ์ง„ ์ƒˆ๋กœ์šด String ์ธ์Šคํ„ด์Šค๊ฐ€ ์ƒ์„ฑ๋œ๋‹ค. ๊ฒฐ๋ก ์ ์œผ๋กœ Value๊ฐ€ ๊ฐ™์ง€ ์•Š์€ String ์„œ๋กœ ๋‹ค๋ฅธ ๊ฐ์ฒด๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๊ณ , ์ด ๊ฐ์ฒด๋Š” ๋ณ€ํ•˜์ง€ ์•Š๋Š” ๊ฐ์ฒด์ด๋‹ค.
String์˜ ๋ถˆ๋ณ€์„ฑ ๋•๋ถ„์— Thread-Safe๋ฅผ ๊ฐ€์ ธ๊ฐˆ ์ˆ˜ ์žˆ๋‹ค.
โ†’ ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋“œ ํ™˜๊ฒฝ์—์„œ ์žฅ์ ์„ ๊ฐ–๋Š”๋‹ค.

String์ด ๊ตฌํ˜„ํ•˜๋Š” ์ธํ„ฐํŽ˜์ด์Šค

1.
java.io.Serializable:
โ€ข
๊ฐ์ฒด์˜ ์ง๋ ฌํ™”(serialization) ๋ฐ ์—ญ์ง๋ ฌํ™”(deserialization)๋ฅผ ์ง€์›ํ•˜๋Š” ์ธํ„ฐํŽ˜์ด์Šค์ž…๋‹ˆ๋‹ค.
โ€ข
String ํด๋ž˜์Šค๋Š” ์ด ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•˜์—ฌ ๊ฐ์ฒด๋ฅผ ๋ฐ”์ดํŠธ ์ŠคํŠธ๋ฆผ์œผ๋กœ ๋ณ€ํ™˜ํ•˜๊ณ  ๋‹ค์‹œ ๋ณต์›ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
2.
java.lang.CharSequence:
โ€ข
๋ฌธ์ž ์‹œํ€€์Šค๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์ธํ„ฐํŽ˜์ด์Šค๋กœ, String ํด๋ž˜์Šค๋Š” CharSequence ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค.
โ€ข
๋ฌธ์ž์—ด์„ ๋‹ค๋ฃจ๋Š” ๋‹ค์–‘ํ•œ ์ž‘์—…์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.
3.
java.lang.Comparable<String>:
โ€ข
๊ฐ์ฒด์˜ ์ˆœ์„œ๋ฅผ ์ •์˜ํ•˜๊ธฐ ์œ„ํ•œ ์ธํ„ฐํŽ˜์ด์Šค๋กœ, String ํด๋ž˜์Šค๋Š” Comparable<String>์„ ๊ตฌํ˜„ํ•˜์—ฌ ๋ฌธ์ž์—ด์„ ๋น„๊ตํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.
4.
java.lang.constant.Constable:
โ€ข
Java 12์—์„œ ๋„์ž…๋œ ์ƒ์ˆ˜ ํ‘œํ˜„์„ ์œ„ํ•œ ์ธํ„ฐํŽ˜์ด์Šค์ž…๋‹ˆ๋‹ค.
โ€ข
String ํด๋ž˜์Šค๋Š” Constable ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•˜์—ฌ ์ƒ์ˆ˜ ํ‘œํ˜„์— ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
5.
java.lang.constant.ConstantDesc:
โ€ข
Java 12์—์„œ ๋„์ž…๋œ ์ƒ์ˆ˜ ์„ค๋ช…์„ ์œ„ํ•œ ์ธํ„ฐํŽ˜์ด์Šค์ž…๋‹ˆ๋‹ค.
โ€ข
String ํด๋ž˜์Šค๋Š” ConstantDesc ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•˜์—ฌ ์ƒ์ˆ˜์— ๋Œ€ํ•œ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์ด๋Ÿฌํ•œ ๋‹ค์„ฏ ๊ฐ€์ง€ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•จ์œผ๋กœ์จ String ํด๋ž˜์Šค๋Š” ์ง๋ ฌํ™”, ๋ฌธ์ž ์‹œํ€€์Šค ์ฒ˜๋ฆฌ, ๋น„๊ต, ์ƒ์ˆ˜ ํ‘œํ˜„, ์ƒ์ˆ˜ ์„ค๋ช… ๋“ฑ ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
[Java] String์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€.
๋‚˜๋‹ค. ์ด ๊ธ€์ด ๋ญํ•˜๋Š” ๊ธ€์ด๋ƒ๋ฉด ๋ฌธ์ž๋Š” ์šฐ๋ฆฌ๊ฐ€ ํ•„์ˆ˜์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ์š”์†Œ๋‹ค. ์ง€๊ธˆ ๋‹น์‹ ์ด ๋ณด๊ณ ์žˆ๋Š” ์ด ๊ธ€ ๋˜ํ•œ ๋ฌธ์ž๋กœ ๊ตฌ์„ฑ๋œ ํ•˜๋‚˜์˜ ์ •๋ณด์ง‘ํ•ฉ์ฒด๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ž๋ฐ”๋ฅผ ๋ฐฐ์šฐ๋ฉฐ ์šฐ๋ฆฌ๋Š” ์ˆซ์ž๋งŒ ์ถœ๋ ฅํ•˜์ง€ ์•Š๊ณ  ์–ด๋–ค ๋ฌธ์žฅ ๋˜๋Š” ๋ฌธ์ž๋ฅผ ํ‘œํ˜„ํ•  ๋•Œ๊ฐ€ ์žˆ๋‹ค. ๊ทธ๋Ÿฐ ๊ฒฝ์šฐ ์šฐ๋ฆฌ๋Š” ์ฃผ๋กœ String์„ ์‚ฌ์šฉํ•˜๋Š”๋ฐ ๋‹น์‹ ์€ String์ด ์–ด๋–ค ๋ฐฉ์‹์œผ๋กœ ์šฐ๋ฆฌ๊ฐ€ ์ž…๋ ฅํ•œ ๋ฌธ์ž ๋˜๋Š” ๋ฌธ์ž์—ด์„ ์ €์žฅํ•˜๊ณ  ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๋Š”์ง€ ์•Œ๊ณ ์žˆ๋Š”๊ฐ€. ์ด๋ฒˆ ๊ธ€์—์„œ๋Š” String์˜ ๊ฐœ๋…๊ณผ ์ž‘๋™์›๋ฆฌ์— ๋Œ€ํ•ด ์„ค๋ช…ํ•œ๋‹ค. String๊ณผ char์˜ ์ฐจ์ด ๋จผ์ € String์€ ๋ฌธ์ž์—ด์ด๋‹ค. ๋ฌธ์ž ์—ฌ๋Ÿฌ ๊ฐœ ๋ถ™ํ˜€๋†“์€๊ฑฐ ๋งž์Œ ๊ทธ๊ฑฐ ใ…‡ใ…‡ ๋‹น์‹ ์€ char๋ผ๋Š” ์›์‹œํƒ€์ž…์˜ ๋ฌธ์ž ๋ณ€์ˆ˜๋ฅผ ์•Œ๊ณ ์žˆ๋Š”๊ฐ€. ํ†ต์ƒ char๋ผ ํ•จ์€ ํ•˜๋‚˜์˜ ๋ฌธ์ž๋ฅผ ์ €์žฅํ•˜๊ณ  ์‚ฌ์šฉํ•˜๊ธฐ์œ„ํ•ด ์‚ฌ์šฉ๋œ๋‹ค. public c..
[Java] String์˜ ๋ถˆ๋ณ€์„ฑ( Immutable )
Java์—์„œ String์€ ๋ถˆ๋ณ€(Immutable) ๊ฐ์ฒด๋ผ๊ณ  ๋ถˆ๋ฆฝ๋‹ˆ๋‹ค. ๋ถˆ๋ณ€ ๊ฐ์ฒด๋ž€ ๊ฐ์ฒด๊ฐ€ ์ƒ์„ฑ๋œ ํ›„ ์ƒํƒœ๊ฐ€ ๋ณ€ํ•˜์ง€ ์•Š๊ณ  ๊ณ„์† ์œ ์ง€๋˜๋Š” ๊ฐ์ฒด๋ฅผ ๋งํ•ฉ๋‹ˆ๋‹ค. String ์ธ์Šคํ„ด์Šค๋Š” ํ•œ ๋ฒˆ ์ƒ์„ฑ๋˜๋ฉด ๊ทธ ๊ฐ’์„ ์ฝ๊ธฐ๋งŒ ํ•  ์ˆ˜ ์žˆ๊ณ , ๋ณ€๊ฒฝํ•  ์ˆ˜๋Š” ์—†์Šต๋‹ˆ๋‹ค. ์ด์ œ Java์—์„œ String ์™œ ๋ถˆ๋ณ€ ๊ฐ์ฒด์ธ์ง€ ๊ทธ๋ฆฌ๊ณ  ๊ทธ๋กœ ์ธํ•œ ์žฅ์ ๊ณผ ํŠน์ง•์ด ๋ฌด์—‡์ด ์žˆ๋Š”์ง€ ์•Œ์•„๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. 1. String Pool ๋ชจ๋“  ์–ธ์–ด์—์„œ String์€ ํ™œ๋ฐœํ•˜๊ฒŒ ์‚ฌ์šฉ๋˜๋Š” ์ž๋ฃŒํ˜•์ž…๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ž๋ฃŒํ˜•์„ ์ƒ์„ฑํ•˜๊ณ  ์‚ญ์ œํ•˜๋Š” ๊ฒƒ์€ ๋งŽ์€ ์ž์›์„ ์†Œ๋น„ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. Java์—์„œ๋Š” ์ด๋Ÿฌํ•œ ํ˜„์ƒ์„ ํ•ด๊ฒฐํ•˜๊ณ ์ž Heap์˜ String Pool์„ ํ™œ์šฉํ•˜์—ฌ ํ•ด๊ฒฐํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. String์€ ์ฐธ์กฐ ํƒ€์ž…์˜ ์ž๋ฃŒํ˜•์ด์ง€๋งŒ ํŠน์ดํ•˜๊ฒŒ๋„ new ํ‚ค์›Œ๋“œ์™€ ๋ฆฌํ„ฐ๋Ÿด๋กœ ๋ชจ๋‘ ์ƒ์„ฑ์ด ..