일반 애플리케이션이라고 불리는 프로그램을 만든 경우는 드물다.
거의 실무에서는 웹이나 엔터프라이즈급의 솔루션을 만들 때 사용.
1. StringBuffer, StringBuilder
String 클래스와 거의 유사한 메소드들을 가지고 있고, 잦은 변경 시에도 속도도 훨씬 좋다.
1) 문자열이 느린 원인? immutable
2) 문자열 연산 시 문자열을 새로 만든다.
3) 해결책 : StringBuffer / StringBuilder
가. StringBuilder 주요 메소드
append() : + 대신 사용
reverse() : 역순으로 만들어서 반환
나. 객체 안의 데이터를 내부적으로 변경, 새로운 객체를 만들지 않는다.
4) StringBuffer, StringBuilder : 내용 변경 시 새로운 객체가 만들어지지 않고 같 은
객체가 계속해서 사용되는 형태
5) String과 StringBuilder의 속도 차이는 엄청나다.
2. Date, Calendar, long : 시간을 데이터로 처리하기 위한 장치
1) System.currentTimeMillis() : 운영체제의 시각을 long값으로 변환하여 알려줌.
2) Calendar
가. Calenar 객체 얻는 방법
Calendar.getInstance();
new GregorianCalendar();
나. get()
다. set() 메소드는 Calender 객체의 데이터를 변경할 때 사용한다.
ex. cal2.set(Calendar.YEAR, 2010);
라. 요일 : Calendar.DAY_OF_WEEK – 숫자로 표기
마. 말일 : getActualMaximum(Calendar.DATE)
3) Date는 Calendar와 long의 중간 고리
Deprecated
가. 생성자 : new Date(), new Date(long)
나. Calendar에서 Date로, Date에서 long으로
Calendar -> Date : getTimer();
Calender -> long : getTimeMillis();
Date -> Calendar : setTimer();
long -> Calendar : setTimeMillis();
3. java.util.Random : 랜덤한 데이터
Math.random() : double에 해당하는 임의의 실수를 발생
Random 클래스 : seed 값을 지정, 추가 메소드
1) Random 클래스의 생성자와 메소드
가. new Random() : Seed값 지정하지 않는다.
나. new Random(long seed) : Seed값 지정
2) Random 클래스를 이용한 임의의 숫자 만들기
가. 소수 : nextFloat(), nextDouble()
나. 정수 : nextInt(), nextInt(int n), nextLong()
다. newInt(10) : 0에서 9까지의 정수
4. java.util.Scanner : Scanner의 기능
1) java.util.Scanner 클래스의 주요 생성자와 메소드
가. Scanner(File file) : 지정된 파일에서 데이터를 읽는다.
나. Scanner(InputStream in) : 입출력 프로그래밍
다. Scanner(InputStream in, String encoding)
- 입출력 프로그래밍, 지정된 문자열의 방식 적용
2) Scanner로 파일을 읽을 수 있다.
가. Scanner s = new Scanner(System.in);
나. Scanner s = new Scanner(new File(“aaa.txt”));
3) nextxxx()와 nextLine()의 차이
13\n\r
4) next()를 이용하면 띄어쓰기를 구분할 수 있다.
가. next() : 공백 앞의 문자들을 끊어내서 문자열로 반환
나. nextLint() : \n까지 데이터를 읽어들인 후 \n이전 문자를 반환
5) Scanner는 JDK1.5 이상에서만 사용 가능
5. 정확한 소수 : BigDecimal
소수점 처리를 정수 스타일로 연산, 소수점 이하 몇 자리까지를 처리할 것인지 언급
BigDecimal bl = new BigDecimal(12345678);
BigDecimal result = bl.add(new BigDecimal(1.23), new MathContext(10));
- 숫자를 10개까지 정확하게 연산한다.
6. Wrapper 클래스 : 기본 자료형을 객체 자료형으로
1) Wrapper 클래스는 기본 자료형을 객체 자료형으로
Integer data = new Integer(3);
int intValue = data.intValue();
double doubleValue = data.doubleValue();
float floatValue = data.floatValue();
String stringValue = data.toString();
2) Wrapper 클래스는 모두 immutable
연산 후에는 새로운 녀석이 만들어진다.
3) JDK1.5의 Autoboxing/Unboxing 기능
가. Autoboxing : 자동으로 Wrapper 클래스로 변환
int a = 10;
Integer j = a;
나. Unboxing : Wrapper 자료형을 기본 자료형으로 자동 변환
Integer j = new Integer(10);
int a = j;
7. 잠시 후에 실행하게 하는 Timer / TimerTask
1) TimerTask 클래스 상속 : run() 메소드에 작업
2) Timer에 schedule로 등록
가. long : 밀리세컨드
나. java.util.Date : 지정된 시간
8. 데이터를 마음대로 보여주는 Formatter
1) System.out.printf()
가. 정수 System.out.printf(“변수 a의 값은 %d\n”,a);
나. 문자열 System.out.printf(“문자열은 %s\n”,str1);
다. 소수 System.out.printf(“DOUBLE D %.3f\n”,d);
라. 날짜 System.out.printf(“년/월/요일은 %ty %tm %ta\n”,cal,cal,cal);
2) DecimalFormat과 SimpleDateFormat
DecimalFormat df = new DecimalFormat(“#000.00#”);
# : 없으면 출력하지 않는다
0 : 없으면 무조건 0으로 출력
3) Formatter 클래스
formatter.format(“%.3f”, 123.45678);
댓글 없음:
댓글 쓰기