목록Java 공부 (4)
공부하는 블로그

지금까지 컬렉션 및 배열에 저장된 요소를 반복 처리하기 위해서는 for 문을 이용했다. Java 8부터는 또 다른 방법으로 컬렉션 및 배열의 요소를 반복 처리하기 위해 Stream 반복자를 사용할 수 있다. Stream은 요소들이 하나씩 흘러가면서 처리된다는 의미를 가지고 있다. 리스트를 출력하는 코드를 for문과 stream으로 비교하기 List 컬렉션의 stream() 메소드로 Stream객체를 얻고, forEach() 메소드로 요소를 어떻게 처리할지 람다식으로 제공한다. Stream은 Iterator와 비슷한 반복자이지만, 다음과 같은 차이점을 가지고 있다.1) 내부 반복자이므로, 처리 속도가 빠르고, 병렬 처리에 효율적이다. 2) 람다식으로 다양한 요소 처리를 정의할 수 있다. 3) 중간 처리..
수학의 함수처럼, 특정한 데이터에 의존하지 않고, 관련 없는 데이터를 변경하지도 않으며, 결과값이 오직 입력값에만 영향을 받는 함수를 순수 함수라고 합니다. 순수 메서드 : input에 따라 output은 항상 일정한 것순수 메서드가 아닌 메서드 : 메서드 안에서 제어할 수 없는 y라는 값에 의해 output이 바뀔 수 있는 것 public int someMethod(int x, int y) { return x + y; //언제,어디서 뭘 어떻게 실행해도 x+y를 뱉어냄} ========================구분선====================================int z = 20;public int notpure(int x, int y) { return x + y + z; //메..

Java는 함수형 프로그래밍을 위해 Java 8 부터 람다식을 지원한다.람다식은 함수 역할을 하는 매개변수를 가진 중괄호 블록이다. 데이터 처리부는 제공된 함수의 입력값으로 데이터를 넣고, 함수에 정의된 처리 내용을 실행하는데, 이처럼 람다식을 제공하면 데이터 처리부에서 데이터를 매개 변수에 대입하고, 중괄호를 실행시켜 처리한다.람다식 : (매개변수, …) -> {처리 내용} Java는 람다식을 익명 구현 객체로 변환한다. 익명 구현 객체란? 더보기이름이 없는 클래스를 의미하며, 한 번만 사용할 목적으로 즉석에서 클래스 선언과 인스턴스 생성을 동시에 하는 것, 보통 한 번만 사용되는 특정 기능을 구현할 때 편리하다.new 인터페이스() { //필드 //메소드 } 중괄호 블록 안의 필드와 메소드는 ..
Static 멤버자바는 클래스 로더를 사용해서 클래스를 메서드 영역에 저장하고 사용한다. Static 멤버란 메소드 영역의 클래스에 고정적으로 위치하는 멤버를 말한다. 그렇기 때문에 Static 멤버는 객체를 생성할 필요 없이 클래스를 통해 바로 사용이 가능하다. “Static 멤버란 메서드 영역의 클래스에 고정적으로 위치하는 멤버를 말한다.” 이게 대체 무슨 말일까?일반적인 변수나 메서드는 객체가 생성될 때마다 새로 만들어지지만, static 멤버는 클래스 자체에 속하고, 프로그램이 실행되는 동안 한 번만 만들어진다. 즉, 객체가 여러 개 생성되더라도 static 멤버는 딱 하나만 존재한다는 뜻이다. 예시)static 필드가 필요한 경우 >>원의 지름이나 넓이를 구할 때 쓰는 원주율 π는 객체마다 가지..