๐๐ป
์ด์์ฒด์ ์ ๋ ๋ฆฝ์
๊ฐ์ฒด ์งํฅ ์ธ์ด (Object Oriented Programming, OOP)
ํจ์ํ ํ๋ก๊ทธ๋๋ฐ ์ง์
์๋ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ (Garbage Collection)
๋์ ๋ก๋ฉ (Dynamic Loading)์ง์
Write Once, Run Anywhere (ํ ๋ฒ ์ฐ๊ณ ๋ชจ๋ ๊ณณ์์ ์คํํ๋ค.)
์๋ฐ๋ ์ปดํ์ผ๋ฌ(Compiler)๋ฅผ ํตํด ๊ธฐ๊ณ์ด(Machine Language)๋ก ๋ณํ๋๋ ์ธ์ด๋ค
์ปดํ์ผ(Compiler)์ด๋, ํน์ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ฅผ ๊ธฐ๊ณ๊ฐ ์ดํดํ ์ ์๋ ์ธ์ด๋ก ์ฎ๊ธฐ๋ ๋ฒ์ญ ๊ณผ์ ์ด๋ค.
์๋ฐ ์ธ์ด๋ฅผ ์ดํดํ ์ ์๋ ์ฝ๋ (๋ฐ์ดํธ์ฝ๋,ByteCode)๋ก ๋ณํํ๋ ๊ฒ์ ์๋ฏธํ๋ค.
JVM์ ์๋ฐ ํ๋ก๊ทธ๋จ์ ์คํ์ํค๋ ๋๊ตฌ์ ๋๋ค.
์๋ฐ๊ฐ ์ด์์ฒด์ ์ ๋
๋ฆฝ์ ์ธ ๊ฒ์ JVM์ด ์๊ธฐ ๋๋ฌธ์ ๊ฐ๋ฅํ๋ค
JVM์ ์๋ฐ ์ฝ๋๋ก ์์ฑํ ํ๋ก๊ทธ๋จ์ ํด์ํด ์คํํ๋ ๋ณ๋์ ํ๋ก๊ทธ๋จ์ด๋ค.
์ฆ, ํ๋ก๊ทธ๋จ์ ์คํํ๋ ํ๋ก๊ทธ๋จ์ด๋ค.
์๋ฐ ์คํ ํ๊ฒฝ์ ์ฝ์, ์๋ฐ ํ๋ก๊ทธ๋จ์ ์คํํ๊ธฐ ์ํ ๋๊ตฌ๋ค์ด ๋ค์ด์์ผ๋ฉฐ JVM์ด ์ด ์์ ํฌํจ๋๋ค.
์๋ฐ ๊ฐ๋ฐ ๋๊ตฌ์ ์ฝ์, ์๋ฐ๋ก ๊ฐ๋ฐํ๊ธฐ ์ํ ๋ชจ๋ ๊ฒ์ผ ๋ฌถ์ด๋์ ํคํธ์ด๋ค
์๋ฐ ์คํ ํ๊ฒฝ๊ณผ ๊ธฐํ ๊ฐ๋ฐ ๋๊ตฌ๋ก ๊ตฌ์ฑ๋๋ค.
JRE(Java Runtime Environment) : JVM + ํ์ค ํด๋์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ
JDK(Java Development Kit) : JRE + ๊ฐ๋ฐ์ ํ์ํ ๋๊ตฌ
๊ธฐ๋ณธ ํ์
(primitive type)
์ ์, ์ค์, ๋ฌธ์, ๋
ผ๋ฆฌ ๋ฆฌํฐ๋ด์ ์ ์ฅํ๋ ํ์
์ ์นญํ๋ฉฐ ์์ ํ์
์ด๋ผ๊ณ ๋ ํ๋ค.
๐ ์ค์ ๋ฐ์ดํฐ ๊ฐ์ ์ ์ฅํ๋ ํ์ ์ด๋ค.
์ฐธ์กฐ ํ์
(reference type)
์๋ฐ์์ ์ค์ ๊ฐ์ฒด๋ Heap ์์ญ์ ์ ์ฅ๋๋ฉฐ ์ฐธ์กฐ ํ์
๋ณ์๋ ์คํ ์์ญ์ ์ค์ ๊ฐ์ฒด๋ค์ ์ฃผ์๋ฅผ ์ ์ฅํ์ฌ ๊ฐ์ฒด๋ฅผ ์ฌ์ฉํ ๋ ๋ง๋ค ์ฐธ์กฐ ๋ณ์์ ์ ์ฅ๋ ์ฃผ์๋ฅผ ๋ถ๋ฌ์ ์ฌ์ฉํ๋ ๋ฐฉ์์ด๋ค.
์ด๋ "๋ณ์๋ ๋ฌด์๋ฌด์์ด๋ค" ๋ผ๊ณ ์ง์ ์ ์ผ๋ก ์๋ฏธ๋ฅผ ์๋ ค์ฃผ๋ฉด ๊ธฐ๋ณธ ํ์
์ ๋ฐ์ดํฐ,
"๋ณ์๋ ์ด๋ ํ์ด์ง์ ์ค๋ช
๋์๋ค" ๋ผ๊ณ ํ๋ฉด ์ฐธ์กฐ ํ์
์ ๋ฐ์ดํฐ
์ง์ญ ๋ณ์, ํ๋ผ๋ฏธํฐ, ๋ฆฌํด ๊ฐ, ์ฐ์ฐ์ ์ฌ์ฉ๋๋ ์์ ๊ฐ๋ค์ด ์์ฑ๋๋ ์์ญ
๋ฉ์๋๋ฅผ ํธ์ถํ ๋๋ง๋ค ์คํ ์์ญ์ด ์์ฑ๋๊ณ , ๊ธฐ๋ณธ ํ์
๋ณ์๋ ์ฐธ์กฐ ํ์
๋ณ์๊ฐ ์์ด๊ณ ์ฌ๋ผ์ง๊ณ ๋ฅผ ๋ฐ๋ณตํ๋ค.
ex) ๊ธฐ๋ณธ ํ์
๋ณ์
int a = 10; >> ์ ์ ๊ฐ์ด ํ ๋น๋๋ 'a' ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ์คํ ์์ญ์ด ์์ฑ >> 10์ด ํ ๋น
ex) class Person p = new Person(); >> 'p' ์ด๋ฆ์ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ์คํ ์์ญ ์์ฑ >> ์์ฑ๋ p์ ์ธ์คํด์ค๋ Heap ์์ญ์ ์์ฑ
new ํค์๋๋ก ์์ฑ๋ ๊ฐ์ฒด์ ๋ฐฐ์ด์ด ์์ฑ๋๋ ์์ญ, ๋ฉ์๋ ์์ญ์ ๋ก๋๋ ํด๋์ค๋ง ์์ฑ์ด ๊ฐ๋ฅํ๊ณ ๊ฐ๋น์ง ์ปฌ๋ ํฐ๊ฐ ์ฐธ์กฐ๋์ง ์๋ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ์ธํ๊ณ ์ ๊ฑฐํ๋ ์์ญ์ด๋ค
์ ์ ํ์
์ byte, char, short, int, long ํ์
์ด ์๋ค.
์๋ฐ์์ ์ ์ ์ฐ์ฐ์ ๊ธฐ๋ณธ์ ์ผ๋ก int
๋ก ํ๋ค.
int longnumber = 12345678910; // ์ค๋ฅ (์ ์ int์ ๋ฒ์๋ฅผ ๋ฒ์ด๋จ)
long
ํ์
์ ์๋ฏธํ๋ L
์ ๋ถ์ฌ์ฃผ๋ฉด ์ค๋ฅ๋ฅผ ํด๊ฒฐํ ์ ์๋ค.
์ด๋ ์๋ฌธ์ l
์ ์
๋ ฅํด๋ ๋์ง๋ง ์ซ์์ ํผ๋ ๊ฐ๋ฅ์ฑ์ด ์์ผ๋ ๋๋ฌธ์๋ฅผ ์ฌ์ฉํ์
int longnumber = 12345678910L;
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์ง์ ์ ์ ๋ฌธ์๋ก ์ ์ฅ
์ค์๋ ์์์ ์ ๊ฐ์ง๋ ๊ฐ์ ์๋ฏธ
์๋ฐ์์ ์ค์ ์ฐ์ฐ์ ๊ธฐ๋ณธ์ ์ผ๋ก double ํ์ ์ผ๋ก ์ฒ๋ฆฌ
float num1 = 3.14f;
double num2 = 3.141592d;
double num3 = 3.141592;
์ค์ํ ๊ฐ ๋ค์๋ floatํ์ ๊ฐ์ธ์ง, doubleํ์ ๊ฐ์ธ์ง ํํํ๊ธฐ ์ํด f
๋๋d
๋ฅผ ๋ถ์ฌ์ผ ํ๋ค
ํ์ง๋ง, doubleํ์ ์ค์ํ์ ๋ํดํธ(default) ๊ฐ์ด๊ธฐ ๋๋ฌธ์ d
๋ฅผ ๋ถ์ด๋๊ฑด num3 ์ฒ๋ผ ์๋ต์ด ๊ฐ๋ฅํ๋ค.
๐ก doubleํ์ floatํ๋ณด๋ค ์ ๋ฐ๋๊ฐ ๋๋ค
๋ ํฐ ์ค์๋ฅผ ์ ์ฅํ ์ ์๊ณ , ๋ ์ ํํ๊ฒ ์ ์ฅ์ด ๊ฐ๋ฅํ๋ค
๋
ผ๋ฆฌ ํ์
์ ์ข
๋ฅ๋ booleanํ ํ๊ฐ์ง ๋ฟ์ด๋ค, boolean์ ์ฐธ ๋๋ ๊ฑฐ์ง์ ์ ์ฅํ ์ ์๋ ๋ฐ์ดํฐ ํ์
์ด๋ฉฐ, ๊ฐ์ผ๋ก๋ true
์ false
๊ฐ ์๋ค.
์ฐธ๊ณผ ๊ฑฐ์ง์ 0๊ณผ 1๋ก ์ ์ฅํ๋ฏ๋ก ๋จ ํ๋์ ๋นํธ๋ง์ผ๋ก ํํํ ์ ์๋๋ฐ, JVM์ด ๋ค๋ฃฐ ์ ์๋ ๋ฐ์ดํฐ์ ์ต์ ๋จ์๊ฐ 1byte์ด๊ธฐ ๋๋ฌธ์ 1byte์ ํฌ๊ธฐ๋ฅผ ์ฐจ์งํ๋ค.
boolean isSunnyDays = true; // isSunnyDays ๋ผ๋ ๋ณ์๋ฅผ ์ ์ธํ๊ณ true์ ๊ฐ์ ๋์
ํ๋ค.
if(isSunnyDays){
// ์ ํฌ๋ฆผ์ ๋ค๊ณ ๋๊ฐ๋ค
}
์ด๋ ์กฐ๊ฑด์ ํ๋น์ด ์จํ๊ฑฐ๋, ์จํ์ง์๊ฑฐ๋ ๋๊ฐ์ง
์ด๋ ๊ฒ ์กฐ๊ฑด์ ์ฐธ or ๊ฑฐ์ง์ผ๋ก ํํ ํ ์ ์์๋ boolean์ ์ฌ์ฉํ๋ค.
์๋ฐ๋ ๋ฌธ์์ด์ 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 ํด๋์ค๋ ๋ฌธ์์ด์ ์ฐ๋ฆฌ๊ฐ ์ง์ ํ ๊ตฌ๋ถ์๋ก ๋ฌธ์์ด์ ์ชผ๊ฐ์ฃผ๋ ํด๋์ค์ด๋ค
๊ทธ๋ ๊ฒ ์ชผ๊ฐ์ด์ง ๋ฌธ์์ด์ ์ฐ๋ฆฌ๋ ํ ํฐ(token)์ด๋ผ๊ณ ์นญํ๋ค.
StringTokenizer๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด์๋ java.util.StringTokenizer๋ฅผ import ํด์ผ ํ๋ค.
์์ฃผ ์ฌ์ฉํ๋ ๋ฉ์๋
int countTokens()
boolean hasMoreElements(), boolean hasMoreTokens()
-๋ค์์ token์ ๋ฐํํ๋ค, StringTokenizer๋ ๋ด๋ถ์ ์ผ๋ก ์ด๋ค ์์น์ ํ ํฐ์ ์ฌ์ฉํ๋์ง ๊ธฐ์ตํ๊ณ ์์ผ๋ฉฐ, ๊ทธ ์์น๋ฅผ ๋ค์์ผ๋ก ์ฎ๊ธด๋ค. -> ๋๊ฐ์ง ๋ฉ์๋๋ ๋ชจ๋ ๊ฐ์ ๊ฐ์ ๋ฐํ
Object nextElement(), String nextToken()
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() ๋ฉ์๋๋ ์ธ์๋ก ์ ๋ฌ๋ ๊ฐ์ ๋ฌธ์์ด๋ก ๋ณํํ ํ, ํด๋น ๋ฌธ์์ด์ ๋ง์ง๋ง์ ์ถ๊ฐํ๋ค.
์ด ๋ฉ์๋๋ String ํด๋์ค์ concat() ๋ฉ์๋์ ๊ฐ์๊ฒฐ๊ณผ๋ฅผ ๋ฐํํ์ง๋ง, ๋ด๋ถ์ ์ธ ์ฒ๋ฆฌ ์๋๊ฐ ํจ์ฌ ๋น ๋ฅด๋ค.
StringBuffer str = new StringBuffer("Java");
System.out.println("๋ฌธ์์ด : " + str);
System.out.println(str.append(" Study"));
System.out.println("append() ๋ฉ์๋ ํธ์ถ ํ ๋ฌธ์์ด : " + str);
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() ๋ฉ์๋๋ ์ ๋ฌ๋ ์ธ๋ฑ์ค์ ํด๋นํ๋ ๋ถ๋ถ ๋ฌธ์์ด์ ํด๋น ๋ฌธ์์ด์์ ์ ๊ฑฐํ๋ค.
๋ํ, 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() ๋ฉ์๋๋ ์ธ์๋ก ์ ๋ฌ๋ ๊ฐ์ ๋ฌธ์์ด๋ก ๋ณํํ ํ, ํด๋น ๋ฌธ์์ด์ ์ง์ ๋ ์ธ๋ฑ์ค ์์น์ ์ถ๊ฐํ๋ค.
์ด๋ ์ ๋ฌ๋ ์ธ๋ฑ์ค๊ฐ ํด๋น ๋ฌธ์์ด์ ๊ธธ์ด์ ๊ฐ์ผ๋ฉด, 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