본문 바로가기

자바의정석

Java 형식화 클래스 DecimalFormat, SimpleDateFormat java.text패키지의 DecimalFormat(10진수 형식화), SimpleDateFormat(날짜 형식화) 1. DecimalFormat() - 10진수(숫자)를 원하는 형식으로 쉽게 출력 가능(10진수 -> 형식 문자열) double number = 1234567.89; DecimalFormat df = new DecimalFormat("#.#E0"); // 지수형식 String result = df.format(number); // result = "1.2E6" - 형식 문자열에서 10진수(숫자)를 뽑아내는 기능(형식 문자열 -> 10진수) DecimalFormat df = new DecimalFormat("#,###.##"); Number num = df.parse("1,234,567.89".. 더보기
Java 날짜와 시간, Calendar 클래스 1. 날짜와 시간 1) java.util.Date 날짜와 시간을 다룰 목적으로 만들어진 클래스(1995년 말, JDK 1.0) Date의 메서드는 거의 deprecated 되었지만 여전히 쓰이고 있음(뿌리가 깊다보니..) 2) java.util.Calendar Date클래스를 개선한 새로운 클래스(1997년 JDK 1.1)이지만 여전히 단점 존재 3) java.time패키지 Date와 Calender의 단점을 개선한 새로운 클래스 제공(2014년 JDK 1.8) - Date와 Calender는 날짜와 시간이 묶여서 처리되고, 불변되는 등의 여러가지 단점을 개선하였음 👉🏻 단점이 있음에도 불구하고 오랜기간 사용되어왔기 때문에 Date와 Calendar 알아두는 정도로 공부 2. Calendar 클래스 - .. 더보기
Java Number클래스 모든 숫자 래퍼 클래스의 조상 class Ex9_15 { public static void main(String[] args) { inti = new Integer("100").intValue(); inti2 = Integer.parseInt("100"); Integer i3 = Integer.valueOf("100"); int i4 = Integer.parseInt("100",2); int i5 = Integer.parseInt("100",8); int i6 = Integer.parseInt("100",16); int i7 = Integer.parseInt("FF", 16); //int i8 = Integer.parseInt("FF"); // NumberFormatException 발생 Integer .. 더보기
Java 래퍼(wrapper) 클래스, 오토박싱과 언박싱 wrapper class 8개의 기본형을 객체로 다루기 위해 사용하는 클래스 기본형을 감싸는 기능 class Ex9_14 { public static void main(String[] args) { Integer i = new Integer(100); Integer i2 = new Integer(100); System.out.println("i==i2 ? "+(i==i2)); System.out.println("i.equals(i2) ? "+i.equals(i2)); // 같으면 true, 다르면 false System.out.println("i.compareTo(i2)="+i.compareTo(i2)); // 같으면0, 작으면 양수, 크면 음수// 정렬에서 사용됨 System.out.println("i.. 더보기
Java StringBuilder / StringBuffer 클래스 1. StringBuilder String 처럼 문자형 배열(char[])을 내부적으로 가지고 있음 String과 달리 내용 변경 가능(mutable); 멀티 스레드로 작성된 프로그램이 아닌 경우 StringBuilder를 사용 -> 싱글스레드에 사용 SpringBuffer와 완전히 똑같은 기능을 가지고있음 2. StringBuffer - StringBuffer는 멀티쓰레드에 안전하도록 동기화 되어 있음, 멀티쓰레드는 성능을 감소시킴 - String 처럼 문자형 배열(char[])을 내부적으로 가지고 있음 - String과 달리 내용 변경 가능(mutable); - 배열은 길이 변경 불가, 공간이 부족하면 새로운 배열 생성하고 복사하는 형식이기 때문에 StringBuffer는 저장할 문자열의 길이를 고.. 더보기
Java String 클래스 String클래스 - 문자열을 다루기 위한 클래스 - 데이터(char[]) + 메서드(문자열 관련) - 내용을 변경할 수 없는 불변(immutable) 클래스 String a = "a"; String b = "b"; a = a + b; // a는 기존 "a"의 주소값을 a + b의 결과인 "ab" 주소값으로 바꾸는 것! - 덧셈 연산자(+)를 이용한 문자열 결합은 성능이 떨어짐(문자열 결합이나 변경이 잦다면 내용 변경 가능한 StringBuffer사용하기) 1. String(문자열)을 만드는 방법에 따른 비교 1) 문자열을 리터럴로 지정하는 방법 2) String 클래스의 생성자를 사용해서 만드는 방법 // 문자열 리터럴은 이미 존재하는 것을 재사용(str1주소 == str2주소) String str1 .. 더보기
Java Object 클래스 Object 클래스 - 모든 클래스의 최고 조상 - 오직 11개의 메서드만 가지고 있음 메서드 설명 protected Object clone() 객체 자신의 복사본 반환 public boolean equals(Object obj) 객체 비교, 객체 자신과 객체 obj가 같은 객체인지 비교 protected void finalize() 객체 소멸 시 가비지 컬렉터에 의해 자동 호출 됨 객체 소멸 시점에 수행되어야 하는 코드가 있는 경우 오버라이딩 (거의 사용 안함, 메모리 부족으로 객체 소멸 시키려고하는데 finalize 수행하는데 더 많은 시간이 사용되어 사용을 권하지 않음) public Class getClass() 객체 자신의 클래스 정보(설계도 객체)를 담고 있는 Class 인스턴스 반환 *설계도 .. 더보기
Java 예외처리(exception handeling)2 1. 예외 처리 방법 1) try~catch문으로 예외 직접 처리하기 2) 예외 선언으로 예외 떠넘기기/알리기 3) try~catch문을 사용하지만 처리하지 않고 은폐하기(예외 신경안쓰고 모른척...) 2. 예외 선언 - 메서드 호출 시 발생 가능한 예외를 호출한 쪽에 알리기 throw: 예외 발생 throws: 예외 선언 3. finally 블럭 예외 발생여부와 관계 없이 수행되어야 하는 코드 넣기 try { // 예외 발생 가능성이 있는 문장 } catch (Exception1 e1) { // 예외 처리 문장 } finally { // 예외 발생 여부에 관계 없이 항상 수행되는 문장 // finally 블럭은 try~catch문 맨 마지막에 위치 } 4. 사용자 정의 예외 - 프로그래머가 직접 예외 .. 더보기