Java150 [Java]익명 클래스(Anonymous Class) 익명 클래스(Anonymous Class) 이번 포스팅에서는 Java의 익명 클래스에 대해 소개합니다. Java에서 다른 클래스 내에서 클래스를 정의할 수 있으며 정의된 클래스를 중첩 클래스라고 말합니다. 중첩 클래스는 이름을 설정하지 않고 생성할 수 있으며, 이름이 없는 중첩 클래스를 익명 클래스라고 합니다. 익명 클래스는 다른 클래스 내부에 정의되므로 익명 내부 클래스라고 말하기도 하며, 다음과 같이 정의됩니다. class OuterClass { // 익명 클래스 정의 object = new Type(parameterList) { // 익명 클래스의 내부 } } 위 예제의 object는 런타임에 익명 클래스의 객체를 생성하며, 익명 클래스는 일반적으로 하위 클래스를 확장하거나 인터페이스를 구현합니다... Java 2022. 6. 21. [Java]중첩 클래스 및 내부 클래스(Nested Class and Inner Class) 중첩 클래스 및 내부 클래스(Nested Class and Inner Class) 이번 포스팅에서는 Java의 중첩 및 내부 클래스에 대해 소개합니다. Java에서는 다른 클래스 내에서 클래스를 정의할 수 있습니다. 다른 클래스 내에 정의된 클래스는 중첩 클래스(Nested Class)라고 하며 다음과 같습니다. class OuterClass { // ... class NestedClass { // ... } } 비정적 중첩 클래스(내부 클래스) 비정적 중첩 클래스는 내부 클래스라고 말하기도 하며, static 키워드를 사용하지 않고 다른 클래스 내에 정의된 클래스입니다. 내부 클래스는 외부 클래스의 멤버에 접근할 수 있습니다. 내부 클래스는 외부 클래스 내부에 존재하므로 내부 클래스를 인스턴스화하려면 .. Java 2022. 6. 21. [Java]ArrayList 초기화 방법 ArrayList 초기화 방법 이번 포스팅은 Java의 ArrayList를 초기화하는 방법을 소개합니다. add() 메서드 add() 메서드를 사용하여 ArrayList를 초기화할 수 있습니다. public static void main(String args[]) { ArrayList stringArrayList = new ArrayList(); stringArrayList.add("One"); stringArrayList.add("Two"); stringArrayList.add("Three"); ArrayList integerArrayList = new ArrayList(); integerArrayList.add(1); integerArrayList.add(2); integerArrayList.add(.. Java/컬렉션 2022. 6. 20. [Java]HashMap 특정 키가 존재하는지 확인하는 방법 HashMap 특정 키가 존재하는지 확인하는 방법 이번 포스팅은 Java의 HashMap 객체에서 특정 키가 존재하는지 확인하는 방법을 소개합니다. containsKey() HashMap 클래스의 containsKey() 메서드를 사용하여 특정 키가 존재하는지 확인할 수 있습니다. 키가 존재하면 true를 반환하고 그렇지 않으면 false를 반환합니다. 다음 예제는 containsKey() 메서드 호출 방법입니다. HashMap map = new HashMap(); map.put("One", 1); map.put("Two", 2); map.put("Three", 3); // Null 존재하는지 체크 boolean isExistsNull = map.containsKey(null); System.out.pr.. Java/컬렉션 2022. 6. 20. [Java]ArrayList 특정 값 삭제 이번 포스팅은 ArrayList에서 특정 값 삭제하는 방법을 소개합니다. ArrayList.remove() - 인덱스 remove() 메서드에 지정된 위치(인덱스)를 전달합니다. 해당 위치에 있는 요소를 제거하고 뒤에 있는 요소는 왼쪽으로 이동합니다. remove() 메서드는 삭제된 요소를 반환합니다. 다음 예제는 remove() 메서드에 인덱스를 전달하는 방법과 반환된 값을 보여줍니다. ArrayList stringArrayList = new ArrayList(); stringArrayList.add("One"); stringArrayList.add("Two"); stringArrayList.add("Three"); stringArrayList.add("Four"); System.out.println(.. Java/컬렉션 2022. 5. 30. [Java]두 개의 ArrayList 합치기(merge) 이번 포스팅은 두 개의 ArrayList를 하나의 ArrayList로 합치는 방법을 소개합니다. List.addAll() addAll() 메서드는 인자로 전달된 컬렉션 객체의 모든 요소를 ArrayList 끝에 추가합니다. 다음 예제는 liOne 끝에 liTwo의 모든 요소를 추가합니다. ArrayList liOne = new ArrayList(); liOne.add("A"); liOne.add("B"); liOne.add("C"); ArrayList liTwo = new ArrayList(); liTwo.add("D"); liTwo.add("E"); liTwo.add("F"); System.out.println("addAll() 메서드 호출 전"); System.out.println(liOne); li.. Java/컬렉션 2022. 5. 30. [Java]ArrayList 모두 삭제 clear(), removeAll() 이번 포스팅은 ArrayList 객체의 모든 요소를 제거하는 방법을 소개합니다. ArrayList.clear() 다음 예제는 clear() 메서드를 호출하여 ArrayList 객체의 모든 요소를 제거합니다. ArrayList li = new ArrayList(); li.add("A"); li.add("B"); li.add("C"); // clear() 호출 전 System.out.println(li); // clear() 호출 li.clear(); // clear() 호출 후 System.out.println(li); 실행 결과 [A, B, C] [] ArrayList.removeAll() 다음 예제는 removeAll() 메서드를 호출하여 ArrayList 객체의 모든 요소를 제거합니다. ArrayLi.. Java/컬렉션 2022. 5. 27. [Java]문자열 상수 풀(String Constant Pool)이란? 문자열 상수 풀(String Constant Pool) Java는 문자열 상수 풀 또는 문자열 풀이라고 불리는 특수한 저장 공간을 가지고 있습니다. 문자열 상수 풀은 Java의 힙 영역에 존재하는 특수한 공간으로 문자열 리터럴을 저장하는 용도로 사용됩니다. 문자열 리터럴이 생성될 때마다 JVM은 해당 문자열이 문자열 상수 풀에 존재하는지 확인합니다. 문자열 상수 풀에 해당 문자열이 존재하지 않으면, 해당 문자열을 문자열 상수 풀에 저장하고 존재하면 저장하지 않습니다. 위 내용을 이해하기 쉽게 다음 소스 코드를 살펴봅시다. int num = 10; boolean bool = false; String str = "Hello"; Java의 기본 타입(byte, char, short, int, boolean, .. Java/문자열 2022. 5. 19. [Java]기본 메서드 또는 디폴트 메서드(Default Method) 기본 메서드(Default Method) Java 8에 도입된 기본 메서드는 default 키워드를 사용하여 인터페이스(interface)에서 메서드를 구현하는 것입니다. 기본 메서드 도입 이전에는 인터페이스에 추상 메서드만 작성할 수 있었습니다. 추상 메서드는 메서드 본문이 없는 메서드입니다. 다음 예제는 인터페이스 내부에 메서드 본문이 없는 추상 메서드가 존재하므로 정상적으로 컴파일됩니다. public interface InterfaceTest { void printValue(String val); } 하지만, 다음 예제는 추상 메서드에 메서드 본문이 존재하므로 컴파일 에러가 발생합니다. public interface InterfaceTest { void printValue(String val) { .. Java 2022. 5. 12. [Java]메서드 참조(Method reference) 메서드 참조(Method reference)란? Java 8에 도입된 메서드 참조는 class::methodName 구문을 사용하여 클래스 또는 객체에서 메서드를 참조할 수 있습니다. 람다식(Lambda Expression)의 가장 큰 장점 중 하나는 코드가 짧아진다는 것인데, 람다식에 메서드 참조를 사용하면 코드를 더 간결하고 가독성 있게 만들 수 있습니다. // 람다식 str -> str.toString() // 메서드 참조 String::toString // 람다식 str -> str.length() // 메서드 참조 String::length // 람다식 (int x, int y) -> x.compareTo(y) // 메서드 참조 Integer::compareTo 메서드 참조는 이중 콜론(::)을.. Java 2022. 5. 11. [Java]제네릭 함수형 인터페이스(Generic Functional Interface) 제네릭 함수형 인터페이스(Generic Functional Interface)란? 제네릭 함수형 인터페이스는 함수형 인터페이스의 추상 메서드에 제네릭 타입을 사용하여 모든 타입을 허용하거나 타입에 대해 제약이 존재하는 인터페이스입니다. 람다식에서 타입 설정 불가능 람다식(Lambda expression)에 매개변수의 타입과 반환 타입을 설정할 수 없습니다. 다음 예제를 통해 알아봅시다. 다음은 Integer 타입의 두 매개변수를 가지며, Integer 타입의 값을 반환하는 추상 메서드가 존재하는 함수형 인터페이스입니다. @FunctionalInterface public interface IntegerFunctionInterface { Integer process(Integer x, Integer y); .. Java/함수형 인터페이스 2022. 5. 10. [Java]함수형 인터페이스(Functional Interface) 함수형 인터페이스(Functional Interface)란? Java 8에 도입된 함수형 인터페이스는 인터페이스가 함수처럼 동작하기 때문에 함수형 인터페이스라고 합니다. 함수형 인터페이스는 하나의 추상 메서드를 가지고 있어서 SAM 인터페이스(Single Abstract Method Interface)라고도 합니다. 함수형 인터페이스는 하나의 추상 메서드 외에도 정적 메서드, 기본 메서드, Object 클래스의 메서드를 가질 수 있습니다. 함수형 인터페이스 구문 함수형 인터페이스의 기본 구문은 다음과 같습니다. public interface MyFunctionInterface { public void myMethod(); } 위 예제는 구현되지 않은 단일 메서드만 포함되어 있으므로 함수형 인터페이스입니다.. Java/함수형 인터페이스 2022. 5. 10. 이전 1 ··· 7 8 9 10 11 12 13 다음