JAVA(247)
-
[Java][time] 형식화 클래스 : DecimalFormat, SimpleDateFormat, ChoiceFormat, MessageFormat
1. DecimalFormat DecimalFormat 클래스는 형식화 클래스 중에서 숫자를 형식화하는데 사용되는 클래스입니다. import java.text.DecimalFormat; public class DecimalFormatEx1 { public static void main(String[] args) { double number = 1234567.89; String[] pattern = { "0", "#", "0.0", "#.#", "0000000000.0000", "##########.####", "#.#-", "-#.#", "#,###.##", "#,####.##", "#E0", "0E0", "##E0", "00E0", "####E0", "0000E0", "#.#E0", "0.0E0", "..
2022.06.16 -
[Java][time] 날짜와 시간 : Calendar, Date
1. Calendar와 Date java.util.Date 클래스 : 날짜와 시간을 다룰 목적으로 JDK 1.0부터 제공되어온 클래스 (deprecated) java.util.Calendar 클래스 : 날짜와 시간을 다룰 목적으로 JDK 1.1부터 제공되어온 클래스 Calendar 클래스의 객체 생성 Calendar는 추상 클래스이기 때문에 직접 객체를 생성할 수 없습니다. 메서드를 통해서 완전히 구현된 클래스의 인스턴스를 얻어야 합니다. Calendar cal = Calendar.getInstance(); Date와 Calendar간의 변환 1. Calendar를 Date로 변환 Calendar cal = Calendar.getInstnace(); ... Date d = new Date(cal.getT..
2022.06.16 -
[Java][Effective Java] item 12. toString을 항상 재정의하라
1. toString의 규약 toString의 규약은 "모든 하위 클래스에서 이 메서드를 재정의하라"입니다. 2. toString을 재정의 해야하는 이유는 무엇인가? toString을 재정의함으로써 인스턴스 자체를 참조할때 인스턴스 멤버에 대한 정보를 표시할 수 있기 때문이다. toString을 재정의하지 않으면 인스턴스를 출력시 클래스_이름@16진수로_표시한_해시코드를 반환할 뿐이다. toString을 재정의한 클래스를 사용하는 시스템은 디버깅이 쉽게 됩니다. 인스턴스를 참조하는 컴포넌트가 오류 메시지를 로깅(logging)할때 자동으로 호출하는데 이때 메시지에 유용한 로그를 남길 수 있습니다. 3. toString 구현시 문서화 toString을 구현할 때 반환값의 포맷을 문서화할지 정애야 합니다. ..
2022.06.13 -
[Java][Effective Java] item 11. equals를 재정의하려거든 hashCode도 재정의하라
1. equals를 재정의 할 때 hashCode도 재정의해야 하는 이유 equals를 재정의하고 hashCode를 재정의하지 않으면 hashCode 일반 규약을 거기게 되어 해당 클래스의 인스턴스를 HashMap이나 HashSet과 같은 컬렉션의 원소로 사용할때 문제를 일으킵니다. Object 명세 규약 equals 비교에서 사용되는 정보가 변경되지 않았다면, 애플리케이션이 실행되는 동안 그 객체의 hashCode 메서드는 몇 번을 호출해도 일관되게 항상 같은 값을 반환해야 합니다. 단, 애플리케이션이 다시 실행한다면 이 값이 달라져도 상관없습니다. equals(Object)가 두 객체를 같다고 판단했다면, 두 객체의 hashCode는 똑같은 값을 반환해야 합니다. 두 인스턴스가 물리적으로 같은 경우 ..
2022.06.10 -
[Java] 8. 예외처리(exception handling)
1. 프로그램 오류 에러의 종류 컴파일 에러(compile-time error) : 컴파일 시에 발생하는 에러 런타임 에러(runtime error) : 실행 시에 발생하는 에러 논리적 에러(logical error) : 실행은 되지만, 의도와 다르게 동작하는 것 에러와 예외의 비교 에러(error) : 프로그램 코드에 의해서 수슬될 수 없는 심각한 오류, 예를 들어 메모리 부족(OutOfMemoryError) 또는 스택오버플로우(StackOverflowError)가 존재합니다. 예외(exception) : 프로그램 코드에 의해서 수습 될 수 있는 다소 미약한 오류 2. 예외 클래스의 계층 구조 예외 클래스의 분류 Exception 클래스와 그 자손들 : 사용자의 실수와 같은 외적인 요인에 의해 발생하는..
2022.06.08 -
[Java][Effective Java] item 10. equals는 일반 규약을 지켜 재정의하라 (일관성)
1. equals 메서드 재정의시 지켜야 하는 일반 규약 : 일관성(consistency) 일관성은 두 객체가 같다면(어느 하나 혹은 두 객체 모두가 수정되지 않는 한) 앞으로도 영원히 같아야 한다는 의미입니다. 가변 객체(mutable object)는 비교 시점에 따라 서로 다를수도 혹은 같을 수도 있는 반면, 불변 객체(immutable object)는 한번 다르면 끝까지 달라야 합니다. 따라서 불변 클래스로 만들기로 했다면 equals가 한번 같다고 한 객체와는 영원히 같다고 답하고, 다르다고 한 객체와는 영원히 다르다고 답하도록 만들어야 합니다. 일관성 조건을 만족시키지 않는 조건 클래스가 불변 또는 가변이든 equals의 판단에 신뢰할 수 없는 자원이 끼어드는 경우 예를 들어 java.net.U..
2022.06.07