μƒˆμ†Œμ‹

Java

[Java] 07-2 μžλ°” κΈ°λ³Έ API

  • -

πŸ“’ https://daradarav.tistory.com/ λ‘œ μ΄μ „μ€‘μž…λ‹ˆλ‹€. 

 

DaraDaraV

 

daradarav.tistory.com


πŸ“Œ I. java.lang.Object 클래슀

πŸ“š 1. java.lang.Object 클래슀

  • μžλ°”μ˜ λͺ¨λ“  ν΄λž˜μŠ€λ“€μ€ 이 클래슀λ₯Ό 기반으둜 μž‘μ„±λ¨
  • λͺ¨λ“  클래슀의 λΆ€λͺ¨ 역할을 ν•˜λŠ” 클래슀
  • λͺ…μ‹œμ μœΌλ‘œ 상속 관계λ₯Ό κΈ°μˆ ν•˜μ§€ μ•Šμ•„λ„ λͺ¨λ“  ν΄λž˜μŠ€μ— κ°•μ œλ‘œ μƒμ†μ‹œν‚€λŠ” μ΅œμƒμœ„ 클래슀

java.lang.Object 클래슀의 μ£Όμš” λ©”μ„œλ“œλ“€μ€ λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€.

λ©”μ†Œλ“œ μ„€λͺ…
boolean equals(Object obj) objκ°€ κ°€λ¦¬ν‚€λŠ” 객체와 ν˜„μž¬ 객체λ₯Ό λΉ„κ΅ν•˜μ—¬ κ°™μœΌλ©΄ true 리턴
* κ°μ²΄λŠ” 속성값을 λΉ„κ΅ν•˜λŠ” 것이 μ•„λ‹Œ μ°Έμ‘° λ³€μˆ˜ 자체λ₯Ό λΉ„κ΅ν•©λ‹ˆλ‹€. λ•Œλ¬Έμ— 객체의 값을 λΉ„κ΅ν•˜κΈ° μœ„ν•΄μ„œλŠ” equalsκ°€ ν•„μš”ν•©λ‹ˆλ‹€.
int hashCode() ν˜„ 객체에 λŒ€ν•œ ν•΄μ‹œ μ½”λ“œ κ°’ 리턴
Sting toString() ν˜„ 객체에 λŒ€ν•œ λ¬Έμžμ—΄ ν‘œν˜„μ„ 리턴
void notify() ν˜„ 객체에 λŒ€ν•΄ λŒ€κΈ°ν•˜κ³  μžˆλŠ” ν•˜λ‚˜μ˜ μŠ€λ ˆλ“œλ₯Ό 깨움
void wait() ν˜„ 객체에 λŒ€ν•΄ λŒ€κΈ°ν•˜κ³  μžˆλŠ” λͺ¨λ“  μŠ€λ ˆλ“œλ₯Ό 깨움

πŸ“Œ II. Wrapper 클래슀

πŸ“š 1. Wrapper 클래슀

  • κΈ°λ³Έ μžλ£Œν˜•μ„ 객체둜 λ‚˜νƒ€λ‚΄κΈ° μœ„ν•œ ν΄λž˜μŠ€λ“€
  • νŠΉμ •ν•œ κ²½μš°μ— κΈ°λ³Έν˜• 값을 객체둜 ν‘œν˜„ν•  ν•„μš”κ°€ μžˆμ„ λ•Œ μ‚¬μš©
  • Wrapper인 ν΄λž˜μŠ€κ°€ μ‘΄μž¬ν•˜λŠ” 것이 μ•„λ‹Œ 8개의 κΈ°λ³Έ νƒ€μž…μ„ λ‹€λ£¨λŠ” ν΄λž˜μŠ€λ“€μ„ 톡칭
κΈ°λ³Ένƒ€μž… byte short int long char float double boolean
Wrapper 클래슀 Byte Short Integer Long Character Float Double Boolean

 


πŸ“š 2. Wrapper 객체의 생성

기쑴의 JDKλŠ” new μ—°μ‚°μžλ₯Ό μ΄μš©ν•˜μ—¬ μƒμ„±μžλ₯Ό ν˜ΈμΆœν•˜μ—¬ 객체λ₯Ό μƒμ„±ν–ˆμŠ΅λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ Wrapper ν΄λž˜μŠ€μ—μ„œ μ œκ³΅ν•˜λŠ” static λ©”μ„œλ“œλ₯Ό μ‚¬μš©ν•˜μ—¬ 객체 생성없이 μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

(1) κΈ°λ³Έ μžλ£Œν˜•μ˜ κ°’μœΌλ‘œ Wrapper 객체 생성

Integer i = Integer.valueOf(10); 	// μ •μˆ˜ 10의 객체화
Character c = Character.valueOf(‘c’);  	// 문자 'C'의 객체화 		
Double f = Double.valueOf(3.14);  	// μ‹€μˆ˜ 3.14의 객체화
Boolean b = Boolean.valueOf(true); 	// 뢈린 κ°’ true의 객체화

(2) λ¬Έμžμ—΄λ‘œ Wrapper 객체 생성 

Integer I = Integer.valueOf(“10”); 	//λ¬Έμžμ—΄ '10'의 μ •μˆ˜ν™”
Double d = Double.valueOf(“3.14”); 	//λ¬Έμžμ—΄ '3.14'의 μ‹€μˆ˜ν™”
Boolean b = Boolean.valueOf(“false”); 	//λ¬Έμžμ—΄ 'false'의 λΆˆλ¦°ν™”

πŸ“š 3. Wrapper κ°μ²΄λ“€μ˜ μ£Όμš” λ©”μ„œλ“œ

λ‹€μˆ˜μ˜ λ©”μ„œλ“œλ“€μ΄ static νƒ€μž…μž…λ‹ˆλ‹€. λͺ…μ‹œμ μœΌλ‘œ new μ—°μ‚°μžλ₯Ό 톡해 객체 없이 κ°„λ‹¨νžˆ λ©”μ„œλ“œ 호좜 κ°€λŠ₯ν•©λ‹ˆλ‹€.

λ©”μ„œλ“œ μ„€λͺ…
static in bitCount(int i) μ •μˆ˜ i의 μ΄μ§„μˆ˜ ν‘œν˜„μ—μ„œ 1의 개수 리턴
float floatValue() float νƒ€μž…μœΌλ‘œ κ°’ 리턴
int intValue() int νƒ€μž…μœΌλ‘œ κ°’ 리턴
static int praseInt(String s) λ¬Έμžμ—΄ sλ₯Ό 10진 μ •μˆ˜λ‘œ λ³€ν™˜ν•œ κ°’ 리턴
static int praseInt(String s, int radix) λ¬Έμžμ—΄ sλ₯Ό μ§€μ •λœ μ§„λ²•μ˜ μ •μˆ˜λ‘œ λ³€ν™˜ν•œ κ°’ 리턴
static String toString(int i) μ •μˆ˜ iλ₯Ό λ¬Έμžμ—΄λ‘œ λ³€ν™˜ν•˜μ—¬ 리턴
static Integer valueOf(int i) μ •μˆ˜ iλ₯Ό λ‹΄μŒ Integer 객체 리턴
static Integer valueOf(String s) λ¬Έμžμ—΄ sλ₯Ό μ •μˆ˜λ‘œ λ³€ν™˜ν•˜μ—¬ λ‹΄κ³  μžˆλŠ” Integer 객체 리턴

πŸ“š 4. Wrapper 객체의 μ‚¬μš©

(1) Wrapper κ°μ²΄λ‘œλΆ€ν„° κΈ°λ³Έ μžλ£Œν˜• μ–»μ–΄λ‚΄κΈ°

Integer i = Integer.valueOf(10);
int ii = i.intValue(); // ii = 10 

Character c = Character.valueOf('c' );
char cc = c.charValue(); // cc = ’c’

Double f = Double.valueOf(3.14);
double dd = d.doubleValue(); // dd = 3.14 

Boolean b = Boolean.valueOf(true);
boolean bb = b.booleanValue(); // bb = true

(2) λ¬Έμžμ—΄μ„ κΈ°λ³Έ μžλ£Œν˜•μœΌλ‘œ λ³€ν™˜

int i = Integer.parseInt("123");	  // i = 123 
boolean b = Boolean.parseBoolean("true"); // b = true 
double f = Double.parseDouble("3.14");	  // d = 3.14

(3) κΈ°λ³Έ μžλ£Œν˜•μ„ λ¬Έμžμ—΄λ‘œ λ³€ν™˜

String s1 = Integer.toString(123);	// μ •μˆ˜  123을  λ¬Έμžμ—΄  "123" 으둜  λ³€ν™˜
String s2 = Integer.toHexString(123);	// μ •μˆ˜ 123을 16μ§„μˆ˜μ˜ λ¬Έμžμ—΄ "7b"둜 λ³€ν™˜
String s3 = Double.toString(3.14);	// μ‹€μˆ˜  3.14λ₯Ό  λ¬Έμžμ—΄  "3.14"둜  λ³€ν™˜
String s4 = Charater.toString('a');	// 문자  ‘a’λ₯Ό  λ¬Έμžμ—΄  "a"둜  λ³€ν™˜
String s5 = Boolean.toString(true);	// 뢈린  κ°’  trueλ₯Ό  λ¬Έμžμ—΄  "true"둜  λ³€ν™˜

πŸ“š 5. μžλ™ λ°•μ‹±κ³Ό μ–Έλ°•μ‹±

  • λ°•μ‹±(boxing) : κΈ°λ³Έ νƒ€μž…μ˜ 값을 Wrapper 객체둜 λ³€ν™˜ν•˜λŠ” 것
  • μ–Έλ°•μ‹±(unboxing) : Wrapper 객체의 값을 κΈ°λ³Έ νƒ€μž…μœΌλ‘œ λ³€ν™˜ν•˜λŠ” 것
  • JDK 1.5이후뢀터 μžλ™μœΌλ‘œ 이루어져 μžλ™ λ°•μ‹±, μžλ™ 언박싱이라고 함

Integer ten = 10;	// μžλ™ λ°•μ‹±. Integer ten = Integer.valueOf(10);둜 μžλ™ 처리 
int n = ten;		// μžλ™ μ–Έλ°•μ‹±. int n = ten.intValue();둜 μžλ™ 처리

πŸ“Œ III. java.lang.String 클래슀

πŸ“š 1. java.lang.String 클래슀

  • λ¬Έμžμ—΄μ„ ν‘œν˜„ν•  λ•Œ μ‚¬μš©
  • μžλ°”μ˜ λ¬Έμžμ—΄μ„ λ¦¬ν„°λŸ΄μ€ String 객체둜 처리됨
  • + μ—°μ‚°μžλ‘œ λ¬Έμžμ—΄μ„ μ—°κ²°ν•  수 있음
  • 기본적으둜 String  κ°μ²΄λŠ” νŽΈμ§‘ λΆˆκ°€ν•˜
    => νŽΈμ§‘λ˜λŠ” 것 같아보여도 λ‚΄λΆ€μ μœΌλ‘œλŠ” 단지 폐기 ν›„ μƒˆλ‘œ μƒμ„±ν•˜λŠ” 것

πŸ“š 2. String 클래슀 객체의 생성 방법

(1) μ•”μ‹œμ  생성

String s1 = "hello";
  • 이미 같은 λ¬Έμžμ—΄μ΄ λ“±λ‘λ˜μ–΄ μžˆλ‹€λ©΄ κ·Έ λ¬Έμžμ—΄μ˜ μ°Έμ‘° λ³€μˆ˜λ₯Ό λ„˜κ²¨ λ°›μŒ
  • λ¬Έμžμ—΄ λ¦¬ν„°λŸ΄ μžμ²΄λŠ” μƒμˆ˜ μ˜μ—­μ— ν• λ‹Ήλ˜κΈ° λ•Œλ¬Έμ— κ·Έ μ°Έμ‘°κ°’(idκ°’)을 λ„˜κ²¨λ°›λŠ” 것
  • == μ—°μ‚°μžλ‘œ λ¬Έμžμ—΄μ„ 비ꡐ λΆˆκ°€

(2) λͺ…μ‹œμ  생성

String s2 = new String("hello");
  • 항상 μƒˆλ‘œμš΄ 객체λ₯Ό 동적 ν• λ‹Ήν•˜μ—¬ heap μ˜μ—­μ— μƒˆλ‘œ 객체가 λ§Œλ“œμ–΄μ§
  • == μ—°μ‚°μžλ‘œ λ¬Έμžμ—΄ 비ꡐ κ°€λŠ₯ν•˜μ§€λ§Œ ꢌμž₯ X
  • λ¬Έμžμ—΄ (객체1).equals(객체2) ν˜•νƒœλ‘œ eqauls λ©”μ„œλ“œ μ‚¬μš©

πŸ“š 3. String 클래슀 객체의 생성 방법 비ꡐ

String s1 = "hello";		// μ•”μ‹œμ  생성
String s2 = "hello";		// μ•”μ‹œμ  생성
String s3 = new String("hello");	// λͺ…μ‹œμ  생성
String s4 = new String("hello");	// λͺ…μ‹œμ  생성

if (s1 == s2) System.out.println("s1 == s2")	//Output:s1 == s2, 같은 μ°Έμ‘°κ°’ 비ꡐ
if (s3 != s4) System.out.println("s3 != s4")	//Output:s3 != s4, 객체가 λΉ„κ΅λ˜μ§€ μ•Šμ•„ 닀름
if (s1 != s3) System.out.println("s1 != s3")	//Output:s1 != s3, 객체가 λΉ„κ΅λ˜μ§€ μ•Šμ•„ 닀름

if (s1.equals(s2)) System.out.println("s1 == s2")	//Output:s1 == s2, 같은 μ°Έμ‘°κ°’ 비ꡐ
if (s3.equals(s4)) System.out.println("s3 == s4")	//Output:s3 != s4, 객체가 λΉ„κ΅λ˜μ§€ μ•Šμ•„ 닀름
if (s1.equals(s3)) System.out.println("s1 == s3")	//Output:s1 != s3, 객체가 λΉ„κ΅λ˜μ§€ μ•Šμ•„ 닀름


πŸ“š 4. String 클래슀의 μ£Όμš” λ©”μ„œλ“œ

λ©”μ„œλ“œ μ„€λͺ…
char charAt(int index) index에 μžˆλŠ” 문자 κ°’ 리턴
int compareTo(String another) 두 λ¬Έμžμ—΄μ΄μ„μ‚¬μ „ 순으둜 λΉ„κ΅ν•˜μ—¬ 두 λ¬Έμžμ—΄μ΄ κ°™μœΌλ©΄ 0, ν˜„ λ¬Έμžμ—΄μ΄ 비ꡐ λŒ€μƒλ³΄λ‹€ λ¨Όμ € λ‚˜μ˜€λ©΄ 음수 μ•„λ‹ˆλ©΄ μ–‘μˆ˜ 리턴
String concat(String str) ν˜„μž¬ λ¬Έμžμ—΄ 뒀에 str μŠ€νŠΈλ§μ„ 덧뢙인 μƒˆλ‘œμš΄ λ¬Έμžμ—΄ 리턴
boolean contains(CharSequence s) s에 μ§€μ •λœ λ¬Έμžλ“€μ„ ν¬ν•¨ν•˜κ³  있으면 true 리턴
int length() λ¬Έμžμ—΄μ˜ 길이(문자 개수) 리턴
String replace(CharSequence target,
CharSequence replacement
)
target이 μ§€μ •ν•˜λŠ” 일련의 λ¬Έμžλ“€μ„ replacementκ°€ μ§€μ •ν•˜λŠ” λ¬Έμžλ“€λ‘œ λ³€κ²½ν•œ λ¬Έμžμ—΄  λ¦¬ν„΄
String toLowerCase() μ†Œλ¬Έμžλ‘œ λ³€κ²½ν•œ λ¬Έμžμ—΄ λ¦¬ν„΄
String toUpperCase() λŒ€λ¬Έμžλ‘œ λ³€κ²½ν•œ λ¬Έμžμ—΄ λ¦¬ν„΄
String trim() λ¬Έμžμ—΄ μ•žλ’€μ˜ 곡백 λ¬Έμžλ“€μ„ μ œκ±°ν•œ λ¬Έμžμ—΄ 리턴

πŸ“Œ IV. java.lang.StringBuffer 클래슀

πŸ“š 1. java.lang.StringBuffer 클래슀

  • κ°€λ³€ λ¬Έμžμ—΄μ„ λ‚˜νƒ€λ‚΄λŠ”λ° μ‚¬μš©
  • StringBuffer κ°μ²΄λŠ” νŽΈμ§‘ κ°€λŠ₯ν•˜κΈ° λ•Œλ¬Έμ— 자주 λ³€κ²½λ˜λŠ” λ¬Έμžμ—΄ ν‘œμ‹œ
  • 객체 μƒμ„±μ‹œ μ—¬μœ  곡간을 ν• λ‹Ή 받을 수 있음
StringBuffer s = new StringBuffer("hi");

πŸ“š 2. StringBuffer 클래슀의 μ£Όμš” λ©”μ„œλ“œ

  • StringBuffer둜 λ§Œλ“œλŠ” λ¬Έμžμ—΄λ“€μ€ λ°˜λ“œμ‹œ toString을 톡해 객체 λ³€ν™˜ν•΄μ•Όν•œλ‹€.
λ©”μ„œλ“œ μ„€λͺ…
StringBuffer append(String str) str μŠ€νŠΈλ§μ„ 슀트링 버퍼에 덧뢙인닀
int capacity 슀트링 λ²„νΌμ˜ ν˜„μž¬ 크기λ₯Ό 리턴
StringBuffer delete(int start, int end) start μœ„μΉ˜μ—μ„œ end μœ„μΉ˜ μ•žκΉŒμ§€ λΆ€λΆ„ λ¬Έμžμ—΄ μ‚­μ œ
StringBuffer insert(int offset, String str) str μŠ€νŠΈλ§μ„ 슀트링 λ²„νΌμ˜ offset μœ„μΉ˜μ— μ‚½μž…
StringBuffer replace(int start, int end,
String str)
슀트링 버퍼 λ‚΄μ˜ start μœ„μΉ˜μ˜ λ¬ΈμžλΆ€ν„° endκ°€ μ§€μ •ν•˜λŠ” 문자 μ•žμ˜
μ„œλΈŒ μŠ€νŠΈλ§μ„ str둜 λŒ€μΉ˜
StringBuffer reverse() 슀트링 버퍼 λ‚΄μ˜ λ¬Έμžλ“€μ„ λ°˜λŒ€ μˆœμ„œλ‘œ λ³€κ²½
void setLength(int newLength) 슀트링 버퍼 λ‚΄ λ¬Έμžμ—΄ 길이λ₯Ό newLength둜 μž¬μ„€μ •, ν˜„μž¬ 길이보닀 큰 경우 λ„λ¬Έμžλ‘œ μ±„μš°λ©° μž‘μ€ 경우 κΈ°μ‘΄ λ¬Έμžμ—΄μ΄ 잘림

πŸ“Œ V. java.lang.Math 클래슀

πŸ“š 1. java.lang.Math 클래슀

  • κΈ°λ³Έ μ‚°μˆ  μ—°μ‚° λ©”μ„œλ“œλ“€μ΄ 제곡
  • λͺ¨λ“  λ©”μ„œλ“œλ“€μ€ static으둜 μ„ μ–Έλ˜μ–΄ 제곡
λ©”μ„œλ“œ μ„€λͺ…
int abs(int num) num의 μ ˆλŒ€κ°’μ„ 리턴
double sin(double angle) angle의 sin 값을 되돌렀쀌 (μ‚Όκ°ν•¨μˆ˜)
double sqrt(double num) num의 제곱근 값을 되돌렀쀌
double pow(double num, double power) num^power, num의 power μŠΉμ„ 되돌렀쀌
double random μ˜μ‚¬ λ‚œμˆ˜ λ°œμƒ

πŸ“Œ VI. java.util.Calendar ν΄λž˜μŠ€

πŸ“š 1. java.util.Calendar ν΄λž˜μŠ€

  • μ‹œκ°„κ³Ό λ‚ μ§œ 정보 μ €μž₯ 및 관리
  • λ…„, μ›”, μš”μΌ, μ‹œ, λΆ„, 초, λ°€λ¦¬μ΄ˆ, μ˜€μ „, μ˜€ν›„
ν•„λ“œ 의미 ν•„λ“œ 의미
YEAR 년도 DAY_OF_MONTH ν•œ λ‹¬μ˜ λ‚ μ§œ
MONTH 달 (0~11) DAY_OF_WEEK ν•œ 주의 μš”μΌ
HOUR μ‹œκ°„ (0~11) AM_PM μ˜€μ „μΈμ§€ μ˜€ν›„μΈμ§€ ꡬ뢄
HOUR_OF_DAY 24μ‹œκ°„μ„ κΈ°μ€€μœΌλ‘œ ν•œ μ‹œκ°„ MINUTE λΆ„
SECOND 초 MILLISECOND λ°€λ¦¬μ΄ˆ

πŸ“š 2. Calendar 객체 생성

  • ν˜„μž¬ λ‚ μ§œμ™€ μ‹œκ° 정보λ₯Ό κ°€μ§€λŠ” 객체λ₯Ό 생성
Calendar now = Calendar.getInstance();
  • λ‚ μ§œ / μ‹œκ°„ μ–»κΈ°
int y = now.get(Calendar.YEAR);
int m = now.get(Calendar.MONTH) + 1; //1월이 0μ›”λ‘œ μ €μž₯λ˜μ–΄ μžˆμ–΄ +1
  • λ‚ μ§œ μ‹œκ°„ μ„€μ •
now.clear();
now.set(2022, 10, 6); 	// νŠΉμ • λ‚ μ§œ 지정
now.set(Calendar.HOUR_OF_DAY, 1);
now.set(Calendar.MINUTE, 30);

 


πŸ“Œ VII. java.util.Random ν΄λž˜μŠ€

πŸ“š 1. java.util.Random ν΄λž˜μŠ€

  • μ˜μ‚¬ λ‚œμˆ˜(pseudorandom number)λ₯Ό μƒμ„±ν•˜λŠ” λ©”μ†Œλ“œ 제곡
  • Math.Random은 0~1사이 λ‚œμˆ˜λ₯Ό μƒμ„±ν•˜κΈ°μ— 더 ν™œμš©λ„κ°€ λ†’μŒ
λ©”μ„œλ“œ μ„€λͺ…
nextInt() λͺ¨λ“  κ°€λŠ₯ν•œ μ •μˆ˜ κ°’ λ²”μœ„μ˜ λ‚œμˆ˜λ₯Ό 리턴
nextInt(int n) 0κ³Ό n-1 사이에 μžˆλŠ” μ •μˆ˜ν˜• λ‚œμˆ˜λ₯Ό 리턴
nextFloat() 0.0 이상 1.0 미만 μ‚¬μ΄μ˜ λ‚œμˆ˜ 리턴

 

 

.

Contents

ν¬μŠ€νŒ… μ£Όμ†Œλ₯Ό λ³΅μ‚¬ν–ˆμŠ΅λ‹ˆλ‹€

이 글이 도움이 λ˜μ—ˆλ‹€λ©΄ 곡감 λΆ€νƒλ“œλ¦½λ‹ˆλ‹€.