다형성 : 오버로딩/오버라이딩 구현할 때 사용
동적바인딩 : 동적(runtime)실행 시, 적용되는 값.
- 메소드의 매개변수(파라미터, 인자값)는 메소드를 호출할 때, 값을 전송하게 되는데 이것을 바인딩이라고 한다.
예외처리 : 에러발생 시, 프로그램을 멈추지않고, 계속 사용할 수 있도록 하는 것이 목적
ex) 스마트폰 앱에서 에러 발생 시 앱이 종료되는 경우, 다른 기능을 사용할 수 없다.
예외처리를 하게 되면 앱이 종료되지 않고, 에러 발생 화면만 사용하지 못하고, 다른 화면은 계속 사용 가능하다.
java.lang 패키지 - Thread
Thread : 한 가지 작업을 실행하기 위해 순차적으로 실행할 코드를 이어놓은 것
- 하나의 스레드는 하나의 코드 실행 흐름, 한 프로세스 내에 스레드가 2개라면, 두 개의 코드 실행 흐름 생김
- 멀티 프로세스 : 애플리케이션 단위의 멀티 태스킹
- 멀티 스레드 : 애플리케이션 내부에서의 멀티 태스킹
- 멀티 스레드는 하나의 프로세스 내부에 생성되기 때문에 한 개의 스레드에 오류가 발생하면 다른 스레드에도 영향을 미친다. 따라서 예외처리 필수.
- 멀티 스레드는 애플리케이션 개발에 꼭 필요함. 대용량 데이터의 처리 시간을 줄이기 위해 데이터를 분할해서 병렬로 처리하는 곳에서 사용되기도 하고, UI를 가지고 있는 애플리케이션에서 네트워크 통신을 하기 위해 사용하기도 한다.
- Thread 특징 : 비동기적으로 run이 실행된다. 따라서 통신 프로그램에서 많이 사용된다.
- Thread 클래스는 통신 프로그램에서 사용한다. ex) 안드로이드 앱
- 통신에서 Thread를 사용하는 이유?
- 데이터를 요청하고 응답받을 때까지 기다려야한다
-> 1개의 Thread가 기다린다면 통신 프로그램 때문에 웹 프로그램이 멈춰야한다. 이 상황을 방지하려고 비동기(다중) Thread를 사용한다. 데이터를 응답받는 Thread 중간에, 다른 Thread를 실행하는 역할이 필요하다.
FIle 클래스와 입/출력 스트림 : 게시판에서 파일 업로드/다운로드 기술에 사용
- 바이트스트림(문자가 아닌 데이터) : InputStream(업로드), OutputStream(다운로드) 클래스 사용
-> 게시판 첨부파일은 바이트스트림으로 데이터를 인풋, 아웃풋한다.
- 파일로부터 입력, 출력이 필요할 때 : FileInputStream(FileReader), FileOutputStream(FileWriter)
- 캐릭터스트림(문자데이터) : Reader, Writer 클래스 사용
<실습>
- 예외처리
- 예외처리 전)
예외처리 후)
- 예외처리를 하면 종료가 되지 않는 것을 보여주는 예시
-> 에러 발생했지만, 3번째 배열에 저장된 수 100 출력
- finally 출력
- Thread 예시1
- Thread 클래스를 이용한 스레드 생성
- Thread 클래스에는 이미 run() 메소드가 정의되어 있다. 하지만 아무것도 하지 않는 메소드라서 상속받는 클래스에서 run()메소드를 재정의(Override)한다.
- Thread 예시2
- Runnable 인터페이스를 이용한 스레드 생성
- Runnable 인터페이스에는 run() 메소드 하나만이 선언되어있다. 재정의(Override)해준다.
- Thread 예시3
- 스레드는 실행되는데에 순서가 없다는 것을 보여주는 예시
* 상속 실행 순서
MyThreadPractice 객체 생성 -> "myThread1" 이 szName에 저장 -> super(szName) 은 Thread클래스의 name에 szName값이 저장 -> this.getName() -> myThread1 출력
- File 클래스와 입출력 스트림
- 아래와 같이 오류 메시지가 나오면 import를 해준다.
- 파일로부터의 입력(FileInputStream)
- 파일로부터의 출력(FileOutputStream)
'JAVA 기반 웹&앱 콘텐츠 융합 디지털 컨버전스 개발자 과정' 카테고리의 다른 글
[24일차] Ajax 이용한 REST API방식의 댓글 기능 구현 (0) | 2020.12.10 |
---|---|
[22일차] (0) | 2020.12.08 |
[20일차] (0) | 2020.12.06 |
[19일차] (0) | 2020.12.03 |
[17일차] (0) | 2020.12.01 |