java API

moonseunghaΒ·2022λ…„ 12μ›” 28일
0

eclipse - java programming

λͺ©λ‘ 보기
10/11

πŸ“ŒMath κ΄€λ ¨ 클래슀

  • java.lang.Math
  • λͺ¨λ“  ν•„λ“œκ°€ μƒμˆ˜ ν•„λ“œμ΄κ³  λͺ¨λ“  λ©”μ†Œλ“œκ°€ static λ©”μ†Œλ“œμž„
    즉, 클래슀λͺ…. 으둜 μ ‘κ·Ό κ°€λŠ₯
  • μƒμ„±μž private으둜 λ˜μ–΄μžˆμŒ
  • ν•œλ²ˆλ§Œ λ©”λͺ¨λ¦¬ μ˜μ—­μ— μ˜¬λ €λ†“κ³  μž¬μ‚¬μš©ν•˜λŠ” 싱글톀 νŒ¨ν„΄

- Math κ΄€λ ¨ λ©”μ†Œλ“œ

πŸ“ŒString κ΄€λ ¨ 클래슀

- String 클래슀

  • λ¬Έμžμ—΄ κ°’ μˆ˜μ • λΆˆκ°€λŠ₯, immutable(λΆˆλ³€)
  • μˆ˜μ •μ‹œ μˆ˜μ •λœ λ¬Έμžμ—΄μ΄ μƒˆλ‘œ ν• λ‹Ήλ˜μ–΄ μƒˆ μ£Όμ†Œλ₯Ό λ„˜κΉ€
  • 단점 : λΉˆλ²ˆν•˜κ²Œ 값을 λ³€κ²½ν•  경우 GCκ°€ 계속 기쑴의 값듀을 μ§€μ›Œμ€˜μ•Όν•¨
  • 이미 toString, equals, hashcode λ©”μ†Œλ“œ μ˜€λ²„λΌμ΄λ”© λ˜μ–΄μžˆμŒ
  • μƒμ„±μžλ₯Ό μ΄μš©ν•˜κ±°λ‚˜, λ¦¬ν„°λŸ΄κ°’μœΌλ‘œ 생성 κ°€λŠ₯

StringPool

  • λ¦¬ν„°λŸ΄ μ œμ‹œμ‹œ μƒμˆ˜ν’€(StringPool)μ˜μ—­μ— 올라감
  • StringPoolμ—λŠ” λ™μΌν•œ λ¬Έμžμ—΄ κ°€μ§ˆ 수 μ—†μŒ
package μ„ μ–ΈλΆ€
Class μž‘μ„±λΆ€
	method μž‘μ„±λΆ€
    	String str1 = new String("Hello");
        
        String str2 = "Hello";

- String κ΄€λ ¨ λ©”μ†Œλ“œ

동기화

  • ν•œ μžμ›μ— λŒ€ν•΄ μ—¬λŸ¬ μŠ€λ ˆλ“œκ°€ μ ‘κ·Όν•˜λ €ν• λ•Œ ν•œ μ‹œμ μ—μ„œ ν•˜λ‚˜μ˜ μŠ€λ ˆλ“œλ§Œ μ‚¬μš©λ  수 있게 ν•˜λŠ”κ²ƒ

- StringBuilder 클래슀

  • λ¬Έμžμ—΄ κ°’ μˆ˜μ • κ°€λŠ₯, mutable(κ°€λ³€)
  • λ¦¬ν„°λŸ΄κ°’ λŒ€μž…μ€ String만 κ°€λŠ₯
  • μˆ˜μ •, μ‚­μ œ 등이 κΈ°μ‘΄ λ¬Έμžμ—΄μ— μˆ˜μ •λ˜μ–΄ 적용
  • κΈ°λ³Έ 16문자 크기둜 μ§€μ •λœ 버퍼λ₯Ό μ΄μš©ν•˜λ©° 크기 증가 κ°€λŠ₯
  • κΈ°λ³Έ μƒμ„±μž(new StringBuilder()), λ§€κ°œλ³€μˆ˜ μƒμ„±μž(new StringBuilder(int), new StringBuilder(String)) 쑴재
    (new StringBuilder(int)) λŠ” intκ°’λ§ŒνΌμ˜ μˆ˜μš©λŸ‰μ„ 가진 StringBuilder 생성
    (new StringBuilder(String)) λŠ” String.length()+16만큼의 μˆ˜μš©λŸ‰κ³Ό String을 λ‹΄κ³ μžˆλŠ” StringBuilder 생성
  • μ“°λ ˆλ“œ safeκΈ°λŠ₯(동기화)을 μ œκ³΅ν•˜μ§€ μ•Šμ•„ 속도 빠름
package μ„ μ–ΈλΆ€
Class μž‘μ„±λΆ€
	method μž‘μ„±λΆ€
    	StringBuilder sb1 = new StringBuilder();
        StringBuilder sb2 = new StringBuilder(73);
        StringBuilder sb3 = new StringBuilder("λ¬Έμžμ—΄");      

- StringBuffer 클래슀

  • StringBuilder와 λ™μΌν•˜λ‚˜ μ“°λ ˆλ“œ safeκΈ°λŠ₯(동기화) μ œκ³΅ν•˜μ—¬ 속도 느림(μ„±λŠ₯ μ €ν•˜ μš”μΈ)

- StringBuilder κ΄€λ ¨ λ©”μ†Œλ“œ

- StringTokenizer 클래슀

  • String ν΄λž˜μŠ€μ—μ„œ μ œκ³΅ν•˜λŠ” split()λ©”μ†Œλ“œμ™€ 같은 κΈ°λŠ₯을 ν•˜λŠ” 클래슀
  • μƒμ„±μ‹œ 전달받은 λ¬Έμžμ—΄μ„ κ΅¬λΆ„μžλ‘œ λ‚˜λˆ„μ–΄ 각 토큰에 μ €μž₯
  • μ›ν•˜λŠ” 토큰을 κΊΌλ‚Ό 수 μ—†κ³  λ‹΄κΈ΄ μˆœμ„œλŒ€λ‘œ λ‚˜μ˜΄
  • μΌνšŒμ„±μ΄λΌ μž¬μ‚¬μš© λΆˆκ°€

countTokens() λ©”μ†Œλ“œ

  • ν† ν°μ˜ 개수λ₯Ό λ°˜ν™˜ν•΄μ£ΌλŠ” λ©”μ†Œλ“œ

nextToken() λ©”μ†Œλ“œ

  • λ‹€μŒ 토큰을 λΆˆλŸ¬μ˜€λŠ” λ©”μ†Œλ“œ

hasMoreTokens() λ©”μ†Œλ“œ

  • 토큰이 λ‚¨μ•„μžˆλŠ”μ§€ ν™•μΈν•˜λŠ” λ©”μ†Œλ“œ
package μ„ μ–ΈλΆ€
Class μž‘μ„±λΆ€
	method μž‘μ„±λΆ€
		String str = "AA|BB|CC";
        
		StringTokenizer st = new StringTokenizer(str, "|");
        
		while(st.hasMoreTokens()){
			System.out.println(st.nextToken());
		}

πŸ“ŒWrapper 클래슀

  • Primitive Data Type을 객체화 ν•΄μ£ΌλŠ” 클래슀

κΈ°λ³Έμžλ£Œν˜•μ„ 객체화 ν•˜λŠ” 경우

  • λ©”μ†Œλ“œ ν˜ΈμΆœν•΄μ•Όν• λ•Œ
  • λ§€κ°œλ³€μˆ˜κ°€ κΈ°λ³Έμžλ£Œν˜•μ΄ μ•„λ‹Œ 객체 νƒ€μž…μ„ μš”κ΅¬ν• λ•Œ
  • λ‹€ν˜•μ„±μ„ μ μš©ν•˜κ³ μ‹Άμ„λ•Œ
κΈ°λ³Έμžλ£Œν˜•
Primitive Data Type
Wrapper Class
booleanBoolean
byteByte
charCharacter
shortShort
intInteger
longLong
floatFloat
doubleDouble

- Boxing : κΈ°λ³Έ μžλ£Œν˜• β†’ Wrapper 클래슀 μžλ£Œν˜•

  1. 객체 생성 ꡬ문을 ν†΅ν•œ 방법
package μ„ μ–ΈλΆ€
Class μž‘μ„±λΆ€
	method μž‘μ„±λΆ€
		int num = 10;
        
        Integer i = new Integer(num);
  1. 객체 생성 없이 κ³§λ°”λ‘œ λŒ€μž… (AutoBoxing)
package μ„ μ–ΈλΆ€
Class μž‘μ„±λΆ€
	method μž‘μ„±λΆ€
		Integer i = num1;

- UnBoxing : Wrapper 클래슀 μžλ£Œν˜• β†’ κΈ°λ³Έ μžλ£Œν˜•

  1. Wrapper ν΄λž˜μŠ€μ—μ„œ μ œκ³΅ν•˜λŠ” xxxValue() λ©”μ†Œλ“œ 이용
package μ„ μ–ΈλΆ€
Class μž‘μ„±λΆ€
	method μž‘μ„±λΆ€
		int num = i.intValue();
  1. λ©”μ†Œλ“œ μ‚¬μš© 없이 κ³§λ°”λ‘œ λŒ€μž… (AutoUnBoxing)
package μ„ μ–ΈλΆ€
Class μž‘μ„±λΆ€
	method μž‘μ„±λΆ€
		int num = i;

- String β†’ κΈ°λ³Έ μžλ£Œν˜•

  • Wrapper ν΄λž˜μŠ€μ—μ„œ μ œκ³΅ν•˜λŠ” parseXxx() λ©”μ†Œλ“œ 이용
  • νŒŒμ‹± : λ¬Έμžμ—΄μ„ κΈ°λ³Έ μžλ£Œν˜•μœΌλ‘œ λ°”κΎΈλŠ”κ²ƒ
package μ„ μ–ΈλΆ€
Class μž‘μ„±λΆ€
	method μž‘μ„±λΆ€
		      byte b =    Byte.parseByte("1");
 		     short s =   Short.parseShort("2");
 		       int i = Integer.parseInt("3");
 		      long l =    Long.parseLong("4");
  		     float f =   Float.parseFloat("0.1");
 		    double d =  Double.parseDouble("0.2");
		boolean bool = Boolean.parseBoolean("true");
  		      char c =   "abc".charAt(0);

- κΈ°λ³Έ μžλ£Œν˜• β†’ String

  • String ν΄λž˜μŠ€μ—μ„œ μ œκ³΅ν•˜λŠ” valueOf() λ©”μ†Œλ“œ 이용
package μ„ μ–ΈλΆ€
Class μž‘μ„±λΆ€
	method μž‘μ„±λΆ€
		   String b =      Byte.valueOf((byte)1).toString();
		   String s =     Short.valueOf((short)2).toString();
		   String i =   Integer.valueOf(3).toString();
		   String l =      Long.valueOf(4L).toString();
		   String f =     Float.valueOf(0.1f).toString();
		   String d =    Double.valueOf(0.2).toString();
		String bool =   Boolean.valueOf(true).toString();
		  String ch = Character.valueOf('a').toString();

πŸ“Œλ‚ μ§œ κ΄€λ ¨ 클래슀

- Date 클래슀

  • μ‹œμŠ€ν…œμœΌλ‘œλΆ€ν„° ν˜„μž¬ λ‚ μ§œ, μ‹œκ°„ 정보λ₯Ό κ°€μ Έμ™€μ„œ λ‹€λ£° 수 있게 λ§Œλ“€μ–΄μ§„ 클래슀
  • κΈ°λ³Έ μƒμ„±μž(new Date()), λ§€κ°œλ³€μˆ˜ μƒμ„±μž(new Date(λ…„, μ›”, 일)) 쑴재
    (new Date(λ…„, μ›”, 일)) λŠ” λ…„+1900, μ›”-1, 일 생성
  • setter λ©”μ†Œλ“œλ‘œ κ°’ λ³€κ²½ κ°€λŠ₯
package μ„ μ–ΈλΆ€
Class μž‘μ„±λΆ€
	method μž‘μ„±λΆ€
		Date today = new Date();
        Date christmas = new Date(2022-1900, 12-1, 25);
        
        today.setYear(2022-1900);
        today.setMonth(12-1);
        today.setDate(25);

πŸ“ŒFormat κ΄€λ ¨ 클래슀

- SimpleDateFormat 클래슀

  • Date의 λ‚ μ§œ, μ‹œκ°„ 정보λ₯Ό μ›ν•˜λŠ” format으둜 좜λ ₯ν•˜λŠ” κΈ°λŠ₯ 제곡
  • java.text νŒ¨ν‚€μ§€μ— μ†ν•΄μžˆμŒ
  • SimpleDateFormat ν΄λž˜μŠ€μ—μ„œ μ œκ³΅ν•˜λŠ” format() λ©”μ†Œλ“œ 이용
package μ„ μ–ΈλΆ€
Class μž‘μ„±λΆ€
	method μž‘μ„±λΆ€
    	Date christmas = new Date(2022-1900, 12-1, 25);
        
		SimpleDateFormat sdf = new SimpleDateFormat("yyyyλ…„ MMμ›” dd일(E) hhμ‹œ mmλΆ„ ss초");
        
        System.out.println(sdf.format(christmas));

- Format λ³€ν™˜ 문자

λ°”λ‘œκ°€κΈ°

- escape 문자

λ°”λ‘œκ°€κΈ°

0개의 λŒ“κΈ€