자바) Stream API - 2) 함수형 인터페이스(Functional Interface)
·
자바 탐구
함수형 인터페이스(Functional Interface) 함수형 인터페이스(Funtional interface)는 추상메서드가 1개만 정의된 인터페이스를 의미합니다.앞서 포스팅한 내용(Strema API - 1) 람다 표현식)에서 함수형 인터페이스를 통해 람다 표현식을 이용하여함수형 프로그래밍 구현이 가능해집니다. Java 8에서 제공하는 Functional 인터페이스 java8에서 제공하는 주요 Functional 인터페이스는 java.util.function 패키지에 아래와 같이 있습니다.각 인터페이스는 매개 변수와 리턴되는 값에 따라 람다 표현식으로 표현이 가능합니다. Supplier 인터페이스@FunctionalInterfacepublic interface Supplier { T get();..
자바) Stream API - 1) 람다 표현식(Lambda Expression)
·
자바 탐구
람다 표현식(Lmabda Expression) 익명 클래스를 사용하면 가독성이 떨어지고 불편합니다.이를 보완하기 위하여 람다 표현식이 만들어졌습니다.람다 표현식은 대신에 메서드가 "하나"인 것들만 가능합니다. Java에 있는 메서드가 하나인 인터페이스  java.lang.Runnablejava.util.Comparatorjava.io.FileFilterjava.security.PrivilegeActionjava.nio.file.PathMatcherjava.lang.reflect.InvocationHandler 람다 표현식의 예 (int x, int y) -> x + y() -> 43(String s) -> { System.out.println(s); } 람다 표현식의 구조매개 변수 목록화살표 토큰(Arr..
자바) 예외 클래스
·
자바 탐구
예외 클래스 예외 (exception) 사용자의 잘못된 조작 또는 개발자의 잘못된 코딩으로 인해 발생하는 프로그램 오류 예외가 발생하면 프로그램은 곧바로 종료된다는 점에서 에러와 비슷하지만, 예외는 예외처리(exception handling)를 통해서 프로그램을 종료하지 않고, 정상 실행 상태를 유지할 수 있도록 할 수 있다. 자바는 예외가 발생할 가능성이 높은 코드를 컴파일할 때 예외 처리 유무를 확인한다. 만약 예외 처리 코드가 없다면 컴파일이 되지 않는다. 하지만 모든 예외에 대해 예외처리 유무를 확인하는 것은 아니다. try-catch-finally 블록 try { 예외 발생 가능 코드 } catch(예외클래스 e) { 예외 처리 } finally { 항상 실행 } try 블록에는 예외 발생 가능..
자바) 오버로딩과 오버라이딩
·
자바 탐구
오버로딩과 오버라이딩 오버로딩 (Overloading) 클래스 내에 같은 이름의 메서드를 여러 개 선언하는 것 메서드 오버로딩의 조건 매개 변수의 타입, 개수, 순서 중 하나가 달라야 한다 class A { 리턴 타입 메서드명 (타입 변수, ...) { ... } 리턴 타입 메서드명 (타입 변수, ...) { ... } } 리턴타입 : 같아도 상관없음 메서드 이름 : 동일해야함 매개변수 : 매개변수의 타입, 개수, 순서가 달라야함 매개값을 다양하게 받아서 처리할 수 있도록 하기 위해서는 오버로딩이 필요하다. int plus(int x, int y) { int result = x + y; return result; } double plus(double x, doutble y) { double result ..
스프링) RestClient
·
자바 탐구
RestClient REST API 서버에 HTTP 요청을 보낼 수 있는 클라이언트 툴 또는 라이브러리 client - Frontend, Frontend - Backend 뿐만이 아니라, Backend A - Backend B 사이에도 Backend A가 Backend B의 리소스를 사용할 수 있다. 클라이언트와 서버의 관계는 상대적이기 때문에 Frontend - Backend의 관계에서는 Frontend가 클라이언트가 되고, Backend - Backend 관계에서는 리소스를 요청하는 쪽이 클라이언트가 된다. UI가 갖춰진 RestClinet로는 Postman, Thunder Client, Insomnia, Soap UI 등이 있다. SpringFramework에서는 REST엔드포인트에 대한 호출을 수..
백준) (자바)10250 ACM 호텔
·
알고리즘 탐구
ACM 호텔 ACM 호텔 - 백준 - 10250번: ACM 호텔 프로그램은 표준 입력에서 입력 데이터를 받는다. 프로그램의 입력은 T 개의 테스트 데이터로 이루어져 있는데 T 는 입력의 맨 첫 줄에 주어진다. 각 테스트 데이터는 한 행으로서 H, W, N, 세 정수 www.acmicpc.net N번째 손님이 H, W 크기의 호텔에서 특정순서대로 방배정이 된다면 몇 호에 투숙하게 되는지 구하는 문제이다. N 번째와 H(높이)를 이용하여 투숙할 층을 구한다. 나머지로 몇 층에 투숙하게 될지 알 수 있는데 만약 6층에 6번째 손님이 온다면 0층이 되므로 그때는 높이와 똑같이 6층으로 맞춰주는 조건을 추가해 준다. int floor = n % h; if(floor == 0) { floor = h; } strin..
백준) (자바)4153 직각삼각형
·
알고리즘 탐구
직각삼각형 직각삼각형 - 백준 - 4153번: 직각삼각형 입력은 여러개의 테스트케이스로 주어지며 마지막줄에는 0 0 0이 입력된다. 각 테스트케이스는 모두 30,000보다 작은 양의 정수로 주어지며, 각 입력은 변의 길이를 의미한다. www.acmicpc.net 3개에 대한 입력에 대하여 직각삼각형인지를 판별하면 되는 문제이다. 피타고라스의 정리, 피타고라스의 정리 증명 피타고라스의 정리, 피타고라스의 정리 증명 학교를 졸업한 지 오랜 시간이 지난 분들도 1학기 때 공부했던 근의 공식과 이 글에서 공부할 피타고라스의 정리는 들으면 기억이 난다고 할 거에요. 피타고라스의 정리는 이처럼 학교를 졸업한 mathbang.net 위 링크는 피타고라스의 정리에 대해서 간략하게 설명이 되어있다. do - while문..
백준) (자바)11656 접미사 배열
·
알고리즘 탐구
접미사 배열 접미사 배열 - 백준 - 11656번: 접미사 배열 첫째 줄에 문자열 S가 주어진다. S는 알파벳 소문자로만 이루어져 있고, 길이는 1,000보다 작거나 같다. www.acmicpc.net 접미사를 사전 순으로 배열하여 출력해야 한다. substring을 이용하면 어렵지 않게 풀 수 있었다. 입력받은 문자열의 길이만큼 배열의 크기를 선언해 주었다. int sLength = s.length(); String[] strArray = new String[sLength]; 접미사 이기 때문에 앞에서부터 잘라서 배열에 넣어주면 되겠다는 생각을 하였다. for(int i=0; i
오지랖 토끼
'자바' 태그의 글 목록