JAVA 29

문자 단위 입출력 스트림

문자 단위 스트림 - Reader : 문자 단위로 읽는 최상위 스트림 - Writer: 문자 단위로 쓰는 최상위 스트림 추상 메서드를 포함한 추상 클래스로 하위 클래스가 상속받아 구현 ■ reader클래스 스트림 클래스 설명 FileReader 파일에서 문자 단위로 읽는 스트림 클래스 InputStreamReader 바이트 단위로 읽는 자료를 문자로 변환 해주는 보조 스트림 클래스 BufferedReader 문자로 읽을 때 배열을 제공하여 한꺼번에 읽을 수 있는 기능을 제공해주는 보조 스트림 ■ writer클래스 스트림 클래스 설명 FileWriter 파일에 문자 단위로 출력하는 스트림 클래스 OutputStreamWRiter 파일에 바이트 단위로 출력한 자료를 문자로 변환해 주는 보조 스트림 Buffe..

JAVA 2019.10.20

바이트 단위 입출력 스트림

바이트 단위 입출력 스트림 - InputStream : 바이트 단위 입력 스트림 최상위 클래스 - OutputStream : 바이트 단위 출력 스트림 최상위 클래스 ■ 추상 메서드를 포함한 추상 클래스로 하위 클래스가 구현하여 사용 스트림 클래스 설명 FileInputStream 파일에서 바이트 단위로 자료를 읽는다. ByteArrayInputStream Byte 배열 메모리에서 바이트 단위로 자료를 읽는다. FilterInpuStream 기반 스트림에서 자료를 읽을 때 추가 기능을 제공하는 보조 스트림의 상위 클래스이다 스트림 클래스 설명 FileOutputStream 바이트 단위로 파일에 자료를 쓴다. ByteArrayOutputStream 바이트 배열에 바이트 단위로 자료를 쓴다. FilterOut..

JAVA 2019.10.19

자바 입출력 스트림

입출력 스트림이란? 네트워크에서 자료의 흐름이 물 같다라는 의미에서 유래 되었으며, 다양한 입출력 장치에 독립적으로 일관성 있는 입출력방식을 제공한다. 입출력이 구현되는 곳에서는 모두 I/O 스트림을 사용 예시) 키보드,파일 디스크, 메모리 등 입출력 스트림 구분은 어떻게 하는가? I/O 대상기준 : 입력 스트림, 출력스트림 자료의 종류: 바이트 스트림, 문자 스트림 스트림의 기능 : 기반 스트림, 보조 스트림 입출력 스트림과 출력 스트림 입력 스트림: 대상으로부터 자료를 읽어 들이는 스트림 출력 스트림: 대상으로 자료를 출력하는 스트림 스트림의 예 종료 예시 입력 스트림 FileInputStream,FileReader,BufferedInputStream,BufferedReader 등 출력 스트림 Fil..

JAVA 2019.10.18

Multi-Thread 프로그래밍

임계영역(Critical section) - 임계 영역에 여러 Thread가 접근하는 경우 한 thread가 수행하는 동안 공유자원을 lock 하려 다른 thread의 접근을 막음 - 동기화를 잘못구현 할 시에는 deadlock에 빠질 수 있다. 자바에서 동기화 구현 - synchronized 수행문과 synchronized 메서드를 이용 - synchronized 수행문 synchronized(참조형 수식){ } 참조형 수식에 해당되는 객체 lock을 건다. synchronized 메서드 - 현재 이 메서드가 속해 있는 객체에 lock를 건다. synchronized 메서드 내에서 다른 synchronized 메서드를 호출하지 않는다( deadlock를 방지하기 위해서)

JAVA 2019.10.17

예외처리

오류란 ? - 컴파일 오류 : 프로그램 코드 작성중 발생하는 문법적 오류 - 실행 오류 : 실행중인 프로그램이 의도하지 않은 동작을 하거나(bug) 프로그램이 중지 되는 오류 (runtime error) 자바는 예외 처리를 통하여 프로그램의 비정상 종료를 막고 log를 남길 수 있음 오류와 예외 클래스 - 시스템 오류(error) : 가상 머신에서 발생, 프로그래머가 처리 할 수 없음. 동적메모리를 다 사용한 경우, stack over flow등 - 예외( Exception) : 프로그램에서 제어 할 수 있는 오류 읽으려는 파일이 없는 경우, 네트웍이나 소켓 연결 오류 등 자바 프로그램에서는 예외에 대한 처리를 수행 함 예외 클래스 - 모든 예외 클래스의 최상위 클래스는 Exception 클래스 try-..

JAVA 2019.10.17

스트림(Stream)

스트림(Stream) (자바io스트림과는 다르다. 자료 연산을 위한 객체) - 자료의 대상과 관계없이 동일한 연산을 수행할 수 있는 기능(자료의 추상화) - 배열, 컬렉션에 동일한 연산이 수행되어 일관성 있는 처리 가능 - 한번 생성하고 사용한 스트림은 재사용할 수 없음 - 스트림 연산은 기존 자료를 변경하지 않음 - 중간연산과 최종 연산으로 구분 됨 - 최종연산이 수행되어야 모든 연산이 적용되는 지연연산 중간연산 - filter(),map() 조건에 맞는 요소를 추출(filter())하거나 요소를 변환함(map()) 문자열의 길이가 5이상인 요소만 출력하기(filter) sList.stream().filter(s->s.length()>=5).forEach(s->System.out.println(s));..

JAVA 2019.10.15

람다식

람다식 - 자바에서 함수형 프로그래밍(functional programming)을 구현하는 방식 - 클래스를 생성하지 않고 함수의 호출만으로 기능을 수행 - 함수형 인터페이스를 선언함 - 자바 8부터 지원되는 기능 - 함수형 프로그래밍을 사용 함으로서 병렬 처리가 가능하다. 함수형 프로그래밍 - 순수 함수(pure function)를 구현하고 호출 - 매개 변수만을 사용하도록 만든 함수로 외부자료에 부수적인 영향(side effect)가 발생하지 않도록함 - 입력받은 자료를 기반으로 수행되고 외부에 영향을 미치지 않으므로 병렬처리등에 가능 - 안정적인 확장성 있는 프로그래밍 방식 람다식 문법 - 매개 변수 하나인 경우 괄호 생략가능(두 개인경우는 괄호를 생략할 수 없음) str->{System.out.p..

JAVA 2019.10.14

내부클래스

클래스 내부에 구현한 클래스( 중첩된 클래스 ) 클래스 내부에서 사용하기 위해 선언하고 구현하는 클래스 주로 외부 클래스 생성자에서 내부 클래스를 생성 내부클래스 유형 Code package innerclass; class OutClass{ //인스턴스 내부 클래스 //멤버변수를 선언하는 부분 private int num=10; private static int sNum=20; private InClass inClass; //인너 클래스 생성시기 //아웃클래스의 콘스트럭트에서 많이 생성 public OutClass() { inClass = new InClass(); } class InClass{ int iNum = 100; //사용불가 //static int sInNum = 200; void inTest..

JAVA 2019.10.13

Map인터페이스

컬렉션 프레임 워크 Map 인터페이스 - 쌍으로 이루어진 자료구조 (key , value) - 키는 유일한 값이어야한다. - ex) 파이썬의 경우에는 딕셔너리 - key-value pair의 객체를 관리하는데 필요한 메서드가 정의됨 - key는 중복 될 수 없음 - 검색을 위한 자료구조 - key를 이용하여 값을 저장하거나 검색,삭제 할때 사용하면 편리함 내부적으로 hash방식으로 구현됨 - Map에 값을 전체 출력하기 위해서는 entrySet(), keySet() 메소드를 사용 entrySet() 메서드는 key와 value의 값이 모두 필요한 경우 사용하고 keySet()메서드는 key의 값만 필요한 경우 사용한다. index = hash(key)// index는 저장위치 - key가 되는 객체는 객..

JAVA 2019.10.12