본문 바로가기

Computer Sience66

[JAVA8] 인터페이스 기본 메소드와 스태틱 메소드 목차 기본 메소드 (Default Methods)스태틱 메소드 (Static Methods)참고 자료기본 메서드 (Default Methods)기본 메서드(Default Methods) ?인터페이스에 메소드 선언이 아니라 구현체를 제공하는 방법 해당 인터페이스를 구현한 클래스를 깨트리지 않고 새 기능을 추가할 수 있다 기본 메소드는 구현체가 모르게 추가된 기능으로 그만큼 리스크가 있다 컴파일 에러는 아니지만 구현체에 따라 런타임 에러가 발생할 수 있다 반드시 문서화 할 것. (@implSpec 자바독 태그 사용) Object가 제공하는 기능 (equals, hasCode)는 기본 메소드로 제공할 수 없다 구현체가 재정의해야 한다 본인이 수정할 수 있는 인터페이스에만 기본 메소드를 제공할 수 있다.. 2024. 10. 2.
[JAVA8] 메소드 래퍼런스 목차 UnaryOperator 인터페이스 Greeting 클래스 메소드 래퍼런스 참고 자료 UnaryOperator 인터페이스 @FunctionalInterfacepublic interface UnaryOperator extends Function { static UnaryOperator identity() { return t -> t; }} Function 인터페이스를 상속받은 함수형 인터페이스이다. Function 인터페이스는 매개 변수 타입 T, 반환 타입 R을 지정해야 하지만UnaryOperator 인터페이스는 하나의 타입만 지정하면 된다. 즉 반환 타입 = 매개 변수 타입 같은 경우에 사용하면 된다.  활용 public class Main { public stati.. 2024. 9. 30.
[JAVA8] 람다 표현식 + 변수 캡쳐 & 변수 쉐도잉 목차 로컬 클래스 / 내부 클래스 Java8 이전 익명 클래스 /로컬 클래스에서 변수 캡쳐 Java8 이후 익명 클래스 /로컬 클래스에서 변수 캡쳐 변수 쉐도잉(Shadowing)변수 캡쳐 정리 참고 자료 로컬 클래스 / 내부 클래스로컬 클래스 (Local Class)메서드 내에서 정의된 클래스를 의미 이 클래스는 메서드의 실행 흐름 안에서만 사용될 수 있다. public class LocalClassExample { public void doSomething() { // 로컬 클래스 class LocalClass { void printMessage() { System.out.println("Hello!"); .. 2024. 9. 30.
[JAVA8] 자바에서 제공하는 함수형 인터페이스 목차 함수형 인터페이스 소개 참고 자료 Function 인터페이스 람다 표현식 간소화 조건 BiFunction 인터페이스 Consumer 인터페이스 Supplier 인터페이스 Predicate 인터페이스 함수형 인터페이스? https://20240228.tistory.com/295 [JAVA8] 함수형 인터페이스와 람다 표현식 + 자바 함수형 프로그래밍목차 함수형 인터페이스란?람다 표현식?람다 표현식 - 메소드 매개변수 활용 람다 표현식 - 변수로 저장 람다 표현식 - 리턴 타입 활용 자바에서 함수형 프로그래밍 / 일급 객체 함20240228.tistory.comFunction 인터페이스 Plus10 클래스 implemets Function 인터페이스 /** * Function 함수형 인터페이스 T: 매.. 2024. 9. 30.
[JAVA8] 함수형 인터페이스와 람다 표현식 + 자바 함수형 프로그래밍 목차 함수형 인터페이스란?람다 표현식?람다 표현식 - 메소드 매개변수 활용 람다 표현식 - 변수로 저장 람다 표현식 - 리턴 타입 활용 자바에서 함수형 프로그래밍 / 일급 객체 함수형 인터페이스란? public interface RunSomething { void doIt(); // abstract 생략 가능} 인터페이스에 추상 메서드가 1개만 존재하면 해당 인터페이스는 함수형 인터페이스이다. 함수형 인터페이스 = SAM(Single Abstract Method) 인터페이스 @FunctionalInterfacepublic interface RunSomething { void doIt(); // abstract 생략 가능 public static void printName(){ // pub.. 2024. 9. 30.
컴퓨터 구조를 알아야 하는 이유 문제 해결의 관점 단순히 프로그래밍 언어 ex) 자바, 파이썬만 알아서는 여러 가지 문제가 생겼을 때 해결할 수 없다. 컴퓨터 구조를 알아야지 해결이 가능 즉 현재는 컴퓨터가 미지의 대상이지만 분석의 대상으로 시각을 바꿔야 한다.   성능, 용량, 비용 관점 개발을 할 때 항상 고려하는 3가지 컴퓨터 구조를 잘 알아야지 해당 3가지에 적합하게 개발 혹은 개발에 대한 인프라를 설계할 수 있다. 예를 들어 웹사이트를 개발하고 해당 사이트가 돌아가는 서버 컴퓨터를 고를 때 무조건 저렴한 컴퓨터? / 무조건 최신 컴퓨터? 이렇게 간단한 문제가 아니다. 개발할 웹사이트가 어느정도의 용량이 필요한지 또한 성능을 내기 위해서는 어떤 사양이 필요한지 내가 가지고 있는 비용에서 어떤 부분을 투자해야지 효율이 나오는지 이.. 2024. 9. 12.