목록분류 전체보기 (162)
EEALL@ONCE
Optional concatenated = stream.collect(Collectors.reducing((s1, s2) -> s1 + s2)); Collectors는 Java 스트림 API에서 제공하는 유틸리티 클래스 중 하나입니다. 이 클래스는 다양한 컬렉션을 생성하고 조작하는 데 사용됩니다. Collectors 클래스는 Collector 인터페이스의 여러 정적 메서드를 제공하여 자주 사용되는 컬렉션 연산을 수행할 수 있도록 돕습니다. Collectors 클래스의 몇 가지 유용한 메서드 중 일부를 살펴보겠습니다: toList(): 스트림의 요소를 리스트로 수집합니다. List list = stream.collect(Collectors.toList()); toSet(): 스트림의 요소를 세트로 수집합니..
1. **구현 여부:** - 추상 클래스는 일부 메서드를 구현하고 일부를 추상 메서드로 남길 수 있습니다. - 인터페이스는 모든 메서드가 추상 메서드이며, 구현을 포함할 수 없습니다. Java 8부터는 디폴트 메서드와 정적 메서드를 통해 구현을 제공할 수 있게 되었습니다. 2. **다중 상속:** - 추상 클래스는 단일 상속만 허용됩니다. 즉, 하나의 추상 클래스만 상속할 수 있습니다. - 인터페이스는 다중 상속을 지원합니다. 클래스가 여러 인터페이스를 구현할 수 있습니다. 3. **접근 지정자:** - 추상 클래스의 메서드는 public, protected, default, private 등 다양한 접근 지정자를 가질 수 있습니다. - 인터페이스의 메서드는 기본적으로 public이며, Java 9부터 ..
지금 super를 제일 먼저 안써줬다고 에러가 나는 상황... `super` 키워드는 생성자 내에서 제일 먼저 호출되어야 합니다. 생성자의 첫 줄에서 `super`를 호출하지 않으면 자동으로 기본 생성자(`super()`를 호출하는 생성자)가 호출되는데, 이는 부모 클래스의 생성자를 호출하는 것입니다. package abstractPart; public class Button extends FormElement { private String print; public Button(int space, String print) { super(space); // FormElement의 생성자를 먼저 호출 this.print = print; } @Override void func() { // func 메서드의 내..
1. UNIQUE 조건과 NULL 허용: - UNIQUE 조건은 해당 열의 값이 모두 고유하다는 것을 보장합니다. 그러나 NULL 값은 여러 개 허용됩니다. - 즉, UNIQUE 제약은 NULL 값 여러 개를 허용하지만, NULL이 아닌 값은 고유해야 합니다. 2. PRIMARY KEY와 INDEX 키 차이: - PRIMARY KEY는 테이블의 각 행을 고유하게 식별하는 주요 식별자입니다. 기본적으로 PRIMARY KEY는 해당 열에 UNIQUE 제약을 가지며, NULL 값을 허용하지 않습니다. - INDEX는 데이터베이스 성능을 향상시키기 위해 사용됩니다. UNIQUE INDEX는 해당 열의 값이 모두 고유하다는 제약을 가지며, NULL 값을 여러 개 허용할 수 있습니다. 간단한 예제로 설명하겠습니다...
Functional Interface는 Java에서 주로 람다 표현식 및 Stream API와 같은 Java 8에서 소개된 기능과 함께 사용되는 핵심 개념입니다. Functional Interface는 하나의 추상 메서드만을 포함하는 인터페이스를 말하며, 람다 표현식을 통해 이를 구현하여 함수형 프로그래밍 개념을 Java에서 사용할 수 있게 해줍니다. Java에서는 `@FunctionalInterface` 주석을 사용하여 명시적으로 Functional Interface를 선언할 수 있습니다. @FunctionalInterface interface MyFunctionalInterface { void myMethod(); } 그런 다음 람다 표현식을 사용하여 Functional Interface의 추상 메서..
git remote add origin 명령어는 Git에서 원격 저장소(remote repository)를 추가하는 명령어입니다. 여기서 "origin"은 일반적으로 원격 저장소의 이름으로 사용되는 기본 이름 중 하나입니다. 여기서 각 부분을 설명해보겠습니다: git remote: Git 원격 저장소를 관리하는데 사용되는 명령어입니다. add: 새로운 원격 저장소를 추가하고자 할 때 사용하는 키워드입니다. origin: 원격 저장소에 부여되는 별칭(alias)으로, 흔히 기본적으로 사용되는 이름 중 하나입니다. 이는 원격 저장소를 참조할 때 사용됩니다. 따라서 이 명령어는 "origin"이라는 이름으로 새로운 원격 저장소를 추가한다는 의미입니다. 일반적으로 이 명령어는 Git 저장소를 처음 만들 때 사용..
final 키워드는 Java에서 여러 곳에서 사용되는데, 주로 필드, 메서드, 클래스, 그리고 인스턴스에 적용됩니다. 여기서 각각의 사용법에 대해 설명하겠습니다. 1. **final 필드:** - 값 변경이 불가능합니다. - 선언 시 또는 생성자에서 초기화해야 합니다. public class Example { final int constantValue; public Example(int value) { constantValue = value; // 생성자에서 초기화 } } ``` 2. **final 메서드:** - 자식 클래스에서 오버라이드 불가능합니다. ```java public class Parent { final void finalMethod() { // final 메서드 구현 } } public ..
메소드 체이닝(Method Chaining)은 객체 지향 프로그래밍에서 사용되는 패턴 중 하나로, 메서드를 연이어 호출하여 코드를 간결하게 작성하는 방법입니다. 주로 Java와 같은 객체 지향 언어에서 많이 사용됩니다. 메소드 체이닝을 사용하면 코드를 보다 명확하고 간결하게 만들 수 있습니다. 예를 들어, 다음과 같이 메소드 체이닝을 사용하여 객체를 초기화하고 속성을 설정하는 코드를 작성할 수 있습니다. Person person = new Person() .setName("John") .setAge(30) .setAddress("123 Main St"); 여기서 `Person` 클래스의 각 메서드는 해당 속성을 설정하고, 마지막에는 초기화된 객체가 반환됩니다. 이를 통해 여러 메서드 호출을 하나의 줄에 ..