예외 처리 미루기
개발/Java
/ 2021. 5. 8.
앞에서 정리한 예외 처리 방법에서 추가로 다른 방법이 있다. 그것은 throws를 이용하여 처리를 미루는 방법인데.. 다시 말하면 해당 문장에서는 처리를 하지 않고, 해당 메서드를 사용하는 곳에서 처리를 하게 하는 것이다. throws를 사용하는 예제 public class ThrowsExeption { public Class loadClass(String fileName, String className) throws FileNotFoundException, ClassNotFoundException { FileInputStream fis = new FileInputStream(fileName); Class c = Class.forName(className); return c; } public static..
Java의 예외 처리하기 - Exception
개발/Java
/ 2021. 5. 7.
프로그램에서의 오류 · 컴파일 오류(compile error) 프로그램 코드 작성 중 발생하는 문법적 오류 최근에는 개발 환경(eclipse, intelliJ)에서 대부분의 컴파일 오류는 detection 됨. · 실행 오류(runtime error) 실행 중인 프로그램이 의도하지 않은 동작(bug)을 하거나 프로그램이 중지되는 오류 실행 오류는 비정상 종료 되는 경우 시스템의 심각한 장애를 발생 가능 예외 처리의 중요성 프로그램의 비정상 종료를 피하여 시스템이 원할이 실행되도록 함 실행 오류가 발생한 경우 오류의 과정을 재현하는 것은 현식적으로 힘듦 오류가 발생한 경우 log를 남겨서 추후 log 분석을 통해 그 원인을 파악하여 bug를 수정 자바는 안정성이 중요한 언어로 대부분 프로그램에서 발생하는 ..
reduce( ) 연산
개발/Java
/ 2021. 5. 7.
reduce( ) 연산 정의된 연산이 아닌 프로그래머가 직접 구현한 연산을 적용 T reduce( T identify, BinaryOperator accumulator ) *T idetify는 기본값 *BinaryOperator accumulator 는 BinaryOperator인터페이스를 구현한 부분 -> 람다식으로 직접 쓸 수도 있음 최종 연산으로 스트림의 요소를 소모하며 연산을 수행 reduce( ) 메서드의 두 번째 요소로 전달되는 람다식에 따라 다양한 기능을 수행 할 수 있음 람다식을 직접 구현하거나 람다식이 긴 경우 BinaryOperator를 구현한 클래스를 사용 reduce( ) 연산 구현 예 ◎ 배열의 모든 요소의 합을 구하는 reduce( ) 연산 구현 Arrays.stream(arr)..
스트림(Stream)
개발/Java
/ 2021. 5. 6.
스트림(Stream) 이란? 자료의 대상과 관계없이 배열, 컬렉션을 대상으로 동일한 연산을 수행 특징 한번 생성하고 사용한 스트림은 소모되기 때문에 재사용을 할 수 없음 → 다른 연산을 수행하기 위해서는 스트림을 재생성해야 함. 스트림 연산은 기존 자료를 변경하지 않음 스트림 연산은 중간 연산과 최종 연산으로 구분 (중간 연산은 여러 개의 연산이 적용될 수 있지만, 최종 연산은 마지막에 한 번만 적용) 최종 연산이 호출되어야 중간 연산에 대한 수행이 이루어지고 그 결과가 만들어짐 따라서 중간 연산에 대한 결과를 연산 중에 알 수 없는데 이를 '지연 연산'이라고 함. 스트림 생성과 사용 정수 배열에 연산을 수행하는 예 기존 방식 public class IntArrayTest { public static v..
람다식(Lambda expression)
개발/Java
/ 2021. 5. 5.
함수형 프로그래밍과 람다식 java는 객체 지향 프로그래밍 기능을 수행하기 위해서는 객체를 만들고 그 객체 내부에 멤버 변수를 선언하고 기능을 수행하는 메서드를 구현 java 8부터 함수형 프로그래밍 방식을 지원 함수형 프로그래밍 → 람다식 함수의 구현과 호출만으로 프로그래밍이 수행되는 방식 함수형 프로그래밍(Functional Programming : FP) 특징 함수형 프로그래밍은 순수 함수(pure function)를 구현하고 호출함으로써 외부 자료에 부수적인 영향(side effect)을 주지 않도록 구현하는 방식 순수 함수란 매개 변수만을 사용하여 만드는 함수 함수를 기반으로 하는 프로그래밍이고 입력받는 자료 이외에 외부 자료를 사용하지 않아 여러 자료가 동시에 수행되는 병렬 처리가 가능 함수형..
내부 클래스(inner class)
개발/Java
/ 2021. 5. 4.
내부 클래스(inner class) 클래스 내부에 선언한 클래스 내부 클래스를 감싸고 있는 외부 클래스와 밀접한 연관 다른 외부 클래스에서 사용할 일이 거의 없는 경우에 내부 클래스로 선언해서 사용 중첩 클래스 내부 클래스의 종류 인스턴스 내부 클래스 정적(static) 내부 클래스 지역(local) 내부 클래스 익명(anonymous) 내부 클래스 1. 인스턴스 내부 클래스 내부적으로 사용할 클래스를 선언 ( 보통 private으로 선언하는 것을 권장 ) 외부 클래스가 생성된 후 생성됨( 정적 내부 클래스와 다름 ) private이 아닌 내부 클래스는 다른 외부 클래스에서 생성 가능 2. 정적 내부 클래스 외부 클래스 생성과 무관하게 사용 정적 변수, 정적 메서드 사용 정적 내부 클래스의 일반 메서드와..