///////
Search
🍃

Math, StringBuffer, Calendar

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란?

JDK 1.0 에서는 Date 클래스를 이용하여 날짜에 대한 간단한 처리만 가능
JDK 1.1부터 자바에서 날짜와 시간에 관한 데이터 처리를 제공하는 추상클래스인 Calendar 클래스 등장
더이상 Date 클래스는 JAVA에서 권장하지 않음
Calendar 클래스가 추상 클래스로 선언된 이유
Calendar 클래스의 메소드들은 모두 static 으로 구현되어 있어 별도로 객체 생성을 하지 않고 사용
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
복사