Java(5)
-
Ch04. 스트림 소개
스트림 소개거의 모든 자바 애플리케이션은 컬렉션을 만들고 처리하는 과정을 포함합니다. 대부분의 프로그래밍 작업에 사용되며, 컬렉션으로 데이터를 그룹화하고 처리할 수 있습니다. 비즈니스 로직상 컬렉션에 대해 특정 카테고리로 그룹화 하던가, 특정 키워드를 사용하여 원하는 결과를 찾는 연산을 요구하는 작업이 있을 수 있습니다. 대부분 데이터베이스에서는 선언형으로 이와 같은 연산을 표현할 수 있습니다. 예를 들어 ‘SELECT name FROM cars WHERE price 이처럼 자동차의 속성을 이용하여 어떻게 필터링 할 것인지는 구현할 필요가 없습니다. 어떻게 구현해야 할지 명시할 필요가 없고 구현은 자동으로 제공됩니다. 컬렉션으로도 이와 비슷한 기능을 만들 수 있지 않을까? 많은 요소를 포함하는 커다란 ..
2024.06.25 -
Ch02. 람다식 표현
기본람다식을 사용하려면, 메소드를 하나(=추상메소드) 가진 인터페이스가 필요하다.A인터페이스를 구현한 클래스를 통해, A인터페이스 객체를 생성할 수 있다.A인터페이스를 구현한 클래스를 만들지 않고도, 익명내부클래스를 통해 A인터페이스 객체를 생성할 수 있다.람다표현식으로도 A인터페이스 객체를 생성할 수 있다.A a3 = () -> { System.out.println("난 람다식이네!"); }아래 코드는 모두 동일한 결과를 갖는다.a1.m();a2.m();a3.m();추상 메소드는 총 4가지의 종류를 갖는다. 즉, 람다식으로 사용할 수 있는 메소드의 형태는 총 4가지이다.람다식을 통해 위 4가지 인터페이스에 대한 객체를 모두 생성해보자.첫번째 경우(파라미터가 없고, 구현 부분이 한줄인 경우), 아래처럼 ..
2024.06.18 -
Ch01. 동적 파라미터화 코드 전달
배경소프트웨어 개발에서 요구사항은 항상 변한다.이러한 요구사항을 반영하면서도 엔지니어링적인 비용이 가장 최소화될 수 있으면 좋다.그뿐 아니라 새로 추가한 기능은 쉽게 구현할 수 있어야하며 장기적인 관점에서 유지보수가 쉬워야한다.변화하는 요구사항에 대응하기첫번째 시도 - 녹색사과만 필터링기존의 농장 재고목록 애플리케이션 리스트에서 녹색 사과만 필터링하는 기능을 추가한다고 가정하자.enum Color { RED, GREEN } public List filterGreenApples(List inventory) { final var result = new ArrayList(); for (final var apple : inventory) { if (GREEN.equals(apple.col..
2024.06.12 -
java동작 과정
Java Source code(.java)를 Compile하게 되면 -> .class로 변환이 됨(.class = Java Application) -> 이클립스 혹은 인텔리제이에서 RUN을 하게 되면, JVM은 .class파일을 실행(RUN)시키게 된다. 참조사이트 https://www.youtube.com/watch?v=9V0rdrm59X4
2024.01.16 -
Build, Compile, Run 개념
컴파일 (Compile) Java에서는 컴파일러가 소스코드를 바이트코드로 바꾸는 과정을 의미함. >> 위를 통해 .class파일이 생성됨. >> 바이트 코드로 바꾸는 이유 : JVM이 이해할 수 있는 코드는 바이트코드임. 빌드 (Build) 빌드는 컴파일을 포함하여, 실행할 수 있는 환경을 제공하게 됨. Run 컴퓨터가 소스코드를 이해할 수 있는 기계어로 바꾸는 것을 의미함. 앞서 컴파일러가 생성한 *.class파일(목적파일)을 JVM의 Class Loader가 JVM 상으로 가져와 메모리에 올리고, 필요한 클래스들을 로딩한다. 그리고 JIT(Just-In-Time) Compiler가 메모리 상에 있는 바이트 코드를 기계어 형태로 바꿔서 실행한다.
2023.08.25