자바 22

[Java] 예외 처리

1. 예외(Exception) what? 프로그램 실행 중에 발생하는 오류 중 조치를 취할 수 있는 수준의 오류 오류의 종류 에러: 개발자가 조치를 취할 수 없는 수준(메모리 부족, JVM 동작 이상) 컴파일 에러: 컴파일시 발생하는 에러(오타, 잘못된 데이터타입 등) 런타임 에러: 프로그램 실행 중 발생하는 에러 로직 에러: 실행은 되지만 의도와 다르게 동작하는 에러 예외: 다른 방식으로 처리 가능한 오류(입력 값 오류, 네트워크 문제 등) 2. 예외 처리(Exception Handling) what? 예외가 발생했을 경우 이를 처리해 프로그램이 비정상적으로 종료되는 것을 막는 것 why? 입력 값이 잘못되는 등의 사소한 오류가 발생했을 때 적절히 처리해서 프로그램을 계속 실행시키기 위함 how? 1)..

카테고리 없음 2024.04.09

[Java] 기본 API 클래스⑩ java.time 패키지

what? 날짜와 시간을 다루는 패키지 why? 기존의 Date와 Calendar를 보완함 how? 1. java.time 패키지와 하위 패키지 1) java.time: 날짜와 시간을 나타내는 LocalDate, LocalTime 등을 포함한 패키지 2) java.time.format: 날짜와 시간을 파싱하고 포맷팅하는 API 포함 3) java.time.chrono: 여러 가지 달력 시스템을 사용할 수 있는 API 포함 4) java.time.temporal: 날짜와 시간을 연산하기 위한 API 포함 5) java.time.zone: 타임존을 지원하는 API 포함 java.time 패키지의 시간을 변경할 수는 있지만, 실제로는 변경되는 것이 아니라 새로운 객체가 반환됨 2. time 패키지의 시간과 날..

Java 2024.04.08

[Java] 기본 API 클래스⑨ Object

what? 모든 클래스의 조상 클래스 why? 모든 클래스가 Object 클래스의 멤버를 사용할 수 있음 how? 멤버 변수는 없고 메서드 11개가 있음 제어자 및 반환 타입 메서드 설명 protected Object clone() 객체의 복사본 반환 boolean equals(Object obj) obj와 같은 객체인지 아닌지 반환 protected void finalize() 객체가 소멸할 때 호출됨 Class getClass() 클래스의 정보를 담고 있는 Class 객체 반환 int hashCode() 해시 코드 반환 void notify() 대기 중인 하나의 스레드 깨움 void notifyAll() 대기 중인 모드 스레드 깨움 String toString() 객체 정보를 문자열로 반환 void ..

Java 2024.04.07

[Java] 기본 API 클래스⑧ Format

what? 데이터의 형식을 지정하는 클래스 why? 데이터의 형식을 통일해서 지정할 수 있음 how? 1)DecimalFormat 클래스 숫자 형식화 #: 있으면 출력 0: 없어도 0으로 채움 .: 소수점 -: 음수 기호를 붙임 ,: 쉼표를 넣음 E: 지수 기호 %: 퍼센트 패턴 정의 후 인스턴스 생성, format 메서드 호출해서 문자열 반환 public class Format1{ //패턴 지정 String[] pattern = { "###.###", "000.000", "-###.###", "000000.00%" }; //형식화 적용 전 수 배열 double[] arr = {1.3, 3.33, 124.243, 242}; for(int i = 0; i

Java 2024.04.06

[Java] 기본 API 클래스⑦ Timer/TimerTask

what? 특정한 시간에 코드를 실행하거나 작업이 특정 시간 간격으로 반복되게 함 why? 사용하지 않으면 코드는 순차적으로만 실행됨 how? 1)TimerTask를 상속하는 새로운 클래스 선언 2)TimerTask 클래스의 run 추상 메서드 오버라이딩 Class Work1 extendsTimerTask{ @Override public void run(){ System.out.println("work1 실행"); } } 3)Timer 객체 생성, 원하는 시간을 파라미터로 작성 Timer t = new Timer(true); //true: 프로그램 종료시 객체 사라짐 TimerTask w1 = new Work1(); t.schedule(w1, 5000); //5초 뒤 실행 예제 class Work1 ex..

Java 2024.04.06

[Java] 기본 API 클래스⑥ Wrapper 클래스

what? 기본 데이터타입 변수를 객체변수로 포장하는 클래스 why? 객체로 다루어지지 않는 기본 데이터타입을 객체로 다루기 위함 how? 1)모든 기본 데이터타입에는 각 래퍼 클래스가 있다. ex)boolean-Boolean, Char-Character, byte-Byte... 2)인스턴스 생성 Integer i = new Integer(100); Double d = new Double(3.14); 3)래퍼 클래스의 메서드를 활용하면 다른 데이터타입으로 변환하기 편함 (1)래퍼 클래스 -> 기본 데이터타입 데이터타입명+Value() //Integer 클래스 인스턴스 생성 Integer i = new Integer(100); //Integer 클래스 변수 int 변수로 변경 int a = i.intVal..

Java 2024.04.04

[Java] 기본 API 클래스⑤ BigDecimal 클래스

what? 정확한 소수점 연산을 할 때 사용하는 클래스 why? double과 long으로 소수점 연산을 할 때 오차가 발생할 수 있음. 이를 보완 how? 1)생성 double 또는 long 타입 변수를 문자열로 변환한 뒤 BigDecimal 클래스 생성자에 파라미터로 넣어 생성 double a = 53.56743; BigDecimal number = new BigDecimal(String.valueOf(a)); 2)값 계산 double a = 24.3953; double b = 50.343998; System.out.println(a+b); //74.7392979999999 BigDecimal number = new BigDecimal(String.valueOf(a)); BigDecimal numbe..

Java 2024.04.03

[Java] 기본 API 클래스④ Scanner 클래스

what? 문자데이터를 읽어오는 클래스 File, InputStream, String, Readable 등의 타입을 읽어옴 how? 1) 화면으로 입력받기: System.in Scanner sc = new Scanner(System.in); String input = sc.nextLine(); 입력받을 값의 타입에 따라 사용하는 메서드가 달라짐 String: nextLine() int: nextInt() boolean: nextBoolean() byte: nextByte() short: nextShort() long: nextLong() 2) 파일에서 값 읽어오기: FileInputStream //파일이 없을 수 있기 때문에 예외 처리 필요 try{ //Scanner 인스턴스 생성: FileInputSt..

카테고리 없음 2024.04.03

[Java] 기본 API 클래스③ Random

what? java.util 안의 클래스 무작위값을 얻을 때 사용 how? 시드값에 따라 값 반환. 시드값이 같으면 같은 값 추출 시드값은 Random 클래스의 인스턴스를 생성할 때 생성자 파라미터로 설정 시드값 미지정시 currentTimeMilis()를 시드값으로 해서 값 추출 int nextInt() 무작위 int값 반환 int nextInt(int n) 0보다 크고 n보다 작은 int값 반환 boolean nextBoolean 무작위 boolean값 반환 long nextLong() 무작위 long값 반환 double nextDouble() 무작위 double값 반환 float nextFloat() 무작위 float값 반환 Random random = new Random(); Random seed..

Java 2024.04.03

[Java] 기본 API 클래스② currentTimeMilis, Calendar, Date

1. System.currentTimeMilis() what? System 클래스의 currentTimeMilis() 메서드 현재 운영체제의 시간을 long 타입으로 반환 1970년 1월 1일을 기준으로 현재까지의 시간. 밀리초(1/1000) 단위로 환산해서 보여줌 how? //시작 시각 측정 long start System.currentTimeMilis(); System.out.println("시작 시각: " + start); //실행부 int a = 0; for(int i = 0; i Date //Date 타입 변수에 Calendar 클래스의 Time 대입 Calendar calendar = Calendar.getInstance(); Date date = calendar.getTime(); Syste..

Java 2024.04.03