Java&Kotlin7 [Java] Generic Type & Wildcard Type JDK 1.5에 등장한 제네릭은, 여러 타입의 파라미터를 삽입해 객체를 생성할 수 있어 코드를 간결하게, 재사용성을 높여주었다. 또한 컴파일 단계에서 검출되지 않은 타입 문제가 런타임 단계에서 발생할 가능성을 방지해준다. 1️⃣ 제네릭 타입Generic TypesA generic type is a generic class or interface that is parameterized over types. 유형에 대해 매개변수화되는 제네릭 클래스 또는 인터페이스.타입을 구체적으로 지정하는 것이 아닌, 추후에 지정할 수 있도록 일반화해두는 것.내부에서 타입을 지정하는 것이 아닌, 외부에서 지정하게끔 일반화작성한 클래스 또는 메서드의 코드가 특정 데이터 타입에 얽매이지 않게 한다. 생김새 ArrayList .. 2024. 6. 27. [Java] Stream & Lambda - Stream Stream 또한, 병렬화 기술을 이용한 컬렉션 사용의 효율을 높이기 위해 등장했다.기존 컬렉션 탐색의 for문, Iterator 가독성, 재사용성, 호환성(배열, ArrayList 등)이 너무 떨어진다.그래서 등장한 스트림은, 한번에 한개씩 만들어지는 연속적인 데이터 항목들의 모임이다, 1️⃣예시 코드//기존 for문List threeLowestCalorieDishNames = new ArrayList();for (Dish dish : dishes) { if(dish.getCalories() >= 300) { continue; } String dishName = dish.getName(); threeLowestCalorieDishNames.add(dishName); .. 2024. 6. 26. [Java] Stream & Lambda - Lambda 자바8 이후, 메서드의 1급 시민화 - 스트림 api - 인터페이스의 디폴트 메서드 기술들이 도입되고 강화되었다. 디폴트 메서드를 통해 컬렉션이 강화되고, 분산 환경에서 거대한 컬렉션을 다루기 위해 병렬화 기술이 강화되었다.이 컬렉션을 더 효율적으로 다루기 위해 스트림이 강화되고,스트림을 편리하게 사용하기 위해 선언형 - 함수형 프로그래밍이 도입되었다.선언형 - 함수형 프로그래밍을 위해 람다가 도입되었다.데이터가 복잡해지고, "무엇을" 하려는지 보다 "어떻게" 하는지가 중요해졌다.스트림을 보다 편리하게 사용하기 위해 선언형-함수형 프로그래밍이 도입 되고, 선언형적인 프로그래밍을 위해 람다가 도입되었고, 람다를 위해 함수형 인터페이스가 도입되었다.자바는 더이상 객체 지향적이지만은 않고, 선언형-함수형적이기.. 2024. 6. 25. [JAVA] Record: 불변 데이터 클래스의 활용 필드 유형과 이름만 필요한, 불변 데이터 클래스이다.JAVA 14이전, boilerplate field와 메서드가 포함된 클래스를 생성해야 했기에, 의도가 혼동되기 십상이었다. 그러나 record를 사용해 이러한 문제들이 해결되었다. 레코드는 Java14때 preview로, Java16에서 정식 기능으로 포함되었다. Record의 의의불필요한 boilerplate code 작성을 생략할 수 있다.equals, hashcode, toString 메서드 생성각 필드를 받아들이는 생성자가 Java 컴파일러에 의해 자동 생성된다반복적인 데이터 클래스를 레코드로 대체할 수 있다.필드 유형과 이름만 필요한, 불변 데이터 클래스private, final field, public constructor 자동 생성 Co.. 2024. 6. 12. 이전 1 2 다음