๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๐Ÿ“ฐ ์–ธ์–ด/Java

java.lang ํŒจํ‚ค์ง€

<Java์˜ ์ •์„ ๊ฐœ์ •3ํŒ>์„ ๊ธฐ๋ณธ์œผ๋กœ ๋ฐฐ์šด ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค.

 

๋ชฉ์ฐจ

  • java.langํŒจํ‚ค์ง€๋ž€?
  • Object ํด๋ž˜์Šค
  • String ํด๋ž˜์Šค
  • StringBufferํด๋ž˜์Šค์™€ StringBuilderํด๋ž˜์Šค
  • Math ํด๋ž˜์Šค
  • Wrapper ํด๋ž˜์Šค

 

java.langํŒจํ‚ค์ง€๋ž€? 

JAVA์˜ lang ํŒจํ‚ค์ง€๋Š” JAVA ํ”„๋กœ๊ทธ๋ž˜๋ฐ์— ํ•„์š”ํ•œ ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ ํด๋ž˜์Šค๋“ค์ด ๋ชจ์—ฌ์žˆ๋Š” ํŒจํ‚ค์ง€์ด๋‹ค. import๊ตฌ๋ฌธ์œผ๋กœ ํ˜ธ์ถœํ•ด์•ผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋‹ค๋ฅธ ํŒจํ‚ค์ง€๋“ค๊ณผ๋Š” ๋‹ฌ๋ฆฌ langํŒจํ‚ค์ง€๋Š” import๊ตฌ๋ฌธ ์—†์ด๋„ ์ž๋™์œผ๋กœ ํ”„๋กœ๊ทธ๋žจ์— ํฌํ•จ๋œ๋‹ค. langํŒจํ‚ค์ง€์— ํฌํ•จ๋˜๋Š” ํด๋ž˜์Šค๋Š” ๋”ฐ๋กœ ๋ช…์‹œํ•˜์ง€ ์•Š์•„๋„ ์ตœ์ƒ์œ„ ํด๋ž˜์Šค๊ฐ€ ๋œ๋‹ค.

 

- java.lang ํŒจํ‚ค์ง€์˜ ํด๋ž˜์Šค ๊ตฌ์กฐ๋„[ langํŒจํ‚ค์ง€์˜ ๋ชจ๋“  ํด๋ž˜์Šค ๋ณด๊ธฐ : JAVA API DOC : Java.lang ]

 


1. Objectํด๋ž˜์Šค

  • Object ํด๋ž˜์Šค๋Š” ๋ชจ๋“  ์ž๋ฐ” ํด๋ž˜์Šค์˜ ์ตœ๊ณ  ์กฐ์ƒ ํด๋ž˜์Šค์ด๋‹ค. ๋”ฐ๋ผ์„œ ์ž๋ฐ”์˜ ๋ชจ๋“  ํด๋ž˜์Šค๋Š” Object ํด๋ž˜์Šค์˜ ๋ชจ๋“  ๋ฉ”์†Œ๋“œ๋ฅผ ๋ฐ”๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.
  • Object ํด๋ž˜์Šค๋Š” ํ•„๋“œ๋ฅผ ๊ฐ€์ง€์ง€ ์•Š์œผ๋ฉฐ, ์ด 11๊ฐœ์˜ ๋ฉ”์†Œ๋“œ๋งŒ์œผ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋‹ค.

 ๋ฉ”์†Œ๋“œ

์„ค ๋ช… 
protected Object clone()  ๊ฐ์ฒด ์ž์‹ ์˜ ๋ณต์‚ฌ๋ณธ ๋ฐ˜ํ™˜ (๊นŠ์€ ๋ณต์‚ฌ)
boolean equals(Object obj)  ๋‘ ๊ฐœ์˜ ๊ฐ์ฒด๊ฐ€ ๊ฐ™์€์ง€ ๋น„๊ตํ•˜์—ฌ ๊ฐ™์œผ๋ฉด true๋ฅผ, ๊ฐ™์ง€ ์•Š์œผ๋ฉด false๋ฅผ ๋ฐ˜ํ™˜
protected void finalize() ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰์…˜ ์ง์ „์— ๊ฐ์ฒด์˜ ๋ฆฌ์†Œ์Šค๋ฅผ ์ •๋ฆฌํ•  ๋•Œ ํ˜ธ์ถœ
Class getClass()  ๊ฐ์ฒด์˜ ํด๋ž˜์Šคํ˜•์„ ๋ฐ˜ํ™˜
int hashCode()  ์ฐพ์„ ๊ฐ’์„ ์ž…๋ ฅํ•˜๋ฉด ์ €์žฅ๋œ ์œ„์น˜๋ฅผ ์•Œ๋ ค์ฃผ๋Š” ํ•ด์‹œ์ฝ”๋“œ๋ฅผ ๋ฐ˜ํ™˜
String toString() ํ˜„์žฌ ๊ฐ์ฒด์˜ ๋ฌธ์ž์—ด์„ ๋ฐ˜ํ™˜
void notify() wait๋œ ์Šค๋ ˆ๋“œ ์‹คํ–‰์„ ์žฌ๊ฐœํ•  ๋•Œ ํ˜ธ์ถœ
void notifyAll()  wait๋œ ๋ชจ๋“  ์Šค๋ ˆ๋“œ ์‹คํ–‰์„ ์žฌ๊ฐœํ•  ๋•Œ ํ˜ธ์ถœ

void wait() 

void wait(long timeout) 

void wait(long timeout, int nanos) 

์Šค๋ ˆ๋“œ๋ฅผ ์ผ์‹œ์ ์œผ๋กœ ์ค‘์ง€ํ•  ๋•Œ ํ˜ธ์ถœ

์ฃผ์–ด์ง„ ์‹œ๊ฐ„๋งŒํผ ์Šค๋ ˆ๋“œ๋ฅผ ์ผ์‹œ์ ์œผ๋กœ ์ค‘์ง€ํ•  ๋•Œ ํ˜ธ์ถœ

์ฃผ์–ด์ง„ ์‹œ๊ฐ„๋งŒํผ ์Šค๋ ˆ๋“œ๋ฅผ ์ผ์‹œ์ ์œผ๋กœ ์ค‘์ง€ํ•  ๋•Œ ํ˜ธ์ถœ

 

1-1) ๊ณต๋ฒฝ ๋ฐ˜ํ™˜ ํƒ€์ž… covariant return type

  • ์˜ค๋ฒ„๋ผ์ด๋”ฉ์€ ์›๋ž˜ ์ด๋ฆ„๊ณผ ๋งค๊ฐœ๋ณ€์ˆ˜ ๊ทธ๋ฆฌ๊ณ  ๋ฐ˜ํ™˜ํƒ€์ž…์ด ์ „๋ถ€ ๊ฐ™์•„์•ผ ํ•˜์ง€๋งŒ, covariant return tyoe์„ ์‚ฌ์šฉํ•˜๋ฉด ์กฐ์ƒ ๋ฉ”์„œ๋“œ์˜ ๋ฆฌํ„ด ํƒ€์ž…์„ ์„œ๋ธŒ ํด๋ž˜์Šค(์ž์† ํด๋ž˜์Šค)์˜ ํƒ€์ž…์œผ๋กœ์˜ ๋ณ€๊ฒฝ์ด ํ—ˆ์šฉ๋œ๋‹ค.
  • ๋ฐฐ์—ด ๋˜๋Š” java.utilํŒจํ‚ค์ง€์˜ ํด๋ž˜์Šค๋ฅผ ๋ณต์ œํ•  ๋•Œ ๋ฒˆ๊ฑฐ๋กญ์ง€ ์•Š์€ ํ˜•๋ณ€ํ™˜์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

 

1-2) ์–•์€ ๋ณต์‚ฌ์™€ ๊นŠ์€ ๋ณต์‚ฌ

- ์–•์€ ๋ณต์‚ฌ(Shallow Copy) : ์ฐธ์กฐ์— ์˜ํ•œ ๋ณต์‚ฌ๋กœ ์›๋ณธ์ด๋‚˜ ๋ณต์‚ฌ๋œ ๊ฒƒ ๋‘˜ ์ค‘ ํ•˜๋‚˜๋งŒ ๋ณ€๊ฒฝํ•ด๋„ ๋‹น์—ฐํ•˜๊ฒŒ ๋‘˜ ๋‹ค ๋ณ€๊ฒฝ๋œ๋‹ค.

public class Test {
  public static void main(String[] args) {
    List<Integer> a = new ArrayList<>();
    a.add(1);
    a.add(2);
    List<Integer> b = a;
    b.add(4);
    
    System.out.println(a);
    System.out.println(b);
  }
}


- ๊นŠ์€ ๋ณต์‚ฌ(Deep Copy)

  • ๊นŠ์€ ๋ณต์‚ฌ๋Š” ์›๋ณธ๊ณผ ๋˜‘๊ฐ™์€ ๊ฐ’์„ ๊ฐ€์ง„ ์ƒˆ๋กœ์šด ๊ฐ์ฒด๋ฅผ ๋งŒ๋“ค์–ด ๋‚ด๋Š” ๋ณต์‚ฌ์ด๋‹ค.
  • ๊นŠ์€ ๋ณต์‚ฌ๋ฅผ ๊ตฌํ˜„ํ•  ๋•Œ๋Š” Object์˜ clone ๋ฉ”์†Œ๋“œ๋ฅผ ์ด์šฉํ•˜๊ฑฐ๋‚˜, ์ง์ ‘ ๋ณต์‚ฌ๊ธฐ๋Šฅ์„ ํ•˜๋Š” ์ƒ์„ฑ์ž๋‚˜ ๋กœ์ง์„ ๋งŒ๋“ค๋ฉด ๋œ๋‹ค.
public class Test {
  public static void main(String[] args) {
    List<Integer> a = new ArrayList<>();
    a.add(1);
    a.add(2);
    List<Integer> b = new ArrayList<>(a);
    b.add(4);
    
    System.out.println(a);
    System.out.println(b);
    
  }
}

 


2. String ํด๋ž˜์Šค

  • String ํด๋ž˜์Šค์—๋Š” ๋ฌธ์ž์—ด๊ณผ ๊ด€๋ จ๋œ ์ž‘์—…์„ ํ•  ๋•Œ ์œ ์šฉํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋‹ค์–‘ํ•œ ๋ฉ”์†Œ๋“œ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ๋‹ค.
  • ๋ถˆ๋ณ€ ํด๋ž˜์Šค(immutable class) : String ์ธ์Šคํ„ด์Šค๋Š” ํ•œ ๋ฒˆ ์ƒ์„ฑ๋˜๋ฉด ๊ทธ ๊ฐ’์„ ์ฝ๊ธฐ๋งŒ ํ•  ์ˆ˜ ์žˆ๊ณ , ๋ณ€๊ฒฝํ•  ์ˆ˜๋Š” ์—†๋‹ค.
  • ์ฆ‰, ๊ธฐ์กด ๋ฌธ์ž์—ด์˜ ๋‚ด์šฉ์ด ๋ณ€๊ฒฝ๋˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์ƒˆ๋กœ์šด String ์ธ์Šคํ„ด์Šค๊ฐ€ ์ƒ์„ฑ๋˜๋Š” ๊ฒƒ์ด๋‹ค.
๋ฉ”์†Œ๋“œ  ์„ค๋ช…
char charAt(int index) ํ•ด๋‹น ๋ฌธ์ž์—ด์˜ ํŠน์ • ์ธ๋ฑ์Šค์— ํ•ด๋‹นํ•˜๋Š” ๋ฌธ์ž๋ฅผ ๋ฐ˜ํ™˜ํ•จ.
int compareTo(String str) ํ•ด๋‹น ๋ฌธ์ž์—ด์„ ์ธ์ˆ˜๋กœ ์ „๋‹ฌ๋œ ๋ฌธ์ž์—ด๊ณผ ์‚ฌ์ „ ํŽธ์ฐฌ ์ˆœ์œผ๋กœ ๋น„๊ตํ•จ.
int compareToIgnoreCase(String str) ํ•ด๋‹น ๋ฌธ์ž์—ด์„ ์ธ์ˆ˜๋กœ ์ „๋‹ฌ๋œ ๋ฌธ์ž์—ด๊ณผ ๋Œ€์†Œ๋ฌธ์ž๋ฅผ ๊ตฌ๋ถ„ํ•˜์ง€ ์•Š๊ณ  ์‚ฌ์ „ ํŽธ์ฐฌ ์ˆœ์œผ๋กœ ๋น„๊ตํ•จ.
String concat(String str) ํ•ด๋‹น ๋ฌธ์ž์—ด์˜ ๋’ค์— ์ธ์ˆ˜๋กœ ์ „๋‹ฌ๋œ ๋ฌธ์ž์—ด์„ ์ถ”๊ฐ€ํ•œ ์ƒˆ๋กœ์šด ๋ฌธ์ž์—ด์„ ๋ฐ˜ํ™˜ํ•จ.
int indexOf(int ch)
int indexOf(String str)
ํ•ด๋‹น ๋ฌธ์ž์—ด์—์„œ ํŠน์ • ๋ฌธ์ž๋‚˜ ๋ฌธ์ž์—ด์ด ์ฒ˜์Œ์œผ๋กœ ๋“ฑ์žฅํ•˜๋Š” ์œ„์น˜์˜ ์ธ๋ฑ์Šค๋ฅผ ๋ฐ˜ํ™˜ํ•จ.
int indexOf(int ch, int fromIndex)
int indexOf(String str, int fromIndex)
ํ•ด๋‹น ๋ฌธ์ž์—ด์—์„œ ํŠน์ • ๋ฌธ์ž๋‚˜ ๋ฌธ์ž์—ด์ด ์ „๋‹ฌ๋œ ์ธ๋ฑ์Šค ์ดํ›„์— ์ฒ˜์Œ์œผ๋กœ ๋“ฑ์žฅํ•˜๋Š” ์œ„์น˜์˜ ์ธ๋ฑ์Šค๋ฅผ ๋ฐ˜ํ™˜ํ•จ.
int lastIndexOf(int ch) ํ•ด๋‹น ๋ฌธ์ž์—ด์—์„œ ํŠน์ • ๋ฌธ์ž๊ฐ€ ๋งˆ์ง€๋ง‰์œผ๋กœ ๋“ฑ์žฅํ•˜๋Š” ์œ„์น˜์˜ ์ธ๋ฑ์Šค๋ฅผ ๋ฐ˜ํ™˜ํ•จ.
int lastIndexOf(int ch, int fromIndex)  ํ•ด๋‹น ๋ฌธ์ž์—ด์—์„œ ํŠน์ • ๋ฌธ์ž๊ฐ€ ์ „๋‹ฌ๋œ ์ธ๋ฑ์Šค ์ดํ›„์— ๋งˆ์ง€๋ง‰์œผ๋กœ ๋“ฑ์žฅํ•˜๋Š” ์œ„์น˜์˜ ์ธ๋ฑ์Šค๋ฅผ ๋ฐ˜ํ™˜ํ•จ.
String[] split(String regex) ํ•ด๋‹น ๋ฌธ์ž์—ด์„ ์ „๋‹ฌ๋œ ์ •๊ทœ ํ‘œํ˜„์‹(regular expression)์— ๋”ฐ๋ผ ๋‚˜๋ˆ ์„œ ๋ฐ˜ํ™˜ํ•จ.
String substring(int beginIndex)  ํ•ด๋‹น ๋ฌธ์ž์—ด์˜ ์ „๋‹ฌ๋œ ์ธ๋ฑ์Šค๋ถ€ํ„ฐ ๋๊นŒ์ง€๋ฅผ ์ƒˆ๋กœ์šด ๋ฌธ์ž์—ด๋กœ ๋ฐ˜ํ™˜ํ•จ.
String substring(int begin, int end)  ํ•ด๋‹น ๋ฌธ์ž์—ด์˜ ์ „๋‹ฌ๋œ ์‹œ์ž‘ ์ธ๋ฑ์Šค๋ถ€ํ„ฐ ๋งˆ์ง€๋ง‰ ์ธ๋ฑ์Šค๊นŒ์ง€๋ฅผ ์ƒˆ๋กœ์šด ๋ฌธ์ž์—ด๋กœ ๋ฐ˜ํ™˜ํ•จ.
String toLowerCase()  ํ•ด๋‹น ๋ฌธ์ž์—ด์˜ ๋ชจ๋“  ๋ฌธ์ž๋ฅผ ์†Œ๋ฌธ์ž๋กœ ๋ณ€ํ™˜ํ•จ.
String toUpperCase()  ํ•ด๋‹น ๋ฌธ์ž์—ด์˜ ๋ชจ๋“  ๋ฌธ์ž๋ฅผ ๋Œ€๋ฌธ์ž๋กœ ๋ณ€ํ™˜ํ•จ.
String trim()  ํ•ด๋‹น ๋ฌธ์ž์—ด์˜ ๋งจ ์•ž๊ณผ ๋งจ ๋’ค์— ํฌํ•จ๋œ ๋ชจ๋“  ๊ณต๋ฐฑ ๋ฌธ์ž๋ฅผ ์ œ๊ฑฐํ•จ.
length()  ํ•ด๋‹น ๋ฌธ์ž์—ด์˜ ๊ธธ์ด๋ฅผ ๋ฐ˜ํ™˜ํ•จ.
isEmpty()  ํ•ด๋‹น ๋ฌธ์ž์—ด์˜ ๊ธธ์ด๊ฐ€ 0์ด๋ฉด true๋ฅผ ๋ฐ˜ํ™˜ํ•˜๊ณ , ์•„๋‹ˆ๋ฉด false๋ฅผ ๋ฐ˜ํ™˜ํ•จ.

 

2-1) ๋ฌธ์ž์—ด ๋ฆฌํ„ฐ๋Ÿด

  • ์ž๋ฐ” ์†Œ์ŠคํŒŒ์ผ์— ํฌํ•จ๋œ ๋ชจ๋“  ๋ฌธ์ž์—ด ๋ฆฌํ„ฐ๋Ÿด์€ ์ปดํŒŒ์ผ ์‹œ์— ํด๋ž˜์Šค ํŒŒ์ผ์— ์ €์žฅ๋œ๋‹ค. ์ด ๋•Œ ๊ฐ™์€ ๋‚ด์šฉ์˜ ๋ฌธ์ž์—ด ๋ฆฌํ„ฐ๋Ÿด์€ ํ•œ๋ฒˆ๋งŒ ์ €์žฅ๋œ๋‹ค.
  • ๋”ฐ๋ผ์„œ ๊ฐ™์€ ๋‚ด์šฉ์˜ ์ธ์Šคํ„ด์Šค(๋ฌธ์ž์—ด ๋ฆฌํ„ฐ๋Ÿด)๋Š” ํ•œ๋ฒˆ๋งŒ ์ƒ์„ฑํ•ด ๊ณต์œ ํ•  ์ˆ˜ ์žˆ๋‹ค.

 


3. StringBufferํด๋ž˜์Šค์™€ StringBuilderํด๋ž˜์Šค

  • ๊ฐ€๋ณ€ ํด๋ž˜์Šค(mutable class) : String ํด๋ž˜์Šค์˜ ์ธ์Šคํ„ด์Šค๋Š” immutable object์ด์ง€๋งŒ, StringBuffer ํด๋ž˜์Šค์˜ ์ธ์Šคํ„ด์Šค๋Š” ๊ทธ ๊ฐ’์„ ๋ณ€๊ฒฝํ•  ์ˆ˜๋„ ์žˆ๊ณ , ์ถ”๊ฐ€ํ•  ์ˆ˜๋„ ์žˆ๋‹ค.
  • ์ด๋ฅผ ์œ„ํ•ด StringBuffer ํด๋ž˜์Šค๋Š” ๋‚ด๋ถ€์ ์œผ๋กœ ๋ฒ„ํผ(buffer)๋ผ๊ณ  ํ•˜๋Š” ๋…๋ฆฝ์ ์ธ ๊ณต๊ฐ„์„ ๊ฐ€์ง„๋‹ค. ๋ฒ„ํผ ํฌ๊ธฐ์˜ ๊ธฐ๋ณธ๊ฐ’์€ 16๊ฐœ์˜ ๋ฌธ์ž๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” ํฌ๊ธฐ์ด๋ฉฐ, ์ƒ์„ฑ์ž๋ฅผ ํ†ตํ•ด ๊ทธ ํฌ๊ธฐ๋ฅผ ๋ณ„๋„๋กœ ์„ค์ •ํ•  ์ˆ˜๋„ ์žˆ๋‹ค.
  • StringBuffer ์ธ์Šคํ„ด์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ฌธ์ž์—ด์„ ๋ฐ”๋กœ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ,  ๊ณต๊ฐ„์˜ ๋‚ญ๋น„๋„ ์—†์œผ๋ฉฐ ์†๋„๋„ ๋งค์šฐ ๋นจ๋ผ์ง‘๋‹ˆ๋‹ค. (String ์ธ์Šคํ„ด์Šค๋Š” ์ƒˆ๋กœ์šด ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๋ฏ€๋กœ ๊ณต๊ฐ„์ด ๋‚ญ๋น„๋˜๊ณ , ์†๋„๋„ ๋Š๋ ค์ง„๋‹ค.)
๋ฉ”์†Œ๋“œ  ์„ค๋ช…
StringBuffer append(boolean b)
StringBuffer append(char c)
StringBuffer append(char[] str)
StringBuffer append(CharSequence s)
StringBuffer append(double d)
StringBuffer append(float f)
StringBuffer append(int i)
StringBuffer append(long lng)
StringBuffer append(Object obj)
StringBuffer append(String str)
StringBuffer append(StringBuffer sb)
์ธ์ˆ˜๋กœ ์ „๋‹ฌ๋œ ๊ฐ’์„ ๋ฌธ์ž์—ด๋กœ ๋ณ€ํ™˜ํ•œ ํ›„, ํ•ด๋‹น ๋ฌธ์ž์—ด์˜ ๋งˆ์ง€๋ง‰์— ์ถ”๊ฐ€ํ•จ.
int capacity() ํ˜„์žฌ ๋ฒ„ํผ ํฌ๊ธฐ๋ฅผ ๋ฐ˜ํ™˜ํ•จ.
StringBuffer delete(int start, int end) ์ „๋‹ฌ๋œ ์ธ๋ฑ์Šค์— ํ•ด๋‹นํ•˜๋Š” ๋ถ€๋ถ„ ๋ฌธ์ž์—ด์„ ํ•ด๋‹น ๋ฌธ์ž์—ด์—์„œ ์ œ๊ฑฐํ•จ.
StringBuffer deleteCharAt(int index)  ์ „๋‹ฌ๋œ ์ธ๋ฑ์Šค์— ํ•ด๋‹นํ•˜๋Š” ๋ฌธ์ž๋ฅผ ํ•ด๋‹น ๋ฌธ์ž์—ด์—์„œ ์ œ๊ฑฐํ•จ.
StringBuffer insert(int offset, boolean b)
StringBuffer insert(int offset, char c)
StringBuffer insert(int offset, char[] str)
StringBuffer insert(int offset, CharSequence s)
StringBuffer insert(int offset, double d)
StringBuffer insert(int offset, float f)
StringBuffer insert(int offset, int i)
StringBuffer insert(int offset, long lng)
StringBuffer insert(int offset, Object obj)
StringBuffer insert(int offset, String str)
์ธ์ˆ˜๋กœ ์ „๋‹ฌ๋œ ๊ฐ’์„ ๋ฌธ์ž์—ด๋กœ ๋ณ€ํ™˜ํ•œ ํ›„, ํ•ด๋‹น ๋ฌธ์ž์—ด์˜ ์ง€์ •๋œ ์ธ๋ฑ์Šค ์œ„์น˜์— ์ถ”๊ฐ€ํ•จ.
StringBuffer reverse()  ํ•ด๋‹น ๋ฌธ์ž์—ด์˜ ์ธ๋ฑ์Šค๋ฅผ ์—ญ์ˆœ์œผ๋กœ ์žฌ๋ฐฐ์—ดํ•จ.

 

3-1) StringBuilder

  StringBuffer StringBuilder
๊ณตํ†ต์  - mutable class
- ๋ฌธ์ž์—ด ์—ฐ์‚ฐ์ด ์ž์ฃผ ์žˆ์„ ๋•Œ String๋ณด๋‹ค ์„ฑ๋Šฅ์ด ์ข‹๋‹ค.
์ฐจ์ด์  - thread-safeํ•˜๋‹ค(๋ฉ€ํ‹ฐ์Šค๋ ˆ๋“œํ™˜๊ฒฝ์—์„œ synchronizedํ‚ค์›Œ๋“œ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋ฏ€๋กœ ๋™๊ธฐํ™”๊ฐ€ ๊ฐ€๋Šฅํ•จ.) - thread-safeํ•˜์ง€ ์•Š๋‹ค.(๋ฉ€ํ‹ฐ์Šค๋ ˆ๋“œ ํ™˜๊ฒฝ์—์„œ๋Š” ์ ํ•ฉํ•˜์ง€ ์•Š๋‹ค.)
- ๋™๊ธฐํ™”๋ฅผ ๊ณ ๋ คํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์‹ฑ๊ธ€์Šค๋ ˆ๋“œ ํ™˜๊ฒฝ์—์„œ StringBuffer์— ๋น„ํ•ด ์—ฐ์‚ฐ์ฒ˜๋ฆฌ๊ฐ€ ๋น ๋ฅด๋‹ค.
์ ์ ˆํ•œ ๊ฒฝ์šฐ multi-thread ํ™˜๊ฒฝ single-thread ํ™˜๊ฒฝ

 


4. Math ํด๋ž˜์Šค

  • Math ํด๋ž˜์Šค๋Š” ์ˆ˜ํ•™์—์„œ ์ž์ฃผ ์‚ฌ์šฉํ•˜๋Š” ์ƒ์ˆ˜๋“ค๊ณผ ํ•จ์ˆ˜๋“ค์„ ๋ฏธ๋ฆฌ ๊ตฌํ˜„ํ•ด ๋†“์€ ํด๋ž˜์Šค
  • Math ํด๋ž˜์Šค์˜ ๋ชจ๋“  ๋ฉ”์†Œ๋“œ๋Š” ํด๋ž˜์Šค ๋ฉ”์†Œ๋“œ(static method)์ด๋ฏ€๋กœ, ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜์ง€ ์•Š๊ณ ๋„ ๋ฐ”๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.
๋ฉ”์†Œ๋“œ ์„ค๋ช…
static double random() 0.0 ์ด์ƒ 1.0 ๋ฏธ๋งŒ์˜ ๋ฒ”์œ„์—์„œ ์ž„์˜์˜ doubleํ˜• ๊ฐ’์„ ํ•˜๋‚˜ ์ƒ์„ฑํ•˜์—ฌ ๋ฐ˜ํ™˜ํ•จ.
static double abs(double a)
static double abs(float a)
static double abs(int a)
static double abs(long a)
์ „๋‹ฌ๋œ ๊ฐ’์ด ์Œ์ˆ˜์ด๋ฉด ๊ทธ ๊ฐ’์˜ ์ ˆ๋Œ“๊ฐ’์„ ๋ฐ˜ํ™˜ํ•˜๋ฉฐ, ์ „๋‹ฌ๋œ ๊ฐ’์ด ์–‘์ˆ˜์ด๋ฉด ์ธ์ˆ˜๋ฅผ ๊ทธ๋Œ€๋กœ ๋ฐ˜ํ™˜ํ•จ.
static double ceil(double a) ์ „๋‹ฌ๋œ doubleํ˜• ๊ฐ’์˜ ์†Œ์ˆ˜ ๋ถ€๋ถ„์ด ์กด์žฌํ•˜๋ฉด ์†Œ์ˆ˜ ๋ถ€๋ถ„์„ ๋ฌด์กฐ๊ฑด ์˜ฌ๋ฆฌ๊ณ  ๋ฐ˜ํ™˜ํ•จ.
static double floor(double a) ์ „๋‹ฌ๋œ doubleํ˜• ๊ฐ’์˜ ์†Œ์ˆ˜ ๋ถ€๋ถ„์ด ์กด์žฌํ•˜๋ฉด ์†Œ์ˆ˜ ๋ถ€๋ถ„์„ ๋ฌด์กฐ๊ฑด ๋ฒ„๋ฆฌ๊ณ  ๋ฐ˜ํ™˜ํ•จ.
static long round(double a)
static int round(float a)
์ „๋‹ฌ๋œ ๊ฐ’์„ ์†Œ์ˆ˜์  ์ฒซ์งธ ์ž๋ฆฌ์—์„œ ๋ฐ˜์˜ฌ๋ฆผํ•œ ์ •์ˆ˜๋ฅผ ๋ฐ˜ํ™˜ํ•จ.
static double rint(double a)  ์ „๋‹ฌ๋œ doubleํ˜• ๊ฐ’๊ณผ ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ์ •์ˆ˜๊ฐ’์„ doubleํ˜•์œผ๋กœ ๋ฐ˜ํ™˜ํ•จ.
static double max(double a, double b)
static float max(float a, float b)
static long max(long a, long b)
static int max(int a, int b)
์ „๋‹ฌ๋œ ๋‘ ๊ฐ’์„ ๋น„๊ตํ•˜์—ฌ ํฐ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•จ.
static double min(double a, double b)
static float min(float a, float b)
static long min(long a, long b)
static int min(int a, int b)
์ „๋‹ฌ๋œ ๋‘ ๊ฐ’์„ ๋น„๊ตํ•˜์—ฌ ์ž‘์€ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•จ.
static double pow(double a, double b) ์ „๋‹ฌ๋œ ๋‘ ๊ฐœ์˜ doubleํ˜• ๊ฐ’์„ ๊ฐ€์ง€๊ณ  ์ œ๊ณฑ ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•˜์—ฌ, ab์„ ๋ฐ˜ํ™˜ํ•จ.
static double sqrt(double a) ์ „๋‹ฌ๋œ doubleํ˜• ๊ฐ’์˜ ์ œ๊ณฑ๊ทผ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•จ.
static double sin(double a)
static double cos(double a)
static double tan(double a)
์ „๋‹ฌ๋œ doubleํ˜• ๊ฐ’์— ํ•ด๋‹นํ•˜๋Š” ๊ฐ๊ฐ์˜ ์‚ผ๊ฐ ํ•จ์ˆซ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•จ.
static double toDegrees(double angrad) ํ˜ธ๋„๋ฒ•์˜ ๋ผ๋””์•ˆ ๊ฐ’์„ ๋Œ€๋žต์ ์ธ ์œก์‹ญ๋ถ„๋ฒ•์˜ ๊ฐ๋„ ๊ฐ’์œผ๋กœ ๋ณ€ํ™˜ํ•จ.
static double toRaidans(double angdeg) ์œก์‹ญ๋ถ„๋ฒ•์˜ ๊ฐ๋„ ๊ฐ’์„ ๋Œ€๋žต์ ์ธ ํ˜ธ๋„๋ฒ•์˜ ๋ผ๋””์•ˆ ๊ฐ’์œผ๋กœ ๋ณ€ํ™˜ํ•จ.

 


5. Wrapper ํด๋ž˜์Šค

์ž๋ฐ”์—์„œ๋Š” 8๊ฐœ์˜ ๊ธฐ๋ณธ ํƒ€์ž…์„ ๊ฐ์ฒด๋กœ ์ง€์ •ํ•˜์ง€ ์•Š์•˜์ง€๋งŒ, ๊ธฐ๋ณธ ํƒ€์ž…์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ์ฒด๋กœ ์ทจ๊ธ‰ํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋‹ค.

8๊ฐœ์˜ ๊ธฐ๋ณธ ํƒ€์ž…์— ํ•ด๋‹นํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ์ฒด๋กœ ํฌ์žฅํ•ด ์ฃผ๋Š” ํด๋ž˜์Šค๋ฅผ ๋ž˜ํผ ํด๋ž˜์Šค(Wrapper class)๋ผ๊ณ  ํ•œ๋‹ค.

  1. ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ๊ฐ์ฒด๊ฐ€ ์š”๊ตฌ ๋ ๋•Œ.
  2. ๊ธฐ๋ณธํ˜• ๊ฐ’์ด ์•„๋‹Œ ๊ฐ์ฒด๋กœ ์ €์žฅํ•ด์•ผ ํ•  ๋•Œ.
  3. ๊ฐ์ฒด๊ฐ„์˜ ๋น„๊ต๊ฐ€ ํ•„์š”ํ•  ๋•Œ. ๋“ฑ

 

5-1) ์˜คํ†  ๋ฐ•์‹ฑ(AutoBoxing)๊ณผ ์˜คํ†  ์–ธ๋ฐ•์‹ฑ(AutoUnBoxing)

JDK 1.5๋ถ€ํ„ฐ๋Š” ๋ฐ•์‹ฑ๊ณผ ์–ธ๋ฐ•์‹ฑ์ด ํ•„์š”ํ•œ ์ƒํ™ฉ์—์„œ ์ž๋ฐ” ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์ด๋ฅผ ์ž๋™์œผ๋กœ ์ฒ˜๋ฆฌํ•ด ์ค€๋‹ค. 

Integer num = new Integer(17); // ๋ฐ•์‹ฑ
int n = num.intValue();        // ์–ธ๋ฐ•์‹ฑ

System.out.println(n);

Character ch = 'X'; // Character ch = new Character('X'); : ์˜คํ† ๋ฐ•์‹ฑ
char c = ch;        // char c = ch.charValue();           : ์˜คํ† ์–ธ๋ฐ•์‹ฑ

System.out.println(c);

--์‹คํ–‰ ๊ฒฐ๊ณผ--
17
X

 

  • ๋ž˜ํผ ํด๋ž˜์Šค์ธ Interger ํด๋ž˜์Šค์™€ Character ํด๋ž˜์Šค์—๋Š” ๊ฐ๊ฐ ์–ธ๋ฐ•์‹ฑ์„ ์œ„ํ•œ intValue() ๋ฉ”์†Œ๋“œ์™€ charValue() ๋ฉ”์†Œ๋“œ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ๋‹ค.
  • ์˜คํ†  ๋ฐ•์‹ฑ์„ ์ด์šฉํ•˜๋ฉด new ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ ๋„ ์ž๋™์œผ๋กœ Character ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๊ณ , ๋ฐ˜๋Œ€๋กœ charValue() ๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ ๋„, ์˜คํ†  ์–ธ๋ฐ•์‹ฑ์„ ์ด์šฉํ•˜์—ฌ ์ธ์Šคํ„ด์Šค์— ์ €์žฅ๋œ ๊ฐ’์„ ๋ฐ”๋กœ ์ฐธ์กฐํ•  ์ˆ˜ ์žˆ๋‹ค.