반응형

웹(WEB)/자바(Java) 19

[Java] 자바 Stream API

개요자바 Stream API는 자바 8에서 도입된 기능으로, 컬렉션 데이터에 대해 함수형 프로그래밍 스타일로 데이터를 처리할 수 있게 해준다.Stream은 데이터의 흐름을 의미하며, 컬렉션이나 배열에 저장된 데이터를 일련의 연산을 통해 처리할 수 있도록 돕는다. Stream API는 컬렉션이나 배열과 같은 데이터 소스를 처리할 수 있으며, 주로 배열, 컬렉션, 입출력 스트림 등을 사용하여 선언적 방식으로 데이터 처리 로직을 작성할 수 있다.주요 특징은 람다식과 함께 사용되어 가독성을 높이고, 병렬 처리를 손쉽게 할 수 있다는 점이다. Stream API는 컬렉션의 데이터를 쉽게 변환하고 처리하는 데 매우 유용하다.예를 들어, 리스트의 중복을 제거하거나, 객체의 특정 필드만 뽑아서 새로운 리스트로 만들거나..

[Java] 자바 람다 Lambda

개요자바에서 람다(Lambda)는 익명 함수(anonymous function)를 간단하게 표현할 수 있는 방법이다.람다는 함수형 인터페이스(functional interface)를 구현하는데 사용된다.함수형 인터페이스란 하나의 추상 메서드만 가지는 인터페이스를 말한다. 람다 표현식의 기본 문법람다 표현식은 매개변수 -> 실행 코드 형태로 작성된다.(매개변수1, 매개변수2, ...) -> { 실행 코드 } // 기존의 인터페이스 방식interface MathOperation { int operate(int a, int b);}public class Main { public static void main(String[] args) { // 람다 표현식을 사용한 구현 Ma..

[Java] 자바 자료구조, Collection

개요Collection은 객체들을 효율적으로 저장하고 관리하는 자료구조다.자바 내에서 다양한 자료구조를 사용할 수 있는 모음집이라고 볼 수 있다.List, Set, Map등의 interface를 통해 다수의 데이터를 쉽게 처리하는 방법을 제공한다. Collection 주요 메서드add(E e) : 컬렉션에 요소 e를 추가하고, 성공하면 true를 반환한다.remove(Object o) : 컬렉션에서 요소 o를 제거하고, 제거되면 true를 반환한다. 요소가 없으면 false를 반환한다.contains(Object o) : 컬렉션에 요소 o가 존재하면 true, 없으면 false를 반환한다.isEmpty() : 컬렉션이 비어 있으면 true, 하나 이상의 요소가 있으면 false를 반환한다.size() :..

[Java] 자바 annotation

개요annotation이란 컴파일러, JVM, 프레임워크 등이 보는 주석이다.소스코드에 메타 데이터를 삽입하는 형태로 나타낸다.코드에 대한 정보를 추가하여 소스 코드의 구조 변경, 환경 설정 정보 추가 등의 작업을 진행한다. 🔍 자바 어노테이션(Annotation)이란?어노테이션은 코드에 추가적인 메타데이터를 제공하는 데 사용컴파일러에게 정보 제공, 런타임 처리, 코드 분석 도구 및 프레임워크에서 활용주석처럼 사용하지만, 프로그램 동작에 직접적인 영향을 미칠 수 있음 주요 자바 내장 어노테이션어노테이션설명사용 대상@Override메서드가 상위 클래스의 메서드를 오버라이드함을 명시메서드@Deprecated해당 메서드/클래스가 더 이상 사용되지 않음을 알림클래스, 메서드@SuppressWarnings컴파일..

[Java] 자바 Enum

개요Enum은 열거형 데이터 타입이다.데이터가 몇가지 한정된 값(주로 상수들)만을 갖는 형태로 구성되는 경우 서로 관련된 상수들을 하나의 타입으로 정의하는 특수한 클래스이다.타입 안정성(type safety)을 보장하고, 코드 가독성을 높이며, 에러 방지에 유용하다.자바의 enum은 클래스와 유사하여, 필드, 메서드, 생성자를 가질 수 있다.  enum 기본 사용법enum Day { MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY}public class Main { public static void main(String[] args) { Day today = Day.MONDAY; System.out.pri..

[Java] 자바 Generics

개요다양한 타입의 객체를 다루는 메서드로, 컬렉션 클래스에서 컴파일 시에 타입을 체크한다.미리 사용할 타입을 명시해서 형 변환을 하지 않아도 되게 한다.이로 인해 객체의 타입에 대한 안전성 향상 및 형 변환의 번거로움을 감소할 수 있다. ✅ Generics의 주요 특징컴파일 시 타입 체크 : 잘못된 타입 사용 시 컴파일 단계에서 오류를 잡을 수 있다.형 변환 불필요 : 제네릭을 사용하면 객체를 꺼낼 때 명시적 형 변환(casting)이 필요 없다.유지보수 용이 : 타입 안정성이 보장되어 코드 가독성 및 유지보수가 쉽다. 제네릭 클래스 정의클래스 또는 인터페이스 선언 시 에 타입 파라미터를 표시한다.public class Box { private T value; public void set(T ..

[Java] 자바 인터페이스

개요자바에서 인터페이스 (Interface)는 추상적인 행동을 정의하는 데 사용되는 타입이다.인터페이스는 메서드의 시그니처만을 정의하고, 그 메서드들이 실제로 어떻게 동작하는지는 구현 클래스에서 정의한다.인터페이스는 다형성, 코드의 재사용성, 유연성을 제공하는 중요한 자바의 특징 중 하나이다. 인터페이스는 주로 클래스들 간에 공통된 행동을 강제하기 위해 사용된다.클래스는 인터페이스를 구현 (implement)함으로써 그 인터페이스에 정의된 메서드를 반드시 구현해야한다. 인터페이스의 주요 특징추상 메서드만 포함: 인터페이스는 추상 메서드만 포함할 수 있다. (단, Java 8부터는 default 메서드와 static 메서드도 추가 가능)다중 상속: 자바에서 클래스는 다중 상속을 지원하지 않지만, 인터페이스..

[Java] 자바 Object 클래스

개요모든 클래스의 최상위 부모 클래스이다.자바에서 모든 클래스는 암묵적으로 Object 클래스를 상속 받는다.즉, 자바에서 직접 상속을 명시하지 않더라도 모든 클래스는 Object를 상속 받는다.이를 통해 모든 객체는 Object 클래스에서 정의된 기본적인 메서드를 사용할 수 있다. 자바에서 Object 클래스는 여러 중요한 메서드를 제공하며, 이를 통해 모든 객체가 공통으로 사용할 수 있는 동작을 정의할 수 있다.Object 클래스에서 제공하는 주요 메서드는 다음과 같다.메서드설명equals(Object obj)객체 비교. 기본적으로 참조 비교를 하지만 오버라이드 가능hashCode()객체의 해시 코드 반환. equals()와 함께 오버라이드 필요toString()객체를 문자열로 반환. 오버라이드하여 ..

[Java] 자바 제한자

개요제한자(Access Modifiers)는 클래스, 메서드, 변수 등의 접근 범위를 제한하는 키워드이다.이를 통해 캡슐화(Encapsulation)를 구현하고, 안전한 코드를 작성할 수 있다. 자바에는 4가지 주요 접근 제한자가 있다.접근 제어자동일 클래스동일 패키지다른 패키지 (상속)다른 패키지 (비상속)public✅✅✅✅private✅❌❌❌protected✅✅✅❌default✅✅❌❌ 그 외 제한자로는 abstract, final, static이 존재한다.키워드사용 목적abstract- 추상 클래스와 추상 메서드를 정의할 때 사용- 자식 클래스에서 구현하도록 강제final- 변수: 값 변경을 방지- 메서드: 오버라이드 방지- 클래스: 상속 방지static- 클래스 변수/메서드: 인스턴스화 없이 클래스..

[Java] 자바 package, import

개요🔹 패키지(Package)란?패키지는 관련된 클래스들을 묶어놓은 폴더(디렉터리) 구조이다.클래스를 논리적으로 그룹화하여 이름 충돌을 방지하고, 코드를 관리하기 쉽게 만든다.자바에서는 클래스 파일이 많아질 경우 패키지를 사용해 정리한다.폴더 구조와 패키지 이름이 일치해야 한다.🔹 임포트(Import)란?다른 패키지의 클래스를 사용하려면 import 문을 사용해야 한다.같은 패키지에 있는 클래스는 import 없이 바로 사용 가능하다. 패키지의 장점 이름 충돌 방지: 같은 이름의 클래스가 다른 패키지에서 존재할 수 있음.코드 재사용: 필요한 패키지를 가져와 사용 가능.코드 관리 용이: 논리적으로 관련된 클래스를 하나로 묶어 관리.보안성: 패키지를 사용해 클래스의 접근 제어를 설정할 수 있음 (publ..

728x90
반응형