자바의 신 마무리(2) - Thread, File, Serializable, Network

jj J·2022년 12월 5일
1

JAVA

목록 보기
12/15

자바의 신 마무리 1편이 너무 길어져 2편에서 마저 정리해보려한다.
2편의 키워드는 Thread, File, Serializable, Network이다.

13. Thread 클래스를 확장한 클래스를 구현할 때 항상 만들어야하는 메서드는?

  • run 메서드

14. Thread 클래스와 Runnable 인터페이스를 구현해 만든 Thread를 실행하려면 각각 어떻게 해야하는지?

  • 전자는 해당 객체에서 start() 메서드 호출하면 되고
  • 후자는 Thread 클래스 생성자에 해당 구현체를 넣어서 객체 생성 후 start() 메서드 호출하면 된다.

15. Synchronized가 무엇인지?

  • 하나의 자원에 대해 여러 Thread가 동시에 수정할 경우 접근 시점에 따라 값 수정이 완료 및 상태 반영이 완료되지 않았을 수 있어 의도했던 결과가 나오지 않을 수 있다.
  • 따라서, synchronized를 사용해, 한번에 하나의 Thread만 접근할 수 있도록 제한해 동시성을 보장함

16. InputStream 클래스의 용도 및 Reader 클래스와의 차이점

  • Byte 데이터를 읽어야할때 사용하고, Reader는 char 기반 문자열을 읽을때 사용함

17. 클래스 선언시 Serializable을 구현하는 이유

  • 해당 클래스의 객체를 파일에 저장하거나, 다른 서버로 보내야할 때 구현함, Serializable을 구현하면 JVM에서 해당 객체를 저장, 다른 서버로 전송할 수 있게 해준다.

18. transient가 무엇인지?

  • Serializable이 구현된 클래스 내에서 transient 예약어가 붙은 변수는 저장 및 전송 대상에서 제외된다. 보안이 중요하거나, 저장할 필요가 없는 경우 쓴다

19. TCP 통신을 위해 쓰는 클래스가 무엇인지?

  • Socket, ServerSocket, InputStream, OutputStream

20. UDP 통신을 위해 쓰는 클래스가 무엇인지?

  • DatagramSocket, DatagramPacket
profile
매일 발전

0개의 댓글