- String 관련 클래스
- String 클래스
- 문자열 값 수정 불가능, immutable(불변) (새롭게 공간이 할당됨)
- 수정 시 수정된 문자열이 새로 할당 되어 새 주소를 넘김
- String Pool, Singleton
- StringBuffer 클래스
- 문자열 값 수정 가능, mutable(가변)
- 수정, 삭제 등이 기존 문자열에 수정되어 적용
- 기본 16문자 크기로 지정된 버퍼를 ㅣ용하면 크기 증가 가능
- 쓰레드 safe기능 제공(성능 저하 요인)
- StringBuilder 클래스
- StringBuffer와 동일하나 쓰레드 safe기능을 제공하지 않음
- 메소드 체이닝
- StringTokenizer 클래스
- String클래스에서 제공하는 split()메소드와 같은 기능을 하는 클래스로 생성 시 전달받은 문자열을 구분자로 나누어 각 토큰에 저장
- StringBuffer 클래스
- String 클래스
* StringBuffer, StringBuilder 출력 실습
package com.chap02_StringBuffer_StirngBuilder;
public class Run {
public static void main(String[] args) {
//method1();
//method2();
method3();
}
public static void method1() {
StringBuilder sb = new StringBuilder("안녕 반가워");
System.out.println(sb);
System.out.println(sb.capacity());
System.out.println(sb.length());
}
public static void method2() {
String str = "반가워! ";
System.out.println(System.identityHashCode(str));
str += "난 String이라고 해";
System.out.println(System.identityHashCode(str));
StringBuffer sbf = new StringBuffer("안녕! ");
System.out.println(System.identityHashCode(sbf));
sbf.append("난 StringBuffer야");
System.out.println(System.identityHashCode(sbf));
}
public static void method3() {
StringBuilder sb = new StringBuilder("난 ");
//append
sb.append("잠이 온다").append("~!");
//insert
sb.insert(0, "늦게 잠을 자느라");
//delete(0,10)
sb.delete(0, 10);
//reverse
sb.reverse();
System.out.println(sb);
}
}
* StringTokenizer 실습
package com.chap03_stringTokenizer;
import java.util.StringTokenizer;
public class Run {
//countToken : 토큰 수 파악, nextToken : 토큰 읽어오기, hasMoreTokens : 토큰이 남아있는지 확인 후 boolean값 리턴
public static void main(String[] args) {
String str = "이창진,19,경기도 화성시,남";
StringTokenizer st = new StringTokenizer(str,",");
System.out.println(st.countTokens());
while(st.hasMoreTokens()) {
System.out.println(st.nextToken());
}
}
}
- Wrapper 클래스
- Primitive Data Type을 객체화 해주는 클래스
- String을 기본 자료형으로 바꾸기
- 기본 자료형을 String으로 바꾸기
- String a = Byte.valueOf((byte)1).toString();
- valueOf()와 toString() 차이
- String.valueOf() 메서드를 사용하면 변환 값이 null 이면 그 값을 문자열("null")로 반환하는 반면에 toString() 메서드는 NullPointerException 오류를 발생
* Wrapper 클래스 실습
package com.chap04_wrapperClass;
public class Run {
public static void main(String[] args) {
//boxing 기본 자료형 형태들 객체화됨
Integer i = new Integer(10);
Double d = new Double(15);
//autoBoxing
Integer i2 = 10;
System.out.println(i.equals(i2));
System.out.println(i.compareTo(i2));
//같을때 0, i2가 크면 음수, i가 크면 양수
//unBoxing 객체를 기본 자료형으로 바꿈
int pi =i.intValue();
double pd = d.doubleValue();
//autoUnBoxing
int a = i;
int b = i2;
abox(a+b);
//형변환 : int >> autoBoxing >> Integer >> 다형성 >>Object
}
public static void abox(Object obj) {
System.out.println(obj);
System.out.println((Integer)obj);
System.out.println((int)obj);
}
}
- 날짜 관련 클래스
- Calendar 클래스
- 생성자가 protected이기 때문에 new연산자를 통해 객체 생성 불가능
- getInstance() 메소드를 통해서 객체 생성
- GregorianCalendar 클래스
- Calendar 클래스의 후손 클래스
- 년, 월, 일, 시, 분, 초 정보를 필드를 이용하여 다룰 수 있음
- SimpleDateFormat 클래스
- Date의 날짜, 시간 정보를 원하는 format으로 출력하는 기능 제공
- java.text 패키지에 속해있음
- 해당 클래스의 forma() 메소드 활용
- Formatter 클래스
- 값 출력 시 format 적용하여 출력
- Formatter 객체 생성 시 변환된 결과를 보낼 곳의 정보를 생성자 인자로 전달
- 해당 클래스의 forma() 메소드 활용
- Calendar 클래스
* 날짜 관련 클래스 실습
package com.chap05_date;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
public class Run {
public static void main(String[] args) {
//Date originTime = new Date();
//Date originTime = new Date(0L); //처음 기준
//Date originTime2 = new Date(1000L);
String originTime = new Date(0L).toGMTString();
System.out.println(originTime);
Date day = new Date(123,9-1,9);
System.out.println(day);
Date today = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");
System.out.println(sdf.format(today));
System.out.println(today.getDate());
System.out.println("---------");
Calendar calendar = Calendar.getInstance();
System.out.println(calendar);
calendar.set(2022, 9-1, 9);
System.out.println(calendar.get(1)+"년 "
+(calendar.get(Calendar.MONTH)+1)+"월 "
+calendar.get(Calendar.DATE)+"일 "
+calendar.get(Calendar.HOUR)+":"+calendar.get(Calendar.MINUTE)+":"+calendar.get(Calendar.SECOND));
sdf = new SimpleDateFormat("yyyy년 MM월 dd일 hh:mm:ss");
System.out.println(sdf.format(calendar.getTime()));
System.out.println("=====그레고리안=====");
GregorianCalendar gc = new GregorianCalendar();
System.out.println(gc);
System.out.println(gc.getTime()); //date 객체로 출력
System.out.println(gc.get(Calendar.YEAR));
System.out.println(gc.get(GregorianCalendar.MONTH)+1);
gc.set(2019, 12-1, 25);
System.out.println(gc.getTime());
}
}
👆🏻
toGMTString() : 그리니치 표준시(GMT)를 사용하여 문자열로 변환된 일자를 반환한다.
'JAVA' 카테고리의 다른 글
[JAVA #9] 12. 입출력(IO) (0) | 2023.03.07 |
---|---|
[Java #9 실습] 11. 예외처리(Exception) (0) | 2023.03.07 |
[Java 실습 #8] 9. 다형성 (0) | 2023.03.02 |
[JAVA #8] 9. 다형성(Polymorphism) (1) | 2023.03.02 |
[JAVA #7] 8. 상속(Inherit) (0) | 2023.02.28 |