★ 객체 직렬화
일반적으로 메모리에 생성된 객체의 인스턴스는 "비영속성"을 갖는다.
파일이나 데이터베이스에 저장된 데이터처럼 영속성을 가지기 위해서 자바에서는 '객체 직렬화' 기능을 제공한다. 객체 직렬화를 사용하면 파일이나 네트워크를 통해 영속성을 유지할 수 있다.
클래스 3개가 필요하다.
1. Person
- 게터와 생성자를 사용해서 이름과 나이를 불러온다.
- Serializable을 implements 해오는 게 특징. 보통 인터페이스의 용도는 강제로 오버라이딩을 하는 것이 목적인 경우가 많지만, 여기서는 Serializable의 기능을 사용할 수 있게 하는 의미로 쓰인다.
2. 파일 저장 (FileOutputStream)
- serial.dat이라는 파일 안에 생성자의 내용을 불러들여 저장해 줌.
- 자원의 낭비를 막기 위해 사용 후 close() 메서드를 이용해 닫아주어야 함.
3. 파일 출력 (FileInputStream)
- 저장된 serial.dat 파일을 불러와서 출력해줌.
- 게터 앤 세터의 기능을 사용해 이름과 나이를 불러와 출력할 수 있도록 코딩됨.
- catch(){} 문이 3개가 있는데, 이를 한꺼번에 통합해줄 수 있음. Exception 클래스를 사용해 주면 됨!
결과
★ 멀티 쓰레드
☆ 싱글 쓰레드 실습
- run() 메서드는 각 작업을 1씩 증가시켜 목표치까지 수행해준다.
- 싱글 쓰레드는 A작업이 끝난 후 차례로 B,C작업이 수행된다.
결과
☆ 멀티 쓰레드 실습(1) - Thread
- 멀티 쓰레드를 하는 방법은 2가지가 있다.
- 그 중 하나인 멀티 쓰레드 기능을 수행하는 "Thread"라는 클래스가 라이브러리에 저장되있다.
- 이를 상속받아주면 되며, 메서드는 run()이 아닌 start()이다.
- 멀티 쓰레드 이기 때문에 작업은 순서대로 이루어지지 않으며, 컴퓨터의 빠른 처리속도 기준으로 작업이 이루어진다.
결과
☆ 멀티 쓰레드 실습(2) - Runnable
- 이해를 돕기 위해 빈 A 클래스를 생성하였다.
- A 클래스를 상속받는 경우, 다중상속이 불가능하므로 멀티 쓰레드를 상속받을 수 없다. 이런 경우 implements를 사용하여 Runnable 클래스를 사용할 수 있다.
- 메인 메서드에서 사용법은 실습(1)과 조금 다르다. 객체를 생성할 때 "Thread" 클래스를 불러온다. 그리고 그 안에 Runnable 클래스를 상속받은 YourThread의 임시객체를 생성해준다.
결과
출처 : http://kim22036.tistory.com/302
'Programming > Java' 카테고리의 다른 글
[Java] 접근제어자 public, protected, private (0) | 2014.11.08 |
---|---|
[Java] Java에서 JSON 사용하기 (0) | 2014.11.08 |
[Java] 서버/클라이언트 소켓(Socket) 통신하기 (0) | 2014.10.14 |
[Java] '지정된 크기 - 숫자 자리수'만큼 숫자 왼쪽을 0 으로 채우기 (0) | 2014.10.07 |
JAVA JSON 라이브러리 Jackson 사용법 (0) | 2014.09.11 |
댓글