Java I/O (Input/Output) - 자바는 스트림이라는 개념을 통해 프로그램의 입/출력을 다룬다. - 프로그램으로 데이터가 들어오는 것을 입력(Input)이라고 한다. - 프로그램에서 계산되어 나가는 모든 데이터들을 출력(Output)이라고 한다. Stream - 데이터들이 오고 가는 통로 - 데이터들이 프로그램으로 들어오는 통로를 InputStream이라고 한다. - 데이터들이 프로그램에서 계산되어 나가는 통로를 OutputStream이라고 한다. - 데이터가 Stream을 지나가기 위해서는 해당 데이터를 byte타입으로 변환시켜야 한다. (byte타입이 가장 0과 1로 변환하기 쉽기 때문) import java.io.FileNotFoundException; import java.io.Fil..
Exception - 반드시 처리해야 하는 예외 - 처리하지 않으면 컴파일을 진행할 수 없다. RuntimeException - 처리하지 않아도 되는 예외 class 반드시처리해야하는예외 extends Exception { public 반드시처리해야하는예외() { super("내가 만든 예외1"); } } class 꼭처리하지않아도되는예외 extends RuntimeException { public 꼭처리하지않아도되는예외() { super("내가 만든 예외2"); } } public class E03_CustomException { public static void method() throws 반드시처리해야하는예외 { int ran = (int)(Math.random() * 10); if (ran == ..
throw - 원할 때 원하는 예외를 발생시킨다. throws - 해당 메서드 실행 도중 발생할 수 있는 예외를 적는 곳 - 해당 메서드를 불러 사용하는 곳에서 그 예외를 처리할 수 있도록 미리 명시한다. import java.util.InputMismatchException; import java.util.Scanner; public class E02_Throw { public static String shuffle(String text, int times) throws InputMismatchException { if (times < 0) { throw new InputMismatchException("섞으려면 1이상의 양수를 보내주세요"); } StringBuilder sb = new StringB..
예외(Exception) - 우리가 에러라고 생각했던 빨간 글씨들을 예외라고 부른다. - 자바의 문법을 틀리는 것은 예외가 아니라 컴파일 에러라고 부른다. (실행이 아예 되지 않음, 자바 문법 오류) - 실행 도중 발생하는 여러 문제들만을 예외라고 부른다. - 프로그래머는 발생할 수 있는 예외를 미리 예상하고 대비해둘 수 있다. (예외 처리) 예외 처리 (try-catch) - 예외가 발생할 가능성이 있는 코드를 try문 내부에 포함시킨다. - try문 내부에서 예외가 발생하지 않으면 평소대로 정상 작동한다. - try문 내부에서 예외가 발생하는 경우 즉시 try문을 중단하고 발생한 예외에 해당하는 catch문으로 이동한다. - catch절은 여러번 사용할 수 있다. - 예외가 발생하여 해당 catch문..
java.time 패키지 - Calendar의 여러가지 단점을 보완한 시간을 다루는 클래스들을 모은 패키지 - Calendar가 set(), add()를 통해 원본 인스턴스를 변환하는 것이 큰 단점이라고 생각하여 새로운 시간 인스턴스를 생성하여 반환하는 방식을 사용한다. java.time.LocalDate - 날짜만 다루는 클래스 java.time.LocalTime - 시간만 다루는 클래스 java.time.LocalDateTime - 날짜와 시간 모두 다루는 클래스 import java.time.DayOfWeek; import java.time.LocalDate; import java.time.LocalDateTime; import java.time.LocalTime; import java.time.M..
java.util.Calendar - 달력을 구현한 클래스 - 날짜 및 시간을 손쉽게 계산할 수 있는 기능들이 있다. - 생성자를 사용할 수 없게 막혀있어서 getInstance()라는 스태틱 메서드를 사용해야 한다. SimpleDateFormat 클래스 - Date 타입 인스턴스의 서식을 지정할 수 있는 클래스 - y : 년 - M : 월 - d : 일 - h : 12시간 - H : 24시간 - s : 초 - S : 밀리초 - E : 요일 (짧게) - EEEE : 요일 (길게) - a : 오전/오후 import java.text.SimpleDateFormat; import java.util.Calendar; public class D12_Calendar { public static void main(S..
java.util.Date - 시간 및 날짜 정보를 보관할 수 있는 클래스 - 오래된 클래스이기 때문에 데이터를 보관하는 용도로만 사용하고 메서드는 잘 사용하지 않는다. import java.util.Date; public class D11_Date { public static void main(String[] args) { // 아무것도 안넣고 생성하면 현재 시간 Date d1 = new Date(); System.out.println(d1); // long타입 값을 전달하여 유닉스 타임으로 시간을 생성 Date d2 = new Date(100000000000L); System.out.println(d2); /* System.currenrTimeMillis() : 시스템으로부터 현재 유닉스 타임을 받아..
정규표현식 (Regular Expression) - 문자열이 특정 패턴과 일치하는지 검사할 수 있는 표현식 - 특정 프로그래밍 언어에만 있는 것이 아닌 공통의 규칙 자바에서 정규표현식을 활용하기 위한 클래스 - java.util.regex.Pattern Pattern.matches(regex, input) : input이 regex 의 패턴에 해당하는 문자열인지 검사하는 메서드 [ ] 내부에서 사용하는 문법들 [abc] : a 또는 b 또는 c를 허용 [a-z] : a부터 z까지 모두 허용 [A-Z] : A부터 Z까지 모두 허용 [a-zA-z] : 모든 알파벳 허용 [a-f&&c-g] : 두 조건을 모두 만족하는 문자만 허용 하나로 여러 문자를 나타내는 것들 . : 모든 문자 허용, [.] 또는 \.은 ..