18. 보조 스트림
·
JAVA
이전 포스팅에서 바이트 기반 스트림과 문자 기반 스트림에 대해서 알아봤다. 직접 사용할 수도 있지만 입출력의 성능을 향상 시키거나 데이터 출력의 형식을 지정하고 싶을 때 보조 스트림을 연결하여 사용할 수 있다. 보조 스트림은 문자 변환, 입출력 성능 향상, 기본 타입 입출력 등 여러 가지 편리한 기능을 제공해주는 스트림이다. 말 그대로 보조이기 때문에 자체적으로 입출력을 수행할 수 없으며 바이트 기반 입출력 스트림의 최상위 클래스인 InputStream, OutputSteam과 문자 기반 최상위 클래스인 Writer, Reader 등에 연결하여 입출력한다. 보조 스트림 연결 보조 스트림 연결은 보조스트림 생성할 때 자신이 연결될 스트림을 생성자의 매개값으로 제공하면 된다. InputStream is = ..
17. 입출력 스트림
·
JAVA
데이터는 스트(stream)을 통해 입력되거나 출력된다. 여기서 나오는 스트림이란 단일 방향으로 연속적으로 흘려가는 것을 의미한다. 키보드처럼 데이터가 프로그램에 도착하여 데이터를 입력받을 때는 입력 스트림을 사용하고, 반대로 모니터처럼 데이터가 프로그램으로 부터 출발하게 되면 출력 스트림을 사용해야한다. 구분 바이트 기반 스트림 문자 기반 스트림 그림, 멀티미디어 등의 바이너리 데이터 읽고 출력 문자 데이터 읽고 출력 입력 스트림 출력 스트림 입력 스트림 출력 스트림 최상위 클래스 InputStream OutputStream Reader Writer 하위 클래스 XXXInputStream XXXOutputStream XXXReader XXXWriter OutputStream(바이트 출력 스트림) 바이트..
16-2 스레드 - 제어
·
JAVA
이전 포스팅에서 스레드를 사용하기 위해 스레드.start() 메소드를 사용했다. 사실 start() 메소드를 호출한다고 해서 스레드가 곧바로 실행되는 것은 아니다. 실행 대기 상태가 되어 실행이 되기를 기다리는 상태가 된다. 운영체제에서는 실행대기 생태에 있는 스레드 중 하나를 선택하여 CPU가 run() 메소드를 실행하여 실행 상태(running)로 만든다. 상태 구분 내용 초기 상태 NEW 스레드 객체를 생성한 상태 실행 가능 RUNNABLE start()메서드로 스레드를 실행할 수 있는 상태 실행 중 RUNNING 실행가능한 스레드 중에서 스케줄러가 선택하여 스레드가 실행 중인 상태. CPU에 의해 코드가 한줄씩 실행된다. CPU는 n개의 스레드 중 1개밖에 처리할 수 없으며 n-1개의 스레드는 대..
16-1. 스레드 - 멀티스레드
·
JAVA
애플리케이션 실행 시 OS에서 실행에 필요한 메모리를 할당 받아 애플리케이션이 실행이 되는 것을 프로세스라고 한다. 이 프로세스의 흐름을 스레드라고 한다. 멀티 스레드란 하나의 프로세스 안에 두가지 이상의 흐름을 의미한다. 따라서 한 프로세스 내에 스레드가 2개라면 2개의 코드 실행 흐름이 있다는 것이다. 프로세스는 운영체제로 부터 메모리를 할당받아 처리하기 때문에 하나의 프로세스에 문제가 생겼다고해서 다른 프로세스에 영향을 미치지는 않는다. 하지만 스레드의 경우 한 프로세스 내부에서 실행되기 때문에 하나의 스레드에서 예외가 발생하게 된다면 프로세스 자체가 종료가 될 수 있기에 다른 스레드 역시 영향을 받는다. 메인 스레드 자바는 이전 포스팅에서 말했듯 메인스레드가 main()메소드를 실행하면서 시작한다..
15. java.lang에 대하여
·
JAVA
java의 기본적인 클래스를 담고 있는 클래스이다. 기본 패키지임으로 따로 import를 해줄 필요가 없다는 특징을 가지고 있다. 클래스 설명 Object 자바의 최상위 클래스 System 표준 입력 장치(키보드) 및 표준 출력 장치(모니터)를 통해 데이터 입력 출력 시 사용 Class 클래스 메모리 로딩 시 사용 String 문자열 저장 및 문자열 관련 여러 메소드 Wrapper (Byte, Short, Character Integer, Float, Double Boolean, Long) 기본 타입 데이터를 갖는데 사용 Math 수학 함수 System System 클래스를 이용하여 운영체제의 일부 기능을 사용할 수 있다. 프로그램 종료(System.exit(0)) 키보드 입력(System.read() ..
14. Object 클래스(hashcode() 및 equals())
·
JAVA
Object 자바의 모든 클래스는 Object 클래스로부터 오기 때문에 자바의 최상위 부모 클래스라고 볼 수 있다. 그 중 자주 사용하는 Object의 메소드를 살펴보자 equals() equals의 매개 값의 타입은 Object이다. 앞에서 말했듯 자바에서 제공하는 클래스의 최상위 클래스는 Object이기 때문에 자동 타입 변환으로 인해 어떠한 변수를 매개변수로 사용해도 된다. equals를 오버라이딩하지 않고 사용하게 되면 같이 주소값을 비교하는 ==와 동일한 기능을 갖는다. 이는 Object의 equals 메소드를 그대로 사용하기 때문이다. 여기서 하나의 의문점을 가지게 되는데 어떻게 String은 참조 변수임에도 불구하고 equals를 사용했을때 주소 값이 아닌 문자열을 비교했을까? 답은 이미 S..
BE전문가 프로젝트
'JAVA' 카테고리의 글 목록