본문 바로가기
728x90

Java14

[Java] Stream에 대해 알아보자 스트림(Stream)이란? Stream은 Iterator와 비슷한 역할을 하는 반복자이지만, 람다식으로 요소 처리 코드를 제공하는 점과, 내부 반복자를 사용하므로 병렬처리가 쉽다는 점, 중간처리와 최종 처리 작업을 수행하는 점에서 많은 차이를 가지고 있다. 기존 루프문 처리의 문제점 기존 Java에서 컬렉션 데이터를 처리할때는 for, foreach 루프문을 사용하면서 컬렉션 내의 요소들을 하나씩 다루었다. 간단한 처리나 컬렉션의 크기가 작으면 큰 문제가 아니지만 복잡한 처리가 필요하거나 컬렉션의 크기가 커지면 루프문의 사용은 성능저하를 일으킨다. 스트림의 등장 스트림은 Java8에서 추가된 기능으로 컬렉션 데이터를 선언형으로 쉽게 처리할 수 있다. 복잡한 루프문을 사용하지 않아도 되며 루프문을 중첩해서.. 2023. 8. 20.
[Java] Lambda 1. 람다 함수(Lambda Function)란? 람다 함수는 함수형 프로그래밍 언어에서 사용되는 개념으로 익명 함수라고도 한다. Java 8 부터 지원되며, 불필요한 코드를 줄이고 가독성을 향상시키는 것을 목적으로 두고있다. 2. 람다 함수의 특징 메소드의 매개변수로 전달될 수 있고, 변수에 저장될 수 있다.즉, 어떤 전달되는 매개변수에 따라서 행위가 결정될 수 있음을 의미한다. 컴파일러 추론에 의지하고 추론이 가능한 코드는 모두 제거해 코드를 간결하게 한다. 3. 람다식 표현 파라미터와 몸체로 구분된다. 파라미터와 몸체 사이에 > 구분을 추가하여 람다식을 완성시킨다. 몸체 부분이 단일 행일 경우 중괄호와 return문을 생략할 수 있다. 4. 익명함수를 람다식으로 변경하기 기존 방법 new Threa.. 2023. 8. 20.
[Java] Interface 인터페이스(interface)란? 클래스 간의 상속을 통해 중복된 코드를 줄일 수 있고, 유지 보수가 편리하며, 통일성이 있고 다형성을 구현할 수 있다는 이점이 있다. 하지만 다중 상속을 할 경우 method출처의 모호성 등 여러 문제가 발생할 수 있기 때문에 자바에서는 클래스를 통한 다중 상속은 지원하지 않는다. 그러한 이유로 인터페이스를 통한 다중상속을 지원한다. 인터페이스란 다른 클래스를 작성하라 때 기본 틀을 제공하면서, 다른 클래스 사이의 중간 매개 역할까지 담당하는 일종의 추상 클래스이다. 인터페이스는 오로지 ‘추상 메소드’와 ‘상수’만을 포함할 수 있다. 인터페이스 선언 접근제어자 interface 인터페이스이름 { public static final 타입 상수이름 = 값; ... publi.. 2023. 8. 20.
[Java] 객체 지향 💡 객체지향언어 (Object-oriented Language) 프로그램을 다수의 객체로 만들고, 이들끼리 서로 상호작용 하도록 만드는 프로그래밍 언어이다. 객체지향 프로그래밍 특징 추상화(abstraction) 객체들의 공통적인 특징(기능, 속성)을 도출하는 것 객체지향적 관점에서는 클래스를 정의하는 것을 추상화라고 할 수 있다.(클래스가 없는 객체지향 언어도 존재 ex.JavaScript) 캡슐화(encapsulation) 실제로 구현되는 부분을 외부에 드러나지 않도록 하여 정보를 은닉할 수 있다. 객체가 독립적으로 역할을 할 수 있도록 데이터와 기능을 하나로 묶어 관리하는 것 코드가 묶여있어서 오류가 없어 편리하다. 데이터를 보이지 않고 외부와 상호작용을 할 때는 메소드를 이용하여 통신을 한다. 보.. 2023. 8. 20.
[Java] 자바란? 💡 자바(JAVA)란? 자바는 C언어에 객체 지향적 기능을 추가하여 만든 C++과 달리, 처음부터 객체 지향 언어로 개발된 프로그래밍 언어이다. 자바는 자바 가상 머신(JVM, Java Virtual Machine)을 사용하여 운영체제와 독립적으로 동작할 수 있다. 따라서 자바는 어느 운영체제든 같은 형태로 실행 될 수 있다. 💡 자바의 특징 장점 자바는 객체지향 언어이다. 객체를 만들기 위해서 설계도인 클래스를 작성하고, 객체와 객체를 연결하여 목적에 맞는 프로그램을 만든다. 객체지향 언어의 특징인 캡슐화, 상속성, 다형성을 완벽하게 지원한다. 이식성이 높다 자바 실행환경이 설치되어 있는 모든 운영체제에서 실행 가능하다. 하이브리드 언어이다. 컴파일 언어인 동시에 인터프리터 언어이다. 텍스트 소스를 컴.. 2023. 8. 20.
728x90