일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- System.err
- throwable
- junit 5
- System.in
- 브릿지 메소드
- github api
- 프리미티브 타입
- 자바할래
- 익명 클래스
- 스파르타코딩클럽
- 바운디드 타입
- raw 타입
- 제네릭 와일드 카드
- Study Halle
- 합병 정렬
- 항해99
- docker
- System.out
- 로컬 클래스
- auto.create.topics.enable
- 함수형 인터페이스
- 람다식
- Switch Expressions
- 상속
- 자바스터디
- 제네릭 타입
- 정렬
- 접근지시자
- yield
- annotation processor
- Today
- Total
목록IT Study (82)
코딩하는 털보
객체 지향 프로그래밍 70. 보조 스트림 실제 읽고 쓰는 스트림이 아닌 보조적인 기능을 추가하는 스트림 데코레이터라고도 불린다 상위 클래스 FilterInputStream, FilterOutputStream 생성자의 매개변수로 다른 스트림을 가진다 데코레이터 패턴(Decorator Pattern) 기반 스트림 > 보조 스트림1 > 보조 스트림2 Buffered 스트림 : 내부에 8192바이트 배열을 가지고 있음, 읽거나 쓸때 속도가 빠름 private static int DEFAULT_BUFFER_SIZE = 8192; Buffered 스트림을 이용하여 파일 복사 package stream.decorator; import java.io.*; //import java.net.Socket; //import ..
객체 지향 프로그래밍 68. 바이트 단위, 문자 단위 입출력 스트림 바이트 단위 스트림 InputStream : 바이트 단위 입력 스트림 최상위 클래스 OutputStrem : 바이트 단위 출력 스트림 최상위 클래스 추상 메서드를 포함한 추상클래스로 하위 클래스가 구현하여 사용 주요 하위 클래스 FileInputStream, ByteArrayInputStream, FilterInputStream, etc FileOutputStream, ByteArrayOutputStream, FilterOutputStream, etc FileInputStream, FileOutputStream 사용하기 파일에 한 바이트 씩 자료를 읽고 쓰는데 사용 입력 스트림은 파일이 없을 때 예외 발생 출력 스트림은 파일이 없는 경우..
객체 지향 프로그래밍 66. 자바 입출력 스트림 입출력 스트림 이란 네트웍에서 자료의 흐름이 물과 같다는 의미에서 유래 다양한 입출력 장치에 독립적으로 일관성 있는 입출력 방식 제공 입출력이 구현되는 곳에서는 모두 I/O 스트림을 사용 :키보드, 파일, 디스크, 메모리 등 구분 I/O 대상 기준 : 입력 스트림, 출력 스트림 자료의 종류 : 바이트 스트림, 문자 스트림 스트림의 기능 : 기반 스트림, 보조 스트림 입력 or 출력 스트림 입력 스트림 : 대상으로 부터 자료를 읽어 들이는 스트림 ex) FileInputStream(바이트), FileReader(문자), BufferedInputStream(보조), BufferedReader, etc 출력 스트림 : 대상으로 자료를 출력하는 스트림 ex) Fi..
객체 지향 프로그래밍 65. 다양한 예외 처리 예외 처리 미루기 throws를 이용하여 예외처리 미루기 try{} 블록으로 예외처리 하지 않고, 메서드 선언부에 throws를 추가 예외가 발생한 메서드에서 예외처리를 하지 않고 메서드를 호출한 곳에서 예외처리함 main()에서 throws를 사용하면 가상 머신에서 처리 됨 package exception; import java.io.FileInputStream; import java.io.FileNotFoundException; public class ThrowsException { public Class loadClass(String fileName, String className) throws FileNotFoundException, ClassNotF..
객체 지향 프로그래밍 63. 예외와 예외 처리 컴파일 오류 : 프로그램 코드 작성 중 발생하는 문법적 오류 실행 오류 : 실행중인 프로그램이 의도치 않은 동작을 하거나(bug) 프로그램이 중단되는 오류(runtime error) 자바는 예외 처리를 통하여 프로그램의 비정상 종료를 막고 log를 남길 수 있음 시스템 오류(error) : 가상 머신에서 발생, 프로그래머가 처리할 수 없음 동적 메모리를 다 사용한 경우, stack over flow 등 예외(Exception) : 프로그램에서 제어할 수 있는 오류 읽으려는 파일이 없는 경우, 네트웍이나 소켓 연결 오류 등 자바 프로그램에서는 예외에 대한 처리를 수행 함 Exception 클레스 : 모든 예외 클래스의 최상위 클래스 IOException, Ru..
객체 지향 프로그래밍 60. 스트림 자료의 대상과 관계없이 동일한 연산을 수행할 수 있는 기능(자료의 추상화) 배열, 컬렉션에 동일한 연산이 수행되어 일관성 있는 처리 가능 한번 생성하고 사용한 스트림은 재사용할 수 없음 스트림 연산은 기존 자료를 변경하지 않음 중간 연산과 최종 연산으로 구분 됨 최종 연산이 수행되어야 모든 연산이 적용되는 지연 연산 중간 연산 filter(), map() 조건에 맞는 요소를 추출하거나 요소를 변환 함 문자열의 길이가 5이상인 요소만 출력하기 sList.stream().filter(s->s.length()>=5).forEach(s->System.out.println(s)); 고객 클래스에서 고객 이름만 가져오기 customerList.stream().map(c->c.ge..
객체 지향 프로그래밍 58. 람다식 람다식이란? (java 8 or newer) 자바에서 함수형 프로그래밍을 구현하는 방식 클래스를 생성하지 않고 함수의 호출만으로 기능 수행 (내부적으로 익명 객체 사용) 함수형 인터페이스 선언 함수형 프로그래밍이란? 순수 함수를 구현하고 호출 매개변수만 사용하기 때문에 외부에 사이드 이펙트를 주지 않고 병렬 처리 가능 안정적인 확장성있는 프로그래밍 방식 문법 InterFace itfc = str -> {System.out.println(str);}; InterFace2 itfc2 = (x,y) -> x+y //구현부가 return 문 하나라면 return, 중괄호 생략 가능 package lambda; public class TestStringConcat { publi..
객체 지향 프로그래밍 56. 내부 클래스 내부 클래스란 클래스 내부에 구현된 클래스 (중첩된 클래스) 클래스 내부에서 사용하기 위해 선언하고 구현하는 클래스 주로 외부 클래스 생성자에서 내부 클래스를 생성 인스턴스 내부 클래스, 정적 내부 클래스 package innerclass; class Outer { int outNum = 100; static int sNum =200; Runnable getRunnable(int i) { //Runnable 한 type의 객체를 반환하는 메서드 int num = 100; //지역변수 i, num class MyRunnable implements Runnable { //지역 내부 클래스, 메서드 내에 구현되어 있음 @Override public void run() ..
객체 지향 프로그래밍 55. Map 인터페이스 Map 인터페이스 쌍으로 이루어진 객체 관리를 위해 선언된 인터페이스 검색을 위한 자료구조 Map을 사용하는 객체는 key-value 쌍으로 되어있으며 Key는 중복될 수 없다. Key를 이용하여 값을 저장하거나 검색, 삭제할 때 사용하면 편리하다. 내부적으로 hash 방식으로 구현되어 있다. index = hash(key) //index는 저장 위치 key가 되는 객체는 객체의 유일성 여부를 알기 위해 equals(), hashCode() 메서드를 재정의한다. HashMap 클래스 Map 인터페이스를 구현한 클래스 중에서 가장 일반적으로 쓰인다. pair 자료를 쉽고 빠르게 관리할 수 있다. HashTable 클래스는 Vector 처럼 동기화를 제공한다. ..
객체 지향 프로그래밍 50. 컬렉션 프레임워크 컬렉션 프레임워크란? 프로그램 구현에 필요한 자료구조와 알고리즘을 구현해 놓은 라이브러리 java.util 패키지에 구현되어 있음 개발에 소요되는 시간을 절약하고 최적화된 라이브러리를 사용할 수 있음 Collection 인터페이스와 Map 인터페이스로 구성됨 Collection : 하나의 객체 관리를 위해 선언된 인터페이스 +--List : 순서가 있는 자료관리, 중복 허용 +--Set : 순서가 정해져있지 않음, 중복을 허용하지 않음 Map : 쌍으로 이루어진 객체 관리를 위해 선언된 인터페이스 Map을 사용하는 객체는 key-value 쌍으로 되어있으며 이중 Key는 중복될 수 없다. List 인터페이스 Collection의 하위 인터페이스 객체를 순서에..