Math 클래스
지수나 로그, 제곱근, 삼각함수와 같은 기본적인 수치 연산을 위한 메소드들을 제공한다.
•
외울 필요는 없고 이런 메소드들이 있다고 알고만 있으면 된다.
삼각함수
double radian45 = Math.toRadians(45);
System.out.println(" 사인 45" + Math.asin(radian45));
System.out.println("코사인 45" + Math.cos(radian45));
System.out.println("탄젠트 45" + Math.tan(radian45));
// 사인 450.9033391107665127
//코사인 450.7071067811865476
//탄젠트 450.9999999999999999
Java
복사
제곱근
System.out.println("2의 16승: " + Math.pow(2, 16));
//2의 16승: 65536.0
Java
복사
로그
System.out.println("로그 26: " + Math.log(25));
//로그 26: 3.2188758248682006
Java
복사
랜덤 숫자
System.out.println("랜덤 1~100: " + (int) (Math.random() * 100 + 1));
//랜덤 1~100: 90
Java
복사
파이
System.out.println("파이: " + Math.PI);
//파이: 3.141592653589793
Java
복사
기타
StringBuffer(=StringBuilder)
StringBuffer 등장
String클래스 문자열 변경 불가
String클래스
•
빈번하게 문자열을 변경하면 성능 부분에서 비효율
- 삽입 삭제가 빈번한 문자열 객체를 위해 StringBuffer, StringBuilder가 나옴
•
private final byte[] value; 상수-한번 초기화되면 변경 불가능
•
원본 보존의 법칙
StringBuffer(=StringBuilder)
StringBuffer
•
StringBuffer클래스에는 append()처럼 객체 자신을 반환하는 메서드들이 많다
•
String클래스와 같이 문자열을 저장하기 위한 char형 배열의 참조변수를 인스턴스변수로 선언 private char[] value;
•
equals() 오버라이딩 되어있지 않음(주소비교) - 오버라이딩 되어 있는 toString()을 호출하여 String인스턴스 얻은 후 equals메서드 사용하여 비교
StringBuilder 예제)
subString 실습 문제)
Calendar 클래스
Calendar란?
Calendar 객체 생성 방법
대표적인 Calendar 메소드
실습
Calendar 객체를 생성하면 현재 시간을 알 수 있다. 프로그램을 실행한 현재 시간이 4시에서 낮 12시 이전이면 "Good Morning"을, 오후 6시 이전이면 "Good Afternoon"을, 밤 10시 이전이면 "Good Evening"을, 그 이후는 "Good Night"을 출력하는 프로그램을 작성하라.
import java.util.Calendar;
public class CalendarTest { // 달력
public static void main(String[] args) {
Calendar now = Calendar.getInstance(); // Calendar 객체 생성 (현 시스템의 현재 날짜와 시간 정보)
// now는 현재 시간 값을 가지고 있음
/*
* System.out.print(now.get(Calendar.YEAR) + "년");
* System.out.print(now.get(Calendar.MONTH) + 1 + "월");
* System.out.println(now.get(Calendar.DATE) + "일");
* System.out.println("-------------------");
* System.out.print(now.get(Calendar.HOUR) + "시"); // 12시간 표형
* System.out.print(now.get(Calendar.HOUR_OF_DAY) + "시"); // 24시간 표현
* System.out.print(now.get(Calendar.MINUTE) + "분");
* System.out.print(now.get(Calendar.SECOND) + "초");
* System.out.println(now.get(Calendar.MILLISECOND));
* System.out.println("-------------------");
* System.out.print(now.get(Calendar.ZONE_OFFSET)); // [Asia/Seoul]을 int로 표현
* System.out.println(now.get(Calendar.DATE)); // 이번달의 마지막 날까지표현
*/
int hour = now.get(Calendar.HOUR_OF_DAY);
int minute = now.get(Calendar.MINUTE);
System.out.println("현재 시간은 " + hour + "시 " + minute + "분 입니다.");
if (hour >= 4 && hour < 12) {
System.out.println("Good Moring");
} else if (hour >= 12 && hour < 18) {
System.out.println("Good Afternoon");
} else if (hour >= 18 && hour < 22) {
System.out.println("Good Evening");
} else {
System.out.println("Good Night");
}
}
}
Java
복사