๊ตญ๋น์ง์ D+57
- ์๋ฐํ๋ก๊ทธ๋๋ฐ3 -
์ค๋ฒ๋ก๋ฉ(Overloading)
- ๊ฐ์ฒด์งํฅ์ ํน์ฑ์ค ๋คํ์ฑ์ ์ง์ํ๊ธฐ ์ํ ๋ฐฉ๋ฒ์ค ํ๋๋ก ๊ฐ์ ์ด๋ฆ์ ๋ฉ์๋๋ก ์๋ก ๋ค๋ฅธ ๊ธฐ๋ฅ์ ํธ์ถํ๋ ๋ฉ์ปค๋์ฆ ์ด๋ค.
- ์ค๋ฒ๋ก๋ฉ์ ํตํด ์ปดํ์ผ๋ฌ๊ฐ ํจ์์ ์ด๋ฆ๋ง ๊ฐ์ง๊ณ ํ๋จํ๋ ๊ฒ์ด ์๋๋ผ ํ๋ผ๋ฏธํฐ๋ ํ์ธํ๋ค๋ ๊ฒ์ ์ ์ ์๋ค.
ํน์ง
- ๋ฉ์๋์ "ํ๋ผ๋ฏธํฐ"๋ก ๊ตฌ๋ณํ์ฌ ํธ์ถํ๋ค.
- ๋ฆฌํดํ๋ง ๋ค๋ฅธ ๊ฒฝ์ฐ ์ค๋ฒ๋ก๋ฉ์ ์ฌ์ฉํ ์ ์๋ค.
- ๊ณผ๋ํ ์ค๋ฒ๋ก๋ฉ์ ์คํ๋ ค ๊ฐ๋
์ฑ์ ์ ํด์ํฌ ์ ์๋ค.
- ์ ๋งคํ ์ค๋ฒ๋ก๋ฉ์ ํ์ง ์์์ผ ํ๋ค. (ex. ์ค๋ฒ๋ก๋ฉ์์ฑ์์ค ํ๋ผ๋ฏธํฐ์ ๊ฐ์๊ฐ ๊ฐ๊ณ ๊ฐ์ ํ์
์ธ ์์ฑ์๊ฐ ์กด์ฌํ๋ ๊ฒฝ์ฐ)
String
๋ฌธ์์ด์ ์ฒ๋ฆฌํ๊ธฐ ์ํ ํด๋์ค๋ก ์ข
๋ฃ๋ฌธ์(null๋ฌธ์, ์ผ๋ฐ์ ์ผ๋ก 0x00)๋ฅผ ํฌํจํ๋ ๋ฌธ์์ ์งํฉ์ ์๋ฏธํ๋ค.
๋ฌธ์์ด์ ์ ์ด์ ํ๋ฆฌ๋ฏธํฐ๋ธํ์
์ด ์๋๊ธฐ ๋๋ฌธ์ ํ์ ๋ค์ดํ๊ธฐ ๋๋ฌธ์ new๋ฅผ ํตํด์ ๋ค์ด๊ฐ๊ฒ ๋๋๊ฒ ์ฌ์ค์ ์ ํํ ๋ฐฉ๋ฒ์ด๋ค.
String ์์ฑ๊ณผ suar์ฝ๋์ ํน์ง
๋ด๊ฐ ๋ง์ฝ str1๊ณผ str2์ ๊ฐ String ๊ฐ์ฒด๋ฅผ ๋ง๋ค์ด์ "abc" ๋ฌธ์์ด์ ๋ง๋ค์๋ค๊ณ ํ์.
์๋๋ ๋ ๋ณ์์ ์ฐธ์กฐ๊ฐ์ ๋น๊ตํ์์ ๋ ๋ฌธ์์ด์ด ๊ฐ์๋ ์ฐธ์กฐ๊ฐ์ด ๋ค๋ฅด๊ธฐ๋๋ฌธ์ ๋ค๋ฅด๋ค๋ ๊ฒฐ๊ณผ๋ฅผ ๋ด๋ณด๋ด๋๊ฒ ์์น์ ์ผ๋ก๋ ๋ง์ง๋ง ๋ง์ฝ ์๊ฐ์ฝ๋๋ก ๋ฌธ์์ด์ ๋ง๋ค์์ ๊ฒฝ์ฐ์ ๊ฐ๋ค๋ ๊ฒฐ๊ณผ๋ฅผ ๋ด๋ณด๋ด๊ฒ ๋๋ค.
์ด์ ๋ new๋ผ๋ ํค์๋๋ฅผ ์ฌ์ฉํ์ง ์๊ณ ๋ฌธ์์ด์ ๋ฃ์์๊ฒฝ์ฐ, ์ถํ์ ์ค๋ str2์ ๋ฌธ์์ด์ด ๊ธฐ์กด์ ๋ง๋ ๋ฌธ์์ด๊ณผ ๊ฐ์ ๊ฒฝ์ฐ์๋ str1๊ณผ str2๊ฐ ๋ฐ๋ผ๋ณด๋ ์ฐธ์กฐ๊ฐ์ ๊ฐ๋ค๊ณ ์ณ๋ฒ๋ฆฐ๋ค.
๊ทธ๋ ๊ธฐ ๋๋ฌธ์ true๋ผ๋ ๊ฐ์ ๋ด๋ณด๋ด๊ฒ ๋๋๊ฒ์ด๋ฉฐ ์ถํ์ ๋ณ์๊ฐ์ด ๋ณ๊ฒฝ๋ ๋ ๋ฌธ์ ๊ฐ ๋ฐ์๋ ์ ์๊ธฐ ๋๋ฌธ์ ๋ณ๊ฒฝ๋ ์ฌ์ง๊ฐ ์๋ค๋ฉด ์ ๋๋ก newํค์๋๋ฅผ ์ฌ์ฉํด์ ๋ฌธ์์ด์ ๋ง๋ค์ด ์ฃผ๋ ๊ฒ์ด ์ข๋ค.
๊ธฐ๋ฅ
โข String Builder
๊ธฐ์กด์ ์ฐ๋ฆฌ๊ฐ ์ฌ์ฉํ๊ณ ์๋ String์ ํ๋ฒ ๋ง๋ค๋ฉด ๊ธฐ์กด๋ฌธ์๋ฅผ ๋ฏ์ด๊ณ ์น์ง ๋ชปํ๋ ๋ณดํธ์ ์ธ ์ฑํฅ์ ๊ฐ์ง๊ณ ์๋ค..
์ฆ, ์๋ณธ๋ฌธ์์ด์ ๊ฑด๋๋ฆฌ์ง ๋ชปํ๋ค๋ ๊ฒ์ด๋ค.
์ด๋ฌํ String์ ๋จ์ ์ ๋ณด์ํ๊ธฐ ์ํด ๋ฑ์ฅํ ๊ฒ์ด ๋ฐ๋ก String Builder์ด๋ค.
StringBuilder๋ ๋ฌธ์์ด ๋ฒํผ๋ฅผ ์ง์ ์ ์ด๊ฐ ๊ฐ๋ฅํ ํด๋์ค๋ก String ํด๋์ค์ ๋ฌ๋ฆฌ ๋ฌธ์๋ฅผ ์ถ๊ฐ ๋ฐ ์ญ์ ๊ฐ ๊ฐ๋ฅํ๋ค.
Thread-Safty์ด๋ค.
Process
CPU์ ์ํด ์คํ๋์ด์ง๋ ํ๋ก๊ทธ๋จ์ ์๋ฏธํ๋ฉฐ ์ด๋์ ํ๋ก์ธ์ค๋ ์ค๋ ๋๋ฅผ ๊ฐ์ง๋ค.
Thread
์ค๋ ๋๋ ํ๋ก์ธ์ค๋ด์์ ์ค์ ๋ก ์์
์ ์ํํ๋ ์ฃผ์ฒด๋ฅผ ์๋ฏธํ๋ค.
๋ํ ๋๊ฐ ์ด์์ ์ค๋ ๋๋ฅผ ๋ฉํฐ์ค๋ ๋๋ผ๊ณ ํํํ๋ค.
StringBuilder vs StringBuffer
StringBuilder์ StringBuffer๋ ๊ฐ๋ณ์ฑ์ด๋ผ๋ ๊ฐ์ ํน์ง์ ๊ฐ์ง๊ณ ์์ง๋ง ๋ ์ฌ์ด์๋ ๋๊ธฐํ์ ์ฐจ์ด๋ฅผ ๊ฐ์ง๊ณ ์๋ค.
๋๊ธฐํ(Synchronization)๋ ์ฌ๋ฌ ์ค๋ ๋๊ฐ ๋ฆฌ์์ค๋ฅผ ์ฌ์ฉํ๋ ค๊ณ ํ ๋ ์ฌ์ฉํ๋ ค๋ ์ค๋ ๋ ํ๋๋ฅผ ์ ์ธํ ๋๋จธ์ง ์ค๋ ๋๋ค์ ๋ฆฌ์์ค์ ์ ๊ทผํ์ง ๋ชปํ๋๋ก ๋ง๋๊ฒ์ ์๋ฏธํ๋ค.
StringBuilder๋ ๋๊ธฐํ๋ฅผ ์ง์ํ์ง ์๊ณ StringBuffer๋ ๋๊ธฐํ๋ฅผ ์ง์ํ๋ค.
๊ทธ๋ ๊ธฐ ๋๋ฌธ์ StringBuffer๋ ๋ฉํฐ์ฐ๋ ๋ ํ๊ฒฝ์์ ์์ ํ๊ณ StringBuilder๋ ๋๊ธฐํ๋ฅผ ์ง์ํ์ง๋ ์์ง๋ง ๊ทธ๋ ๊ธฐ์ ๋จ์ผ์ฐ๋ ๋์์์ ์ฑ๋ฅ์ StringBuffer๋ณด๋ค ๋ฐ์ด๋๋ค.
StringBuilder ๊ธฐ๋ฅ
StringBuilder๋ in-buffer์ ํฌ๊ธฐ๋ฅผ ๋ณ๊ฒฝํ ์ ์๊ธฐ ๋๋ฌธ์ ์๋๊ฐ ๋๋ฆด ์ ์๋ค.
Array
- ์ด๋ค DataType์ T๋ผ๊ณ ํ ๋, T๊ฐ n๊ฐ ์ฐ์ํ์ฌ ํ ๋น๋์ด ๊ตฌ์ฑ๋ ์๋ฃ๊ตฌ์กฐ ์ด๋ค.
- ๋ฐฐ์ด์๋ ํ๋ฆฌ๋ฏธํฐ๋ธํ์
๋ง ์ค๋๊ฒ์ด ์๋๋ผ ํด๋์ค๋ ์ฌ ์ ์๋ค.
โข ๋ฐฐ์ด์ ๋ฉ๋ชจ๋ฆฌ๋งต
โข Enhanced for ๋ฌธ
๋ฐฐ์ด์ ์์๋ฅผ ์ํํ๋ฉด์ ์ฒ๋ฆฌ๋ฅผ ํด์ผํ๋ ๊ฒฝ์ฐ์ ์ฌ์ฉํ๋ค.
โข ๋ค์ฐจ์ ๋ฐฐ์ด
์ด๋ค ๋ฐ์ดํฐํ์
์ T๋ผ๊ณ ํ ๋ T๊ฐ ์ฐ์์ ์ผ๋ก n๊ฐ๋ก ๊ตฌ์ฑ๋ ๋ฉ๋ชจ๋ฆฌ ๋ธ๋ญ์ ์ฐ๋ฆฌ๋ ๋ฐฐ์ด์ด๋ผ๊ณ ๋ฐฐ์ ๋๋ฐ ์ฆ, ์ด๋ง์ ์ด๋ ํ ํ์
์ด ๋ฐฐ์ด์ด ๋ ์๋ ์๋ค๋ ์๋ฏธ์ด๋ค.
๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ๋ค์ฐจ์ ๋ฐฐ์ด์ด ์๊ฒจ๋ ๊ฒ์ด๋ค.
๋ํ n์ฐจ์ ๋ฐฐ์ด์ด๋ผ๋ ๊ฒ์ ๊ฒฐ๊ตญ n-1์ฐจ์์ ๋ฐฐ์ด์ ์๋ฏธํ๋ค.
๋๊ธ