13.1 멀티태스킹 멀티태스킹이란 멀티 + 태스킹의 합성어로서 다수의 작업을 동시에 처리하는 것을 의미한다. 스레드와 멀티태스크 이제, 멀티태스크 응용프로그램을 작성하기 위한 스레드 개념을 알아보자. 스레드란 직역하면 바느질을 할 때 사용하는 실이다. 바늘에 꿰어진 하나의 실로 하나의 바느질 작업만 할 수 있다. 한 사람이 두개의 바느질을 동시에 하려면 실이 따로 필요하다. 컴퓨터 용어로 사용되는 스레드는 실의 의미와 일맥 상통한다. 컴퓨터에서 사용하는 스레드는 thread of control의 준말로서 프로그램 코드를 실행하는 하나의 실 혹은 제어의 개념이다. 하나의 실로 하나의 바느질밖에 할 수 없듯이, 하나의 스레드로 하나의 작업 밖에 처리 할 수 없다. 한 프로그램에서 2개의 스레드가 실행된다고 ..
8.1 자바의 입출력 스트림 컴퓨터 공학에서 스트림은 연속적인 데이터 흐름 혹은 데이터를 전송하는 소프트웨어 모듈을 말한다. 자바에서 입출력 스트림은 응용 프로그램과 입출력 장치를 연결하는 소프트웨어 모듈이다. 스트림의 양끝에는 입출력 장치와 자바 응용프로그램이 연결된다 스트림은 단방향이다 스트림을 통해 흘러가는 기본단위는 바이트나 문자이다. 스트림은 선입선출, 즉 FIFO 구조이다. 자바 응용프로그램은 입력 스트림과 출력 스트림과만 연결하고, 입출력 스트림이 입출력 장치를 제어하고 실질적인 입출력을 담당한다. 스트림이란 순서가 있는 데이터의 연속적인 흐름이다. 스트림은 바이트들의 연속적인 흐름이다. 입출력을 물의 흐름처럼 간주한다. 바이트 스트림과 문자 스트림 입출력 단위에 따라서 분류. 바이트 스트림..
7.1 컬렉션과 제네릭 컬렉션(collection)은 안드로이드를 비롯한 자바 프로그램을 작성하는데 빼놓을 수 없는 중요 도구이다. 컬렉션은 제네릭(generics) 이라는 기법으로 구현되어 있기 때문에 컬렉션을 공부하기 위해서는 제네릭에 대한 공부도 필요하다. 배열은 여러 개의 데이터를 다루는데 편리한 자료구조이지만, 삽입 삭제가 빈번하고 데이터의 크기를 예측할 수 없는 응용프로그램에서는 사용하기에 불편하다. 가령 많은 사람의 이름과 전화번호를 저장되고 삽입 삭제가 빈번한 전화번호부 관리 프로그램 등에 고정 크기의 배열을 사용한다면 프로그램 작성에 상당한 어려움을 겪을 것이다. 컬렉션은 배열이 가진 고정 크기의 단점을 극복하기 위해 객체들을 쉽게 삽입 삭제 검색할 수 있는 가변 크기의 컨테이너 이다. ..
6.1 패키지(Package) 자바에서 패키지란 서로 관련 있는 클래스나 인터페이스의 컴파일된 클래스 파일들을 한 곳에 묶어 놓는 것이다. 그러므로 패키지는 디렉터리와 연관이 있음. 하나의 패키지는 하나의 디렉터리에 저장된 클래스 파일들을 지칭한다. 6.2 import와 클래스 경로 import를 사용하면 매번 완전 경로명을 불러야하는 불편함을 해소 할 수 있다. import 문은 다른 패키지의 클래스를 사용할 때, 컴파일러에게 그 클래스의 경로명을 알려주는 문으로 2가지 방법으로 사용할 수 있다. //1 import 패키지.클래스; //2 import 패키지.*; // 이렇게 하는 경우가 다 불러오니까 훨씬 편함. 6.4 자바 JDK에서 제공하는 패키지 자바에서 제공하는 기본 패키지를 자바 API라고 ..