분류 전체보기 114

입출력 클래스 및 데코레이터패턴

■ 입출력 클래스 - File 클래스 파일 개념을 추상화한 클래스 입출력 기능은 없고 파일의 속성,경로, 이름 등을 알 수 있음 ■ RandomAccessFile 클래스 - 입출력 클래스 중 유일하게 파일 입출력을 동시에 할 수 있는 클래스 - 파일 포인터가 있어서 읽고 쓰는 위치의 이동이 가능함(Seek메소드) - 다양한 자료형에 대한 메서드가 제공됨 예제코드 package others; import java.io.FileNotFoundException; import java.io.IOException; import java.io.RandomAccessFile; public class RandomAccessFileTest { public static void main(String[] args) thro..

JAVA 2019.10.25

직렬화(Serialization)

직렬화(Serialization) - 인스턴스의 상태를 그대로 저장하거나 네트웤으로 전송하고 이를 다시 복원(Deserializtion)하는 방식 - ObjectInputStream과 ObjectOuputStream 사용해서 사용. - 보조 스트림 Serializable 인터페이스 - 직렬화는 인스턴의 내용이 외부(파일, 네크워크)로 유출되는 것이므로 프로그래머가 객체의 직렬화 가능 여부를 명시 구현 코드가 없는 mark interface class Person implements Serializable(직렬화표시){} 예제코드 package serialzation; import java.io.FileInputStream; import java.io.FileOutputStream; import java...

JAVA 2019.10.24

보조 스트림

보조 스트림 - 기능을 더 해주는 스트림 실제 읽고 쓰는 스트림이 아닌 보조적인 기능을 추가하는 스트림 FilterInputStream과 FilterOutputStream이 보조 스트림의 상위 클래스 생성자 설명 FilterInputStream 생성자의 매개변수로 InputStream을 받는다. FilterOutputStream 생성자의 매개변수로 OutputStream을 받는다. 데코레이터 패턴(Decorator Pattern) Buffered 스트림 : 내부에 8192 바이트의 배열을 가지고 있으며, 읽거나 쓸 때 속도가 빠르다. DataInpuStream / DataOutputStream : 자료가 저장된 상태 그대로 자료형을 유지하며 읽거나 쓰는 기능을 제공하는 스트림 ■ 파일 복사 시간비교 버퍼..

JAVA 2019.10.23

Socket통신 HTTP 통신

Socket통신 - 접속을 계속 유지하여, 데이터를 전달한다. - 서버의 자원에 따라서 연결될 수 있는 클라이언트의 수가 한정된다. - 실시간 정보 교환에 사용한다. - HTTP보다 속도가 빠르다. HTTP통신 (웹에서의 통신) - 클라이언트의 요청이 있을 때만 데이터 응답을 전달한다. - 불필요한 자원의 점유를 없애서 다른 접속을 원활하게 하여 많은 데이터를 처리한다. - 데이터 요청 후 응답이 오면 연결은 끊어진다.

JAVA 2019.10.22

문자 단위 입출력 스트림

문자 단위 스트림 - 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