javaboiii의 JAVA/JAVA 요약정리(멘토씨리즈) 19

JAVA -19) 파일 입출력

JAVA1. 자바 입출력과 슽트림프로그램은 데이터를 외부에서 입력받아 처리하고 출력하는 구조로 되어 있습니다. 프로그램으로 들어오는 모든 값을Input이라 하고, 출력되는 값을 Output이라고 합니다. 이를 '입출력(I/O)'이라고도 부르며 자바에서는 입출력을 처리하기 위해 별도의 I/O 패키지를 제공합니다.여기서 데이터란, 자바 프로그램에서 처리할 수 있는 모든 데이터를 의미합니다. 디스크상에 존재하는 데이터일 수도 있고, 키보드나 마우스와 같은 외부 입력장치에서 입력되는 데이터일 수도 있으며, 인터넷을 통해 전송되는 데이터일 수도 있습니다. 예를 들어 디스크에 있는 파일을 읽어서 파일을 쓴다고 가정한다면 우선 파일에 접근하기 위한 길이 필요합니다. 또한 읽어온 데이터를 쓰기 위한 길도 필요합니다..

JAVA -18) 스레드(Thread)

JAVA1. 프로세스(process)와 스레드(thread)컴퓨터에서 워드로 문서를 작성하면서 음악을 듣고, 동시에 메신저를 할 수 있습니다. 이처럼 동시에 두 가지 이상의 작업을 처리하는 것을 '멀티태스킬(multi-tasking)'이라고 합니다. 멀티태스킹을 위한 두 가지 도구가 바로 프로세스와 스레드 입니다. 프로그램은 파일이 존재하지만 아직 메모리에 올라가 있지 않은 상태, 즉 실행되지 않은 코드의 집합을 말합니다.프로그램을 실행하는 순간 메모리에 올라가고 동작하게 되는데 이 상태의 프로그램을 '프로세스'라고 합니다.프로세스는 독립적으로 메모리에 등록되므로 여러 개의 프로그램을 동시에 실행할 수 있습니다. 이러한 프로세스 내부에 존재하면서 실행 흐름을 나타내는 것을 '스레드'라고 합니다. 각각의 ..

JAVA - 17) 람다식

JAVA1. 람다식 (Lambda expression)자바는 JDK 1.8부터 함수 프로그래밍 '람다식(Lambda expression)'을 지원하고 있습니다. 람다식은 함수의 이름이 없는익명 함수(anonymous function)를 만들기 위한 표현식을 말합니다.자바는 객체를 기반으로 프로그램을 구현하는 객체 지향 프로그램입니다. 따라서 클래스를 먼저 생성하고, 클래스 안에 메서드와 객체를 만들어 사용해야 합니다. 하지만, 함수형 프로그래밍은 객체 지향 프로그램과 달리 함수만들 구현하고 실행할 수 있는 개발 방식입니다.  자바에서는 함수, 즉 메서드를 사용하기 위해 많은 과정을 거치게 됩니다. 이러한 과정을 생략하여 함수를 하나의 간결한식으로 표현한 것이 람다식입니다. 즉 '식별자 없이 실행 가능한 ..

JAVA - 16) 컬렉션 프레임워크(Collection Framework)

JAVA1. 컬렉션 프레임워크(Collection Framework)자료 구조는 프로그램 실행 시 메모리에 자료를 유지하고 관리하기 위해 사용합니다. 배열은 정한 크기를 변경하거나삭제할 수 없습니다. 또한 별도의 기능이 없기  때문에 직접 index를 이용해 데이터를 저장해야 합니다. 자바는 이러한불편함을 해결하기 위해 필요한 자료구조를 미리 구현하여 java.util 패키지에서 제공하고 있습니다.이를 '컬렉션 프레임워크'라고 합니다. 컬렉션은 기존에 있던 List(리스트), Queue(큐), Tree(트리) 등의 자료 구조를 뜻하고프레임워크는 클래스와 인터페이스를 묶어 놓은 개념입니다.즉, 컬렉션 프레임워크란 기존에 존재햇던 자료 구조에 인터페이스로 설계된 기능을 클래스를 통해 제공하여 데이터관리에 용..

JAVA -15) 기본 API 클래스

JAVA1. 자바 API(Application Programming Interface) 문서자바에서 제공하는 API(Application Programming Interface)는 프로그램 개발에 자주 사용되는 클래스 및 인터페이스의모음을 말하며 라이브러리라고도 부릅니다. 이전에는 자바 개발도구를 설치할 때 함께 설치되었으나, 지금은 분리되어따로 설치하거나, 사잉트를 이용해 확인할 수 있습니다.자바에서 제공하는 API를 확인하려면, 검색 사이트에서 'java api doc'를 검색하면 문서를 확인할 수 있습니다.자바는 방대한 API 문서를 제공하고 있습니다. API 문서를 잘 활용하면 개발 능력을 향상하는 데 도움이 됩니다.2. java.lang 패키지java.lang 패키지는 자바 프로그램의 기본적인 ..

JAVA -14) 예외처리

JAVA1. 예외 처리에러(error)와 예외(exception)자바 프로그램을 실행하다 보면 갑자기 프로그램이 종료되거나, 어떤 원인에 의해 잘못 동작하여 오류 메세지가 나타나는 등 예기치 못한 오류가 발생합니다.전자는 우리가 해결할 수 없는 시스템에 에러가 발생해 프로그램이 종료된 경우이며 후자는 프로그램 사용 중 발생한 오류를 개발자가 처리해 메세지가 출력된 경우입니다. 자바는 에러 또는 예외가 발생하는 경우, 해당 사항을 클래스로 관리합니다. 컴파일 또는 실행 중에 문제가 발생하면 해당문제에 따른 클래스 객체를 생성합니다. 이 클래스를 이용해서 프로그램 동작 중에 발생하는 예외들을 처리할 수 있습니다.에러(error)에러는 시스템에 비정상적인 상황이 생겻을 때 발생합니다. 외부 요인일 수도 있고,..

JAVA -13) 내부 클래스

JAVA1. 내부 클래스내부 클래스는 클래스 안에 만들어진 또 다른 클래스로 중첩 클래스라고도 부릅니다. 클래스에 다른 클래스를 선언하는이유는 두 개의 클래스가 서로 긴밀한 관계를 맺고 있기 때문입니다. 내부 클래스는 다음과 같은 장점이 있습니다.두 클래스 멤버들 간에 손쉽게 접근할 수 있습니다.불필요한 클래스를 감춰서 코드의 복잡성을 줄일 수 있습니다.보통 바깥쪽의 클래스를 '외부 클래스', 안쪽의 클래스를 '내부 클래스'라고 합니다. 외부 클래스를 한 대의 자동차로가정한다면, 내부 클래스는 그 자동차를 구성하는 엔진, 기어, 방향지시등처럼 독립적으로 존재 하지만자동차를 완성하는데 반드시 필요한 부품에 속합니다.public class OuterClass{ // 외부 클래스 ... class Inn..

JAVA -12) 추상 클래스와 인터페이스

JAVA1. 추상 클래스와 추상 메서드추상 메서드(Abstract Method)다형성을 위해 메서드의 선언은 통일해야 하지만 실제로 구현하는 내용은 자식 클래스마다 달라야 할 때, 부모 클래스의메서드는 비워두고 자식 클래스에서 오버라이딩하여 구현해낼 수 있습니다.자바는 이와 같은 경우를 공식 지원하며 방법을 제공하고 있습니다. 선언부만 작성하고 구현부는 작성하지 않고 남겨둔미완성 메서드를 '추상 메서드'라고 부릅니다.추상 메서드를 선언할 때는 abstract 키워드를 함께 표기해야 합니다. 또한 메서드 구현부인 중괄호{ } 대추상 메서드를선언하는 방법은 다음과 같습니다.[접근 제한자] abstract 반환 타입 메서드 이름(매개변수1, 매개변수2...);하지만 'abstract 메서드는 반드시 abstr..

JAVA -11) 다형성과 타입 변환

JAVA1. 클래스에서의 타입 변환타입 변환은 타입을 다른 타입으로 변환하는 것으로 자바에서는 다음과 같이 두 가지의 대표적인 타입 변환이 있습니다.자료형(타입) 변환클래스의 객체 타입 변환클래스의 타입 변환도 마찬가지로 자동 형 변환과 강제 형 변환이 있습니다. 단, 자료형에 비해 타입 변환이 가능한범위가 상당히 좁습니다. 클래스의 타입 변환은 서로 상속 관계에 있는 클래스 사에서만 변환할 수 있습니다.클래스의 자동 타입 변환자료형에서의 자동 형 변환과 마찬가지로 개발자가 직접 명시하지 않아도 자동으로 타입 변환이 일어나는 것을'클래스 자동 타입 변환'이라고 부릅니다. 클래스 자동 타입 변환은 상속 관계에 있는 자식 클래스의 객체를 부모 타입의객체로 변환하는 것을 말합니다. 클래스의 자동 타입 변환을 ..

JAVA -10)상속

JAVA1. 상속(Inheritance)상속이란상속은 부모가 자식에게 무언가를 물려주는 것을 상속이라고 부르는 것처럼, 자바에서도 부모 역할을 하는 클래스가자식 역할을 하는 클래스에게 클래스 멤버와 매서드를 물려주는 것을 상속이라고 합니다.상속은 클래스를 재사용하기 때문에 중복을 줄여주고 수정을 최소화하는 특징을 가지고 있습니다. 상속을 해주는 클래스 : 부모 클래스, 상위 클래스, 기반 클래스상속을 받는 클래스 : 자식 클래스, 하위 클래스, 파생 클래스 자바에서 상속을 구현하는 방법은 자식 클래스를 선언할 때, extends라는 키워드를 사용해 상속받을 클래스를지명합니다. 자식 클래스에서 선택받은 클래스는 부모 클래스 역할을 하게 됩니다.class A{ // 부모 클래스는 작식 클래스에서 지명받기 전..