반응형

JAVA 27

태태개발일지 - 김영한 java 고급 디폴트 메서드

강의 링크https://inf.run/EXqku 김영한의 실전 자바 - 고급 3편, 람다, 스트림, 함수형 프로그래밍| 김영한 - 인프런 강의현재 평점 5점 수강생 3422명인 강의를 만나보세요. 최신 자바에 꼭 필요한 람다, 스트림, 자바를 활용한 함수형 프로그래밍 기술을 기초부터 실무 레벨까지 깊이있게 학습합니다. 람다, 함수형www.inflearn.com interface default method default 메서드는 Java 8부터 인터페이스(interface) 내부에 구현된 코드를 포함할 수 있도록 허용된 메서드입니다. 가끔 interface를 쓰다보면 defaultmethod개념이 나온다. interface의 메서드를 구현하면 안되지만, default method를 사용하여 기본 코드를 ..

JAVA 2025.08.11

태태코딩 - 김영한 고급 java 람다

강의 링크https://inf.run/EXqku 김영한의 실전 자바 - 고급 3편, 람다, 스트림, 함수형 프로그래밍| 김영한 - 인프런 강의현재 평점 5점 수강생 3249명인 강의를 만나보세요. 최신 자바에 꼭 필요한 람다, 스트림, 자바를 활용한 함수형 프로그래밍 기술을 기초부터 실무 레벨까지 깊이있게 학습합니다. 람다, 함수형www.inflearn.com 즉시평가와 지연평가 get 과 getElse의 차이를 알기 위해 간단한 코드구현 1. 즉시평가public class EagerEvaluationIf { public static int calc() { System.out.println("즉시평가: 연산이 수행됨!"); return 42; } public s..

JAVA 2025.07.29

태태개발일지 - 김영한 고급 JAVA LAMBDA

강의 링크https://inf.run/EXqku 김영한의 실전 자바 - 고급 3편, 람다, 스트림, 함수형 프로그래밍| 김영한 - 인프런 강의현재 평점 5점 수강생 3236명인 강의를 만나보세요. 최신 자바에 꼭 필요한 람다, 스트림, 자바를 활용한 함수형 프로그래밍 기술을 기초부터 실무 레벨까지 깊이있게 학습합니다. 람다, 함수형www.inflearn.com JAVA OPTIONAL optionalJava의 Optional은 NullPointerException을 방지하고, 코드ㅢ 명확성을 높이기 위해 등장한 컨테이너 클래스다.그럼 언제쓰는가?Nullable한 값 처리직접 null 체크 로직을 넣는 대신 Optional을 활용해 더 명확하고 안전하게 값을 다룰 수 있다.NullPointerExcepti..

JAVA 2025.07.28

태태개발일지 - flatMap

Java Stream과 flatMap Java의 Stream API는 컬렉션을 다루는 데 있어 매우 강력하다.특히 flatMap은 2차원 이상의 자료구조를 평탄화(flatten)할 때 필수적인 메서드이다.이번 글에서는 flatMap이 왜 필요한지, 그리고 실제로 어떻게 동작하는지 예제를 통해 쉽게 설명하겠다. 2차원 리스트List> list = Arrays.asList( Arrays.asList(1, 2), Arrays.asList(2, 4)); 이 리스트에 stream 사용 Stream> stream = list.stream(); 각 요소는 리스트이다. Stream> mappedStream = list.stream().map(innerList -> innerList.stream()); 그..

JAVA 2025.07.08

태태개발일지 - 김영한 고급JAVA (LAMBDA)

람다 메서드 참조 기존 람다 방식Lambda a = (int a, int b) -> {return a+b};Lambda b = (int a, int b) -> {return a+b}; 동일한 기능을 함수로 묶을 수 있다. Lambda a = (int a, int b) -> {add(a,b)};Lambda b = (int a, int b) -> {add(a,b)};public static int add (a ,b ){ return a+b;} 다음과 같이 함수로 묶을 수 있다. 하지만, 이것 역시 편리하게 사용할 수 있는 방법이 있는 것이다. 그것이 바로메서드 참조이다. 메서드 참조의 기본 문법 메서드 참조는 (::) 연산자를 사용한다.클래스명::메서드명(정적 메서드)참조변수::메서드명(인스턴스 메..

JAVA 2025.05.26

태태개발일지 - 김영한 자바 고급

람다 람다식은 함수형 인터페이스(추상 메서드가 하나인 인터페이스)의 인스턴스를 간결하게 표현하는 방법이다.Java 8부터 도입된 기능으로, 코드의 길이를 줄이고 가독성을 높여줍니다. 람다는 메서드만 전달하며, 익명클래스보다 더 간단하게 함수 객체를 만들 수 있습니다. 단, 람다는 함수형 인터페이스에만 사용할 수 있고, this 키워드는 외부 클래스의 인스턴스를 참조합니다 익명클래스 익명클래스는 이름이 없는 클래스로, 주로 일회성으로 인터페이스나 추상클래스를 구현할 때 사용한다. 예를 들어, Comparator나 Runnable 같은 인터페이스를 구현할 때 별도의 클래스를 만들지 않고 코드 내에서 바로 정의할 수 있다. 익명클래스는 여러 메서드를 구현할 수 있고, 내부에 필드나 초기화 블록도 선언할 수 있..

JAVA 2025.05.20

태태개발일지 - JAVA 고급편(3) 김영한 람다

람다&제네릭제네릭 사용 이유1. 중복과 가시성Function func1 = a -> a+3;Function2 func2 = a -> a+2; 이와같이 람다를 만들 때 비슷하거나 같은 코드를 여러개만든다면, 중복과 가시성에 문제가 생길 수 있음 2. 람다 대입Function func1 = a -> a+3;#Function2 func2 = a -> a+2;Function2 func2 = func1 (x) 아래와 같이 java 특성상 같은 값이라도 다른 자료형에 값을 대입할 수 없다. 즉 int s = 10String w = "10"w =s (x) 같은 값이라도 대입할 수 없기 때문이다. 제네릭&람다@FunctionalInterfacepublic interface Function { R apply(T ..

JAVA 2025.05.05

태태개발일지 - JAVA 고급편(3) 김영한 람다

고차함수 고차 함수(Higher-Order Function)는 함수를 인자로 받거나, 함수를 반환하는 함수를 의미한다 쉽게 말해서 기본적인 함수는 int, float, 객체 ... 간단한 자료형을 넘기지만, 함수자체를 넘기는 함수를 고차함수라고 한다. 즉, 함수 자체를 값처럼 전달하거나 반환할 수 있는 함수가 고차 함수다. 기본적인 함수는 int, float, 객체 등 단순 자료형을 인자로 받지만, 고차 함수는 함수 자체를 인자로 받거나 결과로 반환한다 import java.util.function.Function;public class HighOrderFunctionExample { // 함수를 인자로 받는 고차 함수 public static int compute(Function oper..

JAVA 2025.05.02

태태코딩 - 람다(김영한 실전자바 고급 3편)

요즘 AI공부를 시작하다보니, AI공부를 쉬고싶을 때 백엔드 공부로 치유하는 느낌이다,, 원래는 백엔드도 점점 공부라고 느껴지던 참이였는데,, 치료된건가..? 싶다 일단 AI 끝나면 멀티스레드를 마무리하고, 람다를 제대로 다시 공부해볼 예정이다. 효율적인 코드?역시 영한 강사님이다,, 아직 시작 부분이지만, 람다가 왜 필요한지 설명해주신다.머리속 코드로 작성해보자면 public void ex1(){ String ex1 = "행복"System.out.println("오늘은 "+ ex1+ "해요");} public void ex2(){ String ex2 = "우울"System.out.println("오늘은 "+ ex2+ "해요");}public class Main { public static void..

JAVA 2025.04.27

태태개발일지 - 고급 java (김영한) 컬랙션 동시성

전 글에서 CAS 연산을 다룬 후 컬랙션 동시성에 대해 글을 작성해보려한다. Collection 동시성? 자바에서는 List, Map, Set 컬랙션들은 기본적으로 동기화가 되어있지 않기 때문에, 멀티쓰레드 환경에서 사용할 경우 동기화를 고려해야한다.해결방법 1. 프록시를 사용하여 synchronized를 메서드 마다 붙여서 동시성을 보장해준다. 2. Collections.synchronizedXXX() 이라는 동기화된 컬렉션을 사용한다. 사실 1번과 2번 둘다 사용할 수 는 있지만, 현업에서는 더 간편하고 효율적으로 사용하기 위해서 java.util.concurrent를 사용한다. 종류(1) Concurrent List클래스특징CopyOnWriteArrayList- 읽기 연산이 많고, 쓰기 연산이..

JAVA 2025.03.19
반응형