๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๊ฐœ์ธ ๊ณต๋ถ€/Java, Python

[Java] String ํด๋ž˜์Šค

by syLim___ 2024. 7. 2.
728x90

 

โœ… String ํด๋ž˜์Šค ๊ฐ„๋žตํ•œ ๊ตฌ์กฐ

public final class String {

    private final byte[] value;
    
    public String concat(String str) {...}
    public int length() {...}
    ...
    
}

 

- byte ๋ฐฐ์—ด์— ๋ฌธ์ž ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๊ด€ํ•œ๋‹ค.(java 9๋ถ€ํ„ฐ. ์ด์ „์—๋Š” char๋ฐฐ์—ด์— ๋ณด๊ด€ํ–ˆ์—ˆ๋‹ค)

- ๊ฐœ๋ฐœ์ž๊ฐ€ ์ง์ ‘ ๋‹ค๋ฃจ๊ธฐ ๋ถˆํŽธํ•œ ๋ฌธ์ž๋Š” ํด๋ž˜์Šค ๋‚ด๋ถ€(byte ๋ฐฐ์—ด)์— ๊ฐ์ถ”๊ณ 

    ๊ฐœ๋ฐœ์ž๊ฐ€ ๋ฌธ์ž์—ด์„ ๋‹ค๋ฃจ๊ธฐ ํŽธ๋ฆฌํ•˜๋„๋ก ์—ฌ๋Ÿฌ ํŽธ๋ฆฌํ•œ ๋ฉ”์„œ๋“œ๋ฅผ ์ œ๊ณตํ•œ๋‹ค.

 

๐Ÿฅ String ํด๋ž˜์Šค์—์„œ + ์—ฐ์‚ฐ

- String ํด๋ž˜์Šค๋Š” ์ฐธ์กฐํ˜• ์ž๋ฃŒํ˜•์ด๋‹ค. ์ฆ‰, ๋ณ€์ˆ˜์— ์ฐธ์กฐ๊ฐ’์ด ๋“ค์–ด ์žˆ๋‹ค.

- ๋”ฐ๋ผ์„œ ์›์น™์ ์œผ๋กœ๋Š” + ์—ฐ์‚ฐ์„ ํ•  ์ˆ˜ ์—†๋‹ค. (์ฐธ์กฐ๊ฐ’๋ผ๋ฆฌ ๋”ํ•  ์ˆ˜ ์—†์œผ๋‹ˆ๊นŒ!)

- ๋ฌธ์ž์—ด๋ผ๋ฆฌ ํ•ฉ์น˜๋ ค๋ฉด ์›์น™์ ์œผ๋กœ๋Š” String ํด๋ž˜์Šค๊ฐ€ ์ œ๊ณตํ•˜๋Š” concat() ๊ณผ ๊ฐ™์€ ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค.

- ์ž๋ฐ”์—์„œ ๋ฌธ์ž์—ด์€ ํŠน๋ณ„ํžˆ + ์—ฐ์‚ฐ์„ ์ œ๊ณตํ•œ๋‹ค. (ํŽธ์˜์„ฑ์„ ์œ„ํ•ด์„œ)

 

๐Ÿฅ String ํด๋ž˜์Šค์˜ ๋น„๊ต

- String ๋ผ๋ฆฌ ๋น„๊ตํ•  ๋•Œ์—๋Š” ํ•ญ์ƒ == ๋น„๊ต๊ฐ€ ์•„๋‹ˆ๋ผ equals() ๋น„๊ต๋ฅผ ํ•ด์•ผ ํ•œ๋‹ค.

- String ํด๋ž˜์Šค๋Š” ์ฐธ์กฐํ˜•์ด๊ธฐ ๋•Œ๋ฌธ!

- String ํด๋ž˜์Šค์—๋Š” ๋‚ด๋ถ€ ๋ฌธ์ž์—ด ๊ฐ’์„ ๋น„๊ตํ•˜๋„๋ก equals() ๋ฉ”์„œ๋“œ๊ฐ€ ์˜ค๋ฒ„๋ผ์ด๋”ฉ ๋˜์–ด ์žˆ๋‹ค.

 

 

โœ… ๋ฌธ์ž์—ด ๋ฆฌํ„ฐ๋Ÿด

- ๋ฌธ์ž์—ด ๋ฆฌํ„ฐ๋Ÿด์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ, ์ž๋ฐ”๋Š” ์‹คํ–‰ ์‹œ์ ์— ํž™์˜์—ญ์˜ ๋ฌธ์ž์—ด ํ’€(Pool)์— String ์ธ์Šคํ„ด์Šค๋ฅผ ๋ฏธ๋ฆฌ ๋งŒ๋“ค์–ด๋‘”๋‹ค.

- (new๋กœ ์„ ์–ธํ•˜๋Š” ๊ฒŒ ์•„๋‹Œ `String str = "Hello, World!";` ์ฒ˜๋Ÿผ ์„ ์–ธํ•˜๋Š” ๊ฒฝ์šฐ๋ฅผ ๋œปํ•จ)

- ๋ฆฌํ„ฐ๋Ÿด๋กœ ์„ ์–ธํ•œ ๋ฌธ์ž์—ด์ด ๋ฌธ์ž์—ด ํ’€์— ์ด๋ฏธ ์กด์žฌํ•˜๋ฉด, ์ƒˆ๋กœ์šด ์ธ์Šคํ„ด์Šค๋ฅผ ๋งŒ๋“ค์ง€ ์•Š๊ณ  ์ด๋ฏธ ์žˆ๋Š” ๋ฌธ์ž์—ด์„ ์ฐธ์กฐํ•œ๋‹ค.

- ๋ฌธ์ž์—ด ๋ฆฌํ„ฐ๋Ÿด์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ์—๋Š” ๋‹น์—ฐํžˆ == ๋น„๊ต์— ์„ฑ๊ณตํ•œ๋‹ค.

- ๋ฌธ์ž์—ด ํ’€์—์„œ ๋ฌธ์ž๋ฅผ ์ฐพ์„ ๋•Œ์—๋Š” ํ•ด์‹œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•œ๋‹ค.

 

 

โœ… String์€ ๋ถˆ๋ณ€ ๊ฐ์ฒด์ด๋‹ค.

- ๋”ฐ๋ผ์„œ ๋ณ€๊ฒฝ์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ ๊ธฐ์กด ๊ฐ’์„ ๋ณ€๊ฒฝํ•˜๋Š” ๋Œ€์‹ ์— ์ƒˆ๋กœ์šด ๊ฒฐ๊ณผ๋ฅผ ๋งŒ๋“ค์–ด์„œ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

- ๊ฐ€๋ณ€ String ๊ฐ์ฒด๋กœ๋Š” StringBuilder๊ฐ€ ์žˆ๋‹ค.

- StringBuilder ํด๋ž˜์Šค๋Š” ๋‚ด๋ถ€์— final์ด ์•„๋‹Œ, ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋Š” byte๋ฐฐ์—ด์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.

- StringBuilder๋Š” ๋ฉ”์„œ๋“œ ์ฒด์ด๋‹์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

 

 

โœ… Reference

- https://www.inflearn.com/course/%EA%B9%80%EC%98%81%ED%95%9C%EC%9D%98-%EC%8B%A4%EC%A0%84-%EC%9E%90%EB%B0%94-%EC%A4%91%EA%B8%89-1/dashboard

 

728x90