목록JAVA/Mentor JAVA (19)
The Debugging Chronicles : "코드의 미학"
01 자바 입출력과 스트림프로그램으로 들어오는 모든 값을 Input출력되는 값을 Output이를 입출력 (I/O) 데이터란? 자바 프로그램에서 처리할 수 있는 모든 데이터를 의미 스트림 Stream 또는 가상 통로자바 프로그램밍 디스크에 접근해 데이터를 주고 받는 작업을 도와주는 통로 1 입출력 스트림의 특징자바에서는입출력을위한입력스트림(InputStream)과출력스트림(OutputStream)이있습니다. 프로그램을기준으로데이터가들어오면입력스트림이며데이터가나가면출력스트림입니다.02 입출력 스트림의 종류 바이트 기반 스트림문자 기반 스트림-Byte 단위로 파일을 읽고 출력할 때 사용- 모든 타입의 데이터 가능-문자 단위로 파일을 읽고 출력할 때 사용-문자 데이터만 가능 03 바이트 기반 스트림 in..
프로세스와 스레드 - 동시에 두가지 이상의 작업을 처리하기 위한 도구들을 말한다. 프로그램 : 파일이 존재하지만 아직 메모리에 올라가 있지 않은 상내를 말한다. (실행되지 않은 코드의 집합) 프로세스 : 프로그램을 실행하는 순간 메모리에 올라가고 동작하게 되는 상태를 말한다. (프로그램의 한 단위) 프로세스는 독립적으로 메모리에 등록되므로 여러 개의 프로그램을 동시에 실행할 수 있게 된다. 하나의 프로세스는 적어도 한 개의 스레드를 지니게 된다. 스레드 : 프로세스 내부에 존재하면서 실행 흐름을 나타내느 것을 말한다. (프로그램 내에서 동작하는 작업 단위)스레드의 사용 - 스레드를 생성하는 법 1. Thread 클래스를 상속하여 run() 메서드 구현 · 클래스를 실행시키기 위해선 start() 메서..
람다식 - 함수의 이름이 없는 익명 함수(anonymous function)를 만들기 위한 표현식이다. - 함수만을 구현하고 실행할 수 있는 함수형 프로그래밍을 사용하여, 함수를 하나의간결한 식으로 표현한 것을 말한다. - 식별자 없이 실행 가능한 함수를 말한다. 람다식 문법 - 메서드의 이름과 반환 타입을 제거하고 화살표 기호(→)를 사용해 구현한다. · 소괄호 생략하기 매개변수자료형을 생략할 수 있으며, 매개 변수가 한 개인 경우에는 소괄호도 생략이 가능하다. · 중괄호 생략하기 함수의 구현 내용이 한 문장이거나 return이 없다면 중괄호 { }도 생략 가능하다. · return 생략하기 중괄호 안의 구현 코드가 return문만 존재할 때 중괄호와 return을 모두 생략 가능하다...
컬렉션 프레임 워크(collection Framework) - 컬렉션은 기존에 있던 List(리스트), Queue(큐), Tree(트리) 등의 자료 구조를 뜻하고, 프레임워크는 클래스와 인터페이스를 묶어놓은 개념이다. - 기존에 존재했던 자료 구조에 인터페이스로 설계된 기능을 클래스를 통해 제공하여 데이터 관리에 용이한 자료 구조 객체를 구조화한 것이다. - List와 Set 인터페이스는 모두 컬렉션 인터페이스를 상속받지만, Map 인터페이스는 구조상의 차이로 별도로 정의된다. 인터페이스설명특징대표 구현 클래스List순서가 있는 데이터의 집합데이터 중복 허용 OArrayList, LinkedListSet순서를 유지하지 않는 데이터의 집합데이터 중복 허용 XHashSet, LinkedHashSetMap키(..
자바 API(Application Programming Interface) 문서 - Java에서 제공하는 프로그램 개발에 자주 사용되는 클래스 및 인터페이스 모음을 말하며, 라이브러리라고도 부른다. - 보통 JDK를 설치할 때 함께 설치되었으나, 지금은 분리되어 따로 설치하거나, 사이트를 이용해 확인할 수 있다.java.lang 패키지 Java 프로그램의 기본적인 클래스를 담고 있는 패키지이며, 다양한 기본 클래스들을 제공한다. - Object 클래스 Java의 최상위 클래스이며, Java에서 생성되는 코든 클래스는 생성될 때 상속을 하지 않아도 Object를 자동으로 상속받게 되어있다. Object 클래스의 대표적인 메서드메서드설명protected Object clone() 객체 자신을 복사한 ..
에러시스템에 비정상적인 상황이 생겼을 때 발생 에러의 종류상황outOfMemoryError프로그램 싱행 중 메모리 부족IoError입출력 에러StackOverFlowError가용 메모리 부족 현상, 재귀 호출 문제 시 발생 예외대체로 프로그램 구동 중에 나타나는 오류들문법적으로는 문제없어 보이지만 실제 운영 중에 생기는 문제들구분체크 예외비체크 예외처리 여부문법적으로 예외 처리를 강제함반드시 처리 해야함문법적으로 강제하지 않음개발자의 판단에 의해 처리확인 시점컴파일 단계실행 단계예외 클래스Runtime Exception 을 제외한 모든 예외IoExceptionSQLExceptionRuntime Exception의 자식 클래스 모두 포함NullPointerExceptionIndexOutOfBoundExce..
내부 클래스 - 클래스 안에 만들어진 또 다른 클래스를 말하며, 다른 말로 중첩 클래스라고도 말한다. - 바깥쪽의 클래스를 '외부 클래스', 안쪽의 클래스를 '내부 클래스'라고 하며, 두 개의 클래스는 서로 긴밀한 관계를 가지고 있다. - 내부 클래스는 외부 클래스 안에 선언된다는 점만 제외하면 일반 클래스와 같은 성격과 모습을 지니고 있다. public class 외부클래스명 { ... class 내부클래스명 { ... } } - 장점 · 두 클래스 멤버들 간에 손쉽게 접근할 수 있다. · 불필요한 클래스를 감춰서 코드의 복잡성을 줄일 수 있다.내부 클래스의 종류 ▶ 선언된 위치에 따라 구분된다. - 인스턴스 클래스(instance class) · 외부 클래스 내부에서 생성하고, 선언되어 사용하는..
추상 클래스와 추상 메서드 - 추상 메서드(abstract method) · 자식 클래스에게 해당 메서드 오버라이딩을 강제하기 위해 사용하는 메서드를 말한다. · abstract 키워드와 함께 표기하여 선언하고, 메서드 구현부인 중괄호{ } 대신 선언부에 세미콜론(;)을 사용한다. · 추상 메서드를 선언하는 부모 클래스에서는 구현부는 비워두고 선언부만 작성하고, 자식 클래스에서 오버라이딩으로 구현한다. · 추상 메서드는 반드시 추상 클래스 안에서 정의되어야 한다.[접근 제한자] abstract 반환타입 메서드명(매개변수1, 매개변수2, ...); - 추상 클래스(abstract class) · 하나 이상의 추상 메서드를 포함하는 클래스를 말한다. (단, 추상 클래스는 추상 메서드를 생성하지 않아도 생..
01. 클래스의 타입 변환타입 변화은 타입을 다른 타입으로 변환하는 것으로 자바에서는 다음과 같이 두가지 대표적인 타입 변환이 있다- 자료형 (타입) 변환- 클래스의 객체 타입 변환 클래스 타입 변환은 서로 상속 관계에 있는 클래스 사이에서만 변환할 수 있습니다. 1. 클래스의 자동 타입 변환 개발자가 직접 명시하지 않아도 자동으로 타입 변환이 일어나는 것 '클래스 자동 타입 변환'자식 객체를 만들면서 바로 부모 타입으로 변환할 때는 다음 과 같이 구현 부모 클래스 (타입) 객체 변수 = new 자식 클래스(); 만들어진 자식 객체를 부모 타입으로 변환할 때는 부모클래스(타입) 객체변수 = 자식 객체; package section11;class parent{}class Child extends pare..
상속 - 상속이란? · 부모 역할을 하는 클래스가 자식 역할을 하는 클래스에게 클래스 멤버와 메서드를 물려주는 것을 말한다. · 재사용을 하기 때문에 중복을 줄여주고 수정을 최소화하는 특징을 가지고 있다. (유지보수 용이성) · extends라는 키워드를 사용해 상속받을 클래스를 지명한다. · 자식 클래스는 부모 클래스의 모든 멤버를 그대로 가져다 쓸 수 있다.class 부모클래스명 { - } class 자식클래스명 extends 부모클래스명 { - }상속에서의 생성자 - super() · 부모 클래스의 생성자를 호출할 때 사용된다. · 자식 클래스의 객체를 생성하기 위해 기본 생성자가 호출되면, super()라는 메서드를 통해 부모 클래스의 기본 생성자가 호출 된다. 그러므로, 개발자가 직접 생성..