Chapter12 스레드
6. wait(), notify()
what?
wait(): 록(lock)을 반납하고 기다리게 함
nofity(): 중단했던 스레드가 다시 록을 얻을 수 있도록 깨움
why?
스레드가 어떠한 이유로 완료되지 못할 경우 계속해서 lock을 반납하지 못할 수 있다. 이러한 상황을 제어하기 위함
how?
void wait()
void wait(long timeout)
void wait(long timeout, int nanos)
void notify()
void notifyAll()
Chapter13 입출력, 자바의 IO 패키지
1. IO와 스트림
1) IO
what?
Input, Output. 자바에서는 입출력을 처리하기 위해 IO 패키지 제공
2) 스트림
what?
데이터의 흐름
how?
데이터의 통신은 한쪽 방향으로만 가능→FIFO 구조
바이트기반 스트림과 문자기반 스트림으로 나뉨
2. 바이트기반 스트림
what?
바이트단위로 데이터를 입출력하는 스트림
how?
1byte씩 읽어서 1byte씩 출력
InputStream과 OutStream이 모든 바이트기반 스트림들의 조상
InputStream 상속→read() 추상 메서드 구현, OutputStream 상속→write() 추상메서드 구현
InputStream | OutputStream | |
abstract int read()
|
abstract void write(int b)
|
|
int read(byte[] b) |
void write(byte[] b)
|
|
int read(byte[] b, int off, int len)
|
void write(byte[] b, int off, int len)
|
입출력 대상에 따른 스트림
입력 스트림 | 출력 스트림 | 대상 | ||
FileInputStream |
FileOutputStream
|
파일 | ||
PipedInputStream
|
PipedOutputStream
|
메모리 | ||
AudioInputStream
|
AudioOutputStream
|
오디오 | ||
ByteArrayInputStream
|
ByteArrayOutputStream
|
프로세스 |
3. 바이트기반 보조 스트림
what?
스트림 보조, 성능 향상
<!--td {border: 1px solid #cccccc;}br {mso-data-placement:same-cell;}-->
입력 보조 스트림
|
출력 보조 스트림
|
사용 | ||
FilterInputStream
|
FilterOutputStream
|
필터를 이용한 입출력
|
||
BufferedInputStream
|
BufferedOutputStream
|
버퍼를 통해 입출력
|
||
DataInputStream
|
DataOutputStream
|
기본형 단위로 데이터 처리
|
||
없음 | PrintStream |
print, printf, println
|
how?
데이터 전송할 스트림 선언, 보조 스트림 생성자에 파라미터로 넣음
FileInputStream fis = null;
fis = new FileINputStream("파일 위치");
BufferedInputStream bis = new BufferedInputStream(fis);
4. 문자 기반 스트림
what?
16비트의 문자나 문자열을 읽고 쓰는 스트림
why?
바이트 기반 스트림으로는 문자 입출력 처리가 불편함
how?
Reader와 Writer 스트림이 모든 문자 기반 스트림의 조상. 상속받아 추상 메서드 구현
Reader | Writer |
int read() | void write(int c) |
int read(char[] cbuf) |
void write(char[] cbuf)
|
abstract int read(char[] cbuf, int off, int len)
|
abstract void write(char[] cbuf, int off, int len)
|
void write(String str)
|
|
void write(String str, int off, int len)
|
FileReader fr = null;
fr = new FileReader("파일 위치");
5. 문자기반 보조 스트림
what?
문자기반 스트림의 성능을 향상시킴
how?
입력 보조 스트림 | 출력 보조 스트림 | 사용 |
FilterReader | FilterWriter |
필터를 이용한 문자 입출력
|
BufferedReader | BufferedWriter |
버퍼를 통해 문자 입출력
|
6. 스트림의 예외 처리
입출력의 모든 메서드는 IOException이 발생할 가능성 있음
→예외 처리 필요
Chapter15 Java Network Programming
1. Network Programming
what?
다른 컴퓨터와 송수신할 수 있는 프로그램을 만드는 것
2. 클라이언트/서버
what?
클라이언트: 서비스를 사용하는 컴퓨터
서버: 서비스를 제공하는 컴퓨터
3. IP 주소
what?
컴퓨터마다 부여되는 고유한 주소
why?
장치들이 서로를 인식하고 통신하기 위함
how?
InetAddress 클래스
메서드 | 설명 | |
byte[] getAddress()
|
IP주소를 byte 배열로 반환
|
|
static InetAddress[]
getAllByName(String host) |
도메인명에 지정된 모든 호스트의 IP 주소를 배열에 담아 반환
|
|
static InetAddress
getByName(String host) |
도메인명을 통해 IP 주소 획득
|
|
String getHostAddress()
|
호스트의 IP 주소 반환
|
|
String getHostName()
|
호스트의 이름 반환
|
*호스트: 컴퓨터
'정리노트' 카테고리의 다른 글
[java] 코드 해석 연습 (0) | 2023.11.03 |
---|---|
[java] Java Network Programming (0) | 2023.11.02 |
[java] 컬렉션 프레임워크, 스레드 (0) | 2023.10.31 |
[java] 코드 읽기 연습 (0) | 2023.10.30 |
[java] API③ (0) | 2023.10.27 |