본문 바로가기

분류 전체보기15

람다식 목표 자바의 람다식에 대해 학습하기 람다식 람다식은 간단히 말해서 메서드를 하나의 식으로 표현한 것이다. 람다식은 함수를 간략하면서도 명확한 식으로 표현할 수 있게 해준다. 메소드를 람다식으로 표현하면 메소드의 이름과 반환값이 없어지므로, 람다식을 '익명 함수' 라고도 한다. 람다식으로 표현하기 이전에 하나의 메소드를 사용하기 위해서는 클래스를 정의해야하고, 객체를 생성해야만 비로소 이 메소드를 호출 할 수 있었다. 람다식은 그 모든 과정없이 오직 람다식 자체만으로 이 메소드의 역할을 대신할 수 있다. 표현이 간단하며, 매개변수로 전달되어지는 것이 가능하고, 메소드의 결과로 반환될 수도 있다. 람다식 사용법 람다식은 메소드에서 이름과 반환타입을 제거하고 매개변수 선언부와 몸통 { } 사이에 '->'를 추.. 2021. 3. 6.
제네릭 목표 자바의 제네릭에 대해 학습하기 제네릭이란 다양한 타입의 객체들을 다루는 메소드나 컬렉션 클래스에 컴파일 시의 타입체크를 해주는 기능이다. 객체의 타입을 컴파일 시에 체크하기 때문에 객체의 타입 안정성을 높이고 형변환의 번거로움이 줄어든다. 타입 안정성을 높인다는 것은 의도하지 않은 타입의 객체가 저장되는 것을 막고, 저장된 객체를 꺼내올 때 원래의 타입과 다른 타입으로 잘못 형변환되어 발생할 수 있는 오류를 줄여준 다는 뜻이다. 예를 들어, ArrayList 와 같은 컬렉션 클래스는 다양한 종류의 객체를 담을 수 있긴 하지만 보통 한 종류의 객체를 담는 경우가 더 많다. 그런데도 꺼낼 때마다 타입체크를 하고 형변환을 하는 것은 아무래도 불편할 수 밖에 없다. 게다가 원하지 않는 종류의 객체가 포함되.. 2021. 3. 6.
I/O 목표 자바의 Input과 Ontput에 대해 학습하기 스트림 (Stream) / 버퍼 (Buffer) / 채널 (Channel) 기반의 I/O I/O란 Input과 Output의 약자로 입력과 출력을 말한다. 컴퓨터 내부 또는 외부의 장치와 프로그램간의 데이터를 주고 받는 것을 말한다. 스트림 (Stream) 기반의 I/O 자바에서 입출력을 수행하려면, 두 대상을 연결하고 데이터를 전송할 수 있는 무언가가 필요한데 이것을 스트림(stream)이라고 한다. 스트림은 단방향 통신만 가능하기 때문에 하나의 스트림으로 입력과 출력을 동시에 처리할 수 없다. 그래서 입력과 출력을 동시에 처리하기 위해서는 입력스트림(input stream)과 출력스트림(output stream)이 모두 필요하다. 스트림은 먼저 보.. 2021. 3. 6.
애노테이션 목표 자바의 애노테이션에 대해 학습하기 애노테이션 (annotation)은 프로그램의 소스코드 안에 다른 프로그램을 위한 정보를 미리 약속된 형식으로 포함시킨 것이다. 주석처럼 프로그램에 영향을 미치지 않으면서도 유용한 정보를 제공할 수 있다. 예를 들어 @Override 애노테이션은 상위클래스의 메소드를 오버라이딩하는 것이라는 걸 컴파일러에게 알려주는 역할을 한다. 추상메소드가 아닌 메소드를 하위클래스에서 오버라이딩하고자 할 때, 대소문자를 틀렸다고 가정해보자. 컴파일러는 하위클래스가 상위클래스의 메소드를 오버라이딩하는 것이 아닌, 새로운 메소드를 추가하는 것이라고 판단할 것이다. 하지만 @Override 애노테이션을 사용하게되면, 컴파일러가 상위클래스에 동일한 이름의 메소드가 있는지 확인하고, 없다면.. 2021. 3. 1.