good_da22 's devLog

분류 전체보기 108

보조스트림(Stream)

보조 스트림 Filter Stream, Processing Stram 다른 스트림에 부가적인 기능을 제공하는 스트림 보조 스트림 자체적으로는 입출력을 수행할 수 없어 노드 스트림이 필요하다. 스트림 체이닝 Stream Chaining 필요에 따라 여러 보조 스트림을 연결해서 사용 가능 보조 스트림 종류 byte 스트림을 char 스트림으로 변환 byte 기반 InputStreamReader OutputStreamReader 버퍼링을 통한 속도 향상 byte 기반 BufferedInputStream BufferedOutputStream char 기반 BufferedReader BufferedWriter 객체 전송 byte 기반 ObjectInputStream ObjectOutputStream 이전 스트림을..

Java 2022.07.31

파일(File)

File 가장 기본적인 입출력 장치 파일과 디렉토리를 다루는 클래스 디렉토리도 파일이다. File 주요 메서드 File() public File(String pathname) pathname에 해당하는 파일을 생성 경로 없이 파일을 생성하면 애플리케이션을 시작한 경로가 된다. public File(String parent, String child) parent 경로 아래 child 를 생성한다. public File(File parent, String child) parent 경로 아래 child 를 생성한다. public File(URI uri) file 로 시작하는 URI 객체를 이용해 파일을 생성한다. createNewFile() public boolean createNewFile() throws ..

Java 2022.07.31

입출력 (I/O) & 스트림(Stream)

I / O Input 과 Output, 데이터의 입력과 출력 Stream 데이터는 한 쪽에서 주고 한 쪽에서 받는 구조로 되어있다. 이때, 입력과 출력의 끝단 : 노드(Node) 두 노드를 연결하고 데이터를 전송할 수 있는 개념 : 스트입(Stream) 스트림이란 데이터를 운반하는데 사용되는 연결 통로 스트림은 단방향 통신만 가능하기 때문에 하나의 스트림으로 입력과 출력을 동시에 처리할 수 없다. 입력과 출력을 동시에 수행하려면 입력을 위한 입력스트림(input stream)과 출력을 위한 출력스트림(output stream), 모두 2개의 스트림이 필요하다. 스트림은 먼저 보낸 데이터를 먼저 받게 되어 있어 중간에 건너뜀 없이 연속적으로 데이터를 주고받는다. Node Stream 종류 데이터 타입에 따..

Java 2022.07.31

함수형 인터페이스(functional interface)

java.util.function 패키지 대부분의 메서드는 매개변수가 없거나 한 개 또는 두 개, 반환 값이 없거나 한 개 제네릭 메서드로 정의하면 매개변수나 반환 타입이 달라도 문제가 되지 않는다. java.util.function 패키지에 일반적으로 쓰이는 형식의 메서드를 함수형 인터페이스로 미리 정의 패키지 활용을 통해 함수형 인터페이스에 정의된 메서드 이름 통일 재사용성이나 유지보수 측면에서 효율적 매개변수의 개수, 반환 여부에 따라 함수형 인터페이스 사용 가능 매개변수 없음, 반환값 없음 java.lang.Runable @FunctionalInterface public interface Runnable { public abstract void run(); } 매개변수 없음, 반환값 있음 @Fun..

Java 2022.07.31

람다 표현식(Lambda Expression)

람다 표현식 Lambda Exression 자바8 (JDK1.8) 부터 지원 기존의 자바 변경없이 함수형 프로그래밍 형태 지원 코드 간결화 가능 다른 함수에 전달되는 함수인 일급객체를 쓸 수 있다. -> 함수형 프로그래밍 언어이다. 람다식 메서드를 하나의 식(expression) 으로 표현한 것 메서드를 람다식으로 표현하면 메서드의 이름과 반환값이 없어져 익명 함수(anonymous function) 이라고도 한다. // 변수명 = 람다식 매개변수 -> { 구현/리턴 내용 }; FunctionalInterface 참조변수 = (int x1, int x2) -> { return x1 + x2; }; 익명 클래스의 객체와 동등하다. 구현부가 한 줄인 경우 중괄호 {} 생략 가능 // 구현 내용이 한 줄일 경..

Java 2022.07.31

정렬(Sort)

정렬 Sort 요소를 특정 기준에 대한 내림차순 또는 오름차순으로 배치 하는 것 순서를 가지는 Collection들만 정렬 가능하다. sort 인터페이스를 상속 받은 자식들 List 계열 Set에서 SortedSet의 자식 객체 (TreeSet) Map에서 SortedMap의 자식 객체(key 기준) (TreeMap) Collections의 sort()를 이용한 정렬 sort(List list) 객체가 Comparable을 구현하고 있는 경우 내장 알고리즘을 통해 정렬 Comparator 와 Comparable Comparator 와 Comparable은 모두 인터페이스로 컬렉션을 정렬하는데 필요한 메서드를 정의 Comparable을 구현하고 있는 클래스들은 같은 타입의 인스턴스끼리 서로 비교가 가능한 ..

Java 2022.07.30

컬렉션 프레임워크(Collection Framework)

Collection Framework 자료구조 (data structure) 컴퓨터 과학에서 효율적인 접근 및 수정을 가능하게 하는 자료의 조직, 관리, 저장을 의미 데이터 값의 모임, 데이터 간의 관계, 데이터에 적용 가능한 함수나 명령을 의미 배열 homogeneous collection : 동일한 데이터 타입만 관리 타입이 다른 객체를 관리하기 위해서는 매번 다른 배열이 필요 컬렉션 데이터 군(Collection)을 저장하는 클래스들을 표준화한 설계(Framework) 다형성 (Polymorphism) Object을 이용하면 모든 객체 참조 가능 -> Collection Framework 담을 때는 편리, 빼낼 때는 Object로만 가져올 수 있다. 런타임에 실제 객체 타입을 확인 후 사용해야하는 ..

Java 2022.07.28

예외(Exception) 2

Exception handling try - catch - finally finally 블록은 예외 발생 여부와 상관 없이 실행되어야 하는 코드를 포함 try - catch 블록에 선택적으로 추가하여 사용 중간에 return을 만나는 경우에도 finally 블록을 수행 후 리턴 try { // exception이 발생할 만한 코드 - System 자원 사용 } catch (Exception e) { // 예외 발생 시 처리 코드 } finally { // try block에서 접근했던 System자원의 안전한 원상 복구 // try 블록 또는 catch 블록에 return이 존재해도 finally 블록 수행 후 종료 } finally 블록을 통해 예외 발생 여부와 상관 없이 자원 정리 가능 try 블록에..

Java 2022.07.28