[JAVA] java.util.function 패키지
·
Back-End/Java
[작성일: 2023. 02. 13] java.util.function 패키지자주 사용되는 다양한 함수형 인터페이스 제공 함수형 인터페이스메서드설명java.lang.Runnablevoid run()매개변수도 없고, 반환값도 없음.SupplierT get()매개변수는 없고, 반환값만 있음.Consumervoid accept(T t)Supplier와 반대로 매개변수만 있고, 반환값이 없음.FunctionR apply(T t)일반적인 함수, 하나의 매개변수를 받아서 결과를 반환Predicateboolean test(T t)조건식을 표현하는데 사용됨.매개변수는 하나, 반환 타입은 boolean Predicate isEmptyStr = s -> s.length() == 0;String s = "";if(isEmpt..
[JAVA] 람다식
·
Back-End/Java
[작성일: 2023. 02. 12] 람다식(Lambda Expression)함수(메서드)를 간단한 식으로 표현하는 방법익명 함수(이름이 없는 함수, anonymous function)람다식은 익명 함수가 아닌 익명 객체임!함수와 메서드의 차이근본적으로 동일하나 함수는 일반적 용어, 메서드는 객체지향개념 용어함수는 클래스에 독집적이며 메서드는 클래스에 종속적임.람다식(익명 객체)을 다루기 위한 참조변수가 필요함.class ex { public static void main(String[] args) { // Object obj = (a, b) -> a > b ? a : b; // 람다식, 익명객체 Object obj = new Object() { int max(int a, int b) {..
[JAVA] 스레드
·
Back-End/Java
[작성일: 2023. 02. 09] 프로세스와 스레드(process & thread)프로세스: 실행 중인 프로그램. 자원(resources)과 스레드로 구성됨.스레드: 프로세스 내에서 실제 작업을 수행. 모든 프로세스는 최소한 하나의 스레드를 가지고 있음.프로세스 : 스레드 = 공장 : 일꾼싱글 스레드 프로세스: 자원 + 스레드멀티 스레드 프로세스: 자원 + 스레드 + 스레드 +...+ 스레드하나의 새로운 프로세스를 생성하는 것보다 하나의 새로운 스레드를 생성하는 것이 더 적은 비용이 듦.     멀티스레드의 장단점대부분의 프로그램이 멀티스레드로 작성되어 있음. 장점- 시스템 자원을 보다 효율적으로 사용할 수 있음.- 사용자에 대한 응답성(responseness)이 향상됨.- 작업이 분리되어 코드가 간결..
[JAVA] 애노테이션
·
Back-End/Java
[작성일: 2023. 02. 08]  애너테이션주석처럼 프로그래밍 언어에 영향을 미치지 않으며 유용한 정보(설정 정보 등)를 제공하는 것.@Test // 이 메서드가 테스트 대상임을 테스트 프로그램에게 알림 (JUnit)public void method() { ...}     표준 애너테이션@Override- 컴파일러에게 오버라이딩하는 메서드라는 것을 알림.- 오버라이딩을 올바르게 했는지 컴파일러가 체크하게 함.- 오버라이딩 할 때 메서드 이름을 잘못 적는 실수 하는 경우가 많으니 사용해 볼 것.class Parent { void parentMethod() {}}class Child extends Prent { @Override boid parentMethod() {} }@Deprecated- ..
[JAVA] 열거형
·
Back-End/Java
[작성일: 2023. 02. 08] 열거형(enum)관련된 상수들을 같이 묶어놓은 것. Java는 타입에 안전한 열거형을 제공함.class Card { enum CLOVER, HEART, DIAMOND, SPADE } // 열거형 Kind를 정의 enum Value { TWO, THREE, FOUR } // 열거형 Value를 정의 0 1 2 final Kind kind; // 타입이 int가 아닌 Kind 임에 유의해야 함. final Value value;}if(Card.CLOVER==Card.TWO) // true가 나오지만 false여야 의미상 맞음.if(Card.Kind.CLOVER==Card.Value.TWO) // 컴파일 에러. 타입이 ..
[JAVA] 지네릭스
·
Back-End/Java
[작성일: 2023. 02. 08]  지네릭스(Generics)컴파일 시 타입을 체크해 주는 기능(compile-time type check) - JDK 1.5 도입객체의 타입 안정성을 높이고, 형변환의 번거로움을 줄여줌.타입체크와 형변환을 생략할 수 있어 코드가 간결해짐.import java.util.ArrayList;public class GenericTest { public static void main(String[] args) { ArrayList list = new ArrayList(); list.add(10); list.add(20); list.add("30"); // String을 추가 Integer i = (Integer..