본문 바로가기

언어/JAVA97

Thread 1 Thread process 실행 중인 프로그램 프로그램이 실행되면 OS로 부터 메모리를 할당받아 프로세스 상태가 됨 thread: 하나의 프로세스는 하나 이상의 thread를 가지게 되고, 실제 작업을 수행하는 단위는 thread이다 multi-threading 여러 thread가 동시에 수행되는 프로그래밍, 여러 작업이 동시에 실행되는 효과 thread는 각각 자신만의 작업 공간을 가짐(context) 각 thread 사이에서 공유하는 자원이 있을 수 있음 (자바에서는 static instance) 여러 thread가 자원을 공유하여 작업이 수행되는 경우 서로 자원을 차지하려는 race condition이 발생할 수 있음 이렇게 여러 thread가 공유하는 자원중 경쟁이 발생하는 부분을 critical.. 2021. 5. 23.
데코레이터 패턴 Decorator Pattern 자바의 입출력 스트림은 decorator pattern이다 여러 decorator들을 활용하여 다양한 기능을 제공 상속보다 유연한 구현 방식 데코레이터는 다른 데코레이터나 또는 컴포넌트를 포함해야 함 지속적인 기능의 추가와 제거가 용이함 decorator와 component는 동일한 것이 아님(기반 스트림 클래스가 직접 읽고 쓸 수 있음, 보조 스트림은 추가적인 기능 제공) 커피만들기 Decorator Pattern을 활용하여 커피를 만든다 아메리카노 카페 라떼 = 아메리카노 + 우유 모카 커피 = 아메리카노 + 우유 + 모카시럽 크림 올라간 모카커피 = 아메리카노 + 우유 + 모카시럽 + whipping cream 커피는 컴포넌트고, 우유, 모카시럽, whipping c.. 2021. 5. 23.
입출력 클래스(File, RandomAccessFile) File 클래스 파일 개념을 추상화한 클래스 입출력 기능은 없고, 파일의 이름, 경로, 읽기 전용등의 속성을 알 수 없음 이를 지원하는 여러 메서드들이 제공됨 FileTest.java package ch65; import java.io.File; import java.io.IOException; public class FileTest { public static void main(String[] args) throws IOException { File file = new File("D:\\eclipse\\workspace\\JAVA-Chapter2\\a.txt"); file.createNewFile(); System.out.println(file.isFile()); System.out.println(fi.. 2021. 5. 23.
DataStream, 직렬화 DataInputStream과 DataOutputStream 자료가 메모리에 저장된 상태 그대로 읽거나 쓰는 스트림 DataInputStream 메서드 메서드 설명 byte readByte() 1바이트를 읽어 반환합니다 boolean readBoolean() 읽은 자료가 0이 아니면 true, 0이면 false를 반환 char readChar() 한 문자를 읽어 반환 short readShort() 2바이트를 읽어 정수 값을 반환 int readInt() 4바이트를 읽어 정수 값을 반환 long readLong() 8바이트를 읽어 정수 값을 반환 float readFloat() 4바이트를 읽어 실수 값을 반환 double readDouble() 8바이트를 읽어 실수 값을 반환 String readUTF(.. 2021. 5. 23.
여러가지 보조 스트림 클래스 보조 스트림 실제 읽고 쓰는 스트림이 아닌 보조 기능을 제공하는 스트림 FilterInputStream과 FileOutputStream이 보조 스트림의 상위 클래스들 생성자의 매개변수로 또 다른 스트림(기반 스트림이나 다른 보조 스트림)을 가짐 Decorator Pattern으로 구현 됨 상위 클래스 생성자 생성자 설명 protected FilterInputStream과 (InputStream in) 생성자의 매개변수로 InputStream을 받는다. public FilterOutputStream(OutputStream out) 생성자의 매개변수로 OutputStream을 받는다. InputStreamReader와 OutputStreamWriter 바이트 단위로 읽거나 쓰는 자료를 문자로 변환해주는 보조.. 2021. 5. 23.
문자단위 입출력 스트림 Reader 문자 단위 입력 스트림 최상위 추상 클래스 많은 추상 메서드가 선언되어 있고 이를 하위 스트림이 상속받아 구현함 주요 하위 클래스 클래스 설명 FileReader 파일에서 문자 단위로 읽는 스트림 클래스 InputStreamReader 바이트 단위로 읽은 자료를 문자로 변환해주는 보조 스트림 클래스 BufferedReader 문자로 읽을 때 배열을 제공하여 한꺼번에 읽을 수 있는 기능을 제공하는 보조 스트림 주요 메서드 메서드 설명 int read() 파일로부터 한 문자를 읽습니다. 읽은 문자를 반환합니다. int read(char[] buf) 파일로부터 buf 배열에 문자를 읽습니다. int read(char[] buf, int off, int len) 파일로부터 buf 배열의 off위치로.. 2021. 5. 23.