본문 바로가기

Java35

자바 입출력 관련 API 콘솔은 시스템을 사용하기 위해 키보드로 입력을 받고 모니터로 출력하는 소프트웨어를 말한다. 유닉스나 리눅스 운영체제는 터미널에 해당하고, 윈도우 운영체제는 명령 프롬포트에 해당한다. 이클립스도 Console 뷰가 있는데, 키보드로 직접 입력받고 내용을 출력한다. 자바는 콘솔로부터 데이터르 입력받을 때 System.in을 사용하고, 콘솔에 데이터를 출력할 때 System.out 을 사용한다. 그리고 에러를 출력할 때에는 System.err를 사용한다. System.in 필드 자바는 콘솔에서 키보드의 데이털르 입력받을 수 있도록 System 클래스의 in 정적 필드를 제공한다. System.in은 InputStream 타입의 필드이므로 다음과 같이 InputStream 변수로 참조가 가능하다. InputSt.. 2023. 6. 30.
자바 보조 스트림 보조 스트림이란 다른 스트림과 연결이 되어 여러 가지 편리한 기능을 제공해주는 스트림을 말한다. 보조스트림은 자체적으로 입출력을 수행할 수 없기 때문에 입출력 소스와 바로 연결되는 InputStream, OutputStream, Reader, Writer 등에 연결해서 입출력을 수행한다. 보조 스트림은 문자 변환, 입출력 성능 향상, 기본 타입 입출력 등의 기능을 제공한다. 프로그램은 입력 스트림으로부터 직접 데이터를 읽지 않고, 보조 스트림에서 제공하는 기능을 이용해서 데이터를 읽습니다. 반대로 출력 스트림으로 직접 데이터를 보내지 않고 보조 스트림에서 제공하는 기능을 이용해서 데이터를 보낸다. 보조 스트림 연결하기 보조 스트림을 연결하려면 보조 스트림을 생성할 때 자신이 연결될 스트림을 아래와 같이 .. 2023. 6. 30.
자바 입출력 스트림 자바에서 데이터는 스트림을 통해 입출력된다. 스트림은 단일 방향으로 연속적으로 흘러가는 것을 말하는데, 물이 높은 곳에서 낮은 곳으로 흐르듯이 데이터는 출발지에서 도착지로 흘러간다. 프로그램이 출발지냐 또느 도착지냐에 따라서 사용하는 스트림의 종류가 결정된다. 프로그램이 도착지이면 흘러온 데이터를 입력받아야 하므로 입력 스트림을 사용한다. 반대로 프로그램이 출발지면 데이터를 출력해야 하므로 출력 스트림을 사용한다. 입출력 스트림의 종류 java.io 패키지에는 여러 가지 종류의 스트림 클래스를 제공하고 있다. 이들 스트림 클래스는 아래와 같이 크게 두 종류로 구분된다. 바이트 기반 스트림 : 그림, 멀티미디어 등의 바이너리 데이터를 읽고 출력할 때 사용 문자 기반 스트림 : 문자 데이터를 읽고 출력할 때.. 2023. 6. 29.
자바 LIFO와 FIFO 컬렉션 후입 선출(LIFO : Last In First Out)은 나중에 넣은 객체가 먼저 빠져나가는 자료구조를 말한다. 반대로 선입선출(FIFO : First In First Out)은 먼저 넣은 객체가 먼저 빠져나가는 자료구조를 말한다. 컬렉션 프레임워크에는 LIFO 자료구조를 제공하는 Stack 클래스와 FIFO 자료구조를 제공하는 Queue 인터페이스를 제공하고 있다. Stack Stack 클래스는 LIFO 자료구조를 구현한 클래스이다. 아래 표는 Stack 클래스의 주요 메소드이다. 리턴 타입 메소드 설명 E push(E item) 주어진 객체를 스택에 넣는다. E peek() 스택의 맨 위 객체를 가져온다. 객체를 스택에서 제거하지는 않는다. E pop() 스택의 맨 위 객체를 가져온다. 객체르 스택.. 2023. 6. 29.
자바 컬렉션 프레임워크 자바는 널리 알려져 있는 자료구조를 사용해서 객체들을 효율적으로 추가, 삭제, 검색할 수 있도록 인터페이스와 구현 클래스를 java.util 패키지에서 제공한다. 이들을 총칭해서 컬렉션 프레임워크 라고 부른다. 컬렉션은 객체의 저장을 뜻하고, 프레임워크란 사용 방법을 정해놓은 라이브러리를 말한다. 실제로 컬렉션 프레임워크는 사용 방법을 정의한 인터페이스와 실제 객체를 저장하는 다양한 컬렉션 클래스(구현 클래스)를 제공한다. 컬렉션 프레임워크의 주요 인터페이스로는 List, Set, Map이 있다. 이 인터페이스들은 컬렉션 클래스를 사용하는 방법을 정의한 것이다. 그리고 아래는 이들 인터페이스로 사용 가능한 컬렉션 클래스(구현 클래스)를 보여준다. -----------> Collection 2023. 6. 29.
자바 스레드 제어 스레드 객체를 생성하고 start() 메소드를 호출하면 바로 실행되는 것이 아니라 실행 대기 상태가 된다. 실행 대기 상태란 언제든지 실행하 준비가 되어 있는 상태를 말한다. 운영체제는 실행 대기 상태에 있는 스레드 중에서 하나를 선택해서 실행 상태로 만든다. 실행 상태의 스레드는 run() 메소드를 모두 실행하기 전에 다시 실행 대기 상태로 돌아갈 수 있으며, 실행 대기 상태에 있는 다른 스레드가 선택되어 실행 상태가 되기도 한다. 실행 상태에서 run() 메소드의 내용이 모두 실행되면 스레드의 실행이 멈추고 종료 상태가 된다. 이 과정은 아래와 같다. start() 반복 스레드 객체 생성 ----------> 실행 대기 실행 ------------> 종료 NEW RUNNABLE TERMINATED 스.. 2023. 6. 29.
자바 멀티 스레드 운영체제에서는 실행 중인 하나의 애플리케이션을 프로세스 라고 부른다. 사용자가 애플리케이션을 실행하면 운영체제로부터 실행에 필요한 메모리를 할당받아 애플리케이션의 코드를 실행하는데 이것이 프로세스이다. 하나의 애플리케이션은 멀티 프로세스를 만들기도 한다. 예를 들어 메모장 애플리케이션을 2개 실행했다면 2개의 메모장 프로세스가 생성된 것이다. 스레드 운영체제는 두 가지 이상의 작업을 동시에 처리하는 멀티 태스킹을 할 수 있도록 CPU 및 메모리 자원을 프로세스마다 적절히 할당해주고, 병렬로 실행시킨다. 예를 들어, 워드로 문서 작업을 하면서 동시에 윈도우 미디어 플레이어로 음악을 들을 수 있다. 멀티 태스킹은 꼭 멀티 프로세스를 뜻하는 것은 아니다. 한 프로세스 내에서 멀티 태스킹을 할 수 있도록 만들어.. 2023. 6. 28.
자바 java.util 패키지 자바 표준 API에는 날짜 정보와 관련된 클래스들이 있다. 그 중에서 아래 두가지 클래스를 주로 사용한다. 클래스 용도 Date 날짜와 시간 정보를 저장하는 클래스 Calender 운영체제의 날짜와 시간을 얻을 때 사용 Date 클래스는 특정 시점의 날짜를 표현하는 클래스이다. Date 객체 안에는 특정 시점의 연도, 월, 일, 시간 정보가 저장된다. Calender 클래스는 달력을 표현한 클래스이다. 해당 운영체제의 Calender 객체를 얻으면, 연도, 월, 일, 요일, 오전/오후, 시간 등의 정보를 얻을 수 있다. Date 클래스 Date 클래스는 날짜를 표현하는 클래스이다. Date는 객체 간에 날짜 정보를 주고받을 때 매개 변수나 리턴 타입으로 주로 사용된다. 현재 시각의 Date 객체는 아래와.. 2023. 6. 28.
자바 java.lang 패키지 java.lang 패키지에 속하는 주요 클래스와 간단한 용도를 살펴보면 아래와 같다. 클래스 용도 Object - 자바 클래스의 최상위 클래스로 사용 System - 표준 입력 장치(키보드)로부터 데이터를 입력받을 때 사용 - 표준 출력 장치(모니터)로 출력하기 위해 사용 - 자바 가상 기계를 종료할 때 사용 - 쓰레기 수집기를 실행 요청할 때 사용 Class - 클래스를 메모리로 로딩할 때 사용 String - 문자열을 저장하고 여러 가지 정보를 얻을 때 사용 Wrapper Byte, Short, Character Integer, Float, Double Boolean, Long - 기본 타입의 데이터를 갖는 객체를 만들 때 사용 - 문자열을 기본 타입으로 변환할 때 사용 - 입력값 검사에 사용 Mat.. 2023. 6. 28.