본문 바로가기

개발/Java23

API 활용 API 활용 JSON, XML Data Format 구조화된 데이터를 표현하고 전송하기 위한 데이터 형식 JSON 경량의 데이터 교환 형식으로 텍스트 기반의 구조화된 데이터를 표현 가독성이 좋고 다양한 프로그래밍 언어와 호환된다. 객체 JSON 객체는 중괄호로 묶인 키-값 쌍의 집합 키는 문자열, 값은 JSON 데이터 타입 중 하나 문자열, 숫자, 불리언, 객체, 배열, 널 배열 JSON 배열은 대괄호로 묶인 값들의 순서있는 리스트 XML eXtensible Markup Language 데이터를 저장하고 전송하기 위한 마크업 언어 XML 데이터는 트리 구조로 이루어져 있고, 요소, 속성, 텍스트, 주석 등으로 구성된다. 차이점 JSON은 간결한 구조로 인해 가독성이 높고 데이터 크기가 작다. XML은 태.. 2024. 1. 29.
Collection Framework API Collection Framework API 람다와 스트림 API 함수형 인터페이스 단 하나의 추상메서드를 가진 인터페이스 자바 8부터 함수형 인터페이스를 사용하면 람다 표현식을 활용 할 수 있다. 인터페이스의 구현체를 람다 표현식으로 구현 @FunctionalInterface 어노테이션을 사용하여 표시 어노테이션은 선택 사항이지만 컴파일러에게 해당 인터페이스가 함수형 인터페이스 임을 알려주는 역할을 합니다. 사용하는 이유 람다 표현식 지원 메서드 참조 Stream API와의 통합 병렬 프로그래밍 코드 재사용 인터페이스는 new를 사용하여 객체 생성을 할 수 없기 때문에 익명 클래스를 사용하여 구현체 구현 package fc.java.model2; @FunctionalInterface // 함수형 인터페.. 2024. 1. 29.
제네릭(Generic) 제네릭(Generic) 제네릭을 사용해야하는 이유 Generic 데이터 타입을 일반화 하는 방법 컬렉션 , 메서드, 클래스 등에서 사용하는 데이터 타입을 런타임 시에 결정 할 수 있다. 코드의 재사용성, 유연성이 높아진다. 제네릭 타입을 선언할 때 어떤 데이터 타입이 들어올지 결정하지 않으므로, 다양한 데이터 타입에 대해 일반적으로 적용할 수 있는 메서드나 클래스를 작성할 수 있기 때문입니다. public class ObjectArr { // 는 가변 타입 나중에 재정의로 타입 결정 private T[] array; private int size; public ObjectArr(int size){ array = (T[])new Object[size]; // 어떤 타입이 올지 모르기 때문에 일단 T[] 타.. 2024. 1. 29.
Collection API Collection API Wrapper 클래스 기본 데이터 타입을 객체로 다룰 수 있도록 만들어진 클래스 wrapper 클래스를 사용하면 자동으로 boxing과 unboxing이 이루어진다. boxing 기본 데이터 타입을 해당하는 wrapper 클래스 객체로 변환하는 것 unboxing wrapper 클래스 객체를 해당하는 기본 데이터 타입으로 변환하는 것 Auto-boxing 기본 데이터 타입의 값을 해당하는 wrapper 클래스 객체로 자동 변환 하는 것 Auto-unboxing wrapper 클래스 객체를 해당하는 기본 데이터 타입으로 자동 변환 하는 것 public class WrapperTest { public static void main(String[] args) { // 정수형 변수에 .. 2024. 1. 29.
인터페이스 기반의 프로그래밍 인터페이스 기반의 프로그래밍 인터페이스 기반의 프로그래밍이란? 인터페이스 클래스를 노출시키고 자식 클래스의 내부 코드를 숨긴다. 자식 클래스에서 재정의를 통해 C에서 노출 되어 있는 기능을 구현하고, 상속관계로 구현 느슨한 연결 두 객체가 느슨하게 연결되어 있다는 것은 그 둘이 상호작용을 하긴 하지만 서로에 대해서 서로 잘 모른 다는 것을 의미 User입장에서 자식 클래스의 내부 동작 방식을 모르기 때문에 느슨한 연결 관계 User는 인터페이스 부모 클래스를 통해 자식 클래스를 동작 시킬 수 있다. 자식 클래스의 동작 방식을 몰라도 사용 가능하다. // CC를 이용하여 BB를 동작시키는 프로그래밍(인터페이스 기반의 프로그래밍) public class InterfaceAPI { public static v.. 2024. 1. 29.
자바 String 클래스 자바 String 클래스 문자열 생성 방법 문자열은 객체로 취급한다. String str1 = new String("Hello World") String str2 = new String("Hello World") stack메모리에 저장된 str1객체를 Heap 메모리에 새로운 Stirng객체를 생성(str1에서 HelloWorld를 가리킨다) new를 사용하면 Heap Memory에 저장 String str1 = "HelloWorld" // 리터럴 상수 String str2 = "HelloWorld" // 리터럴 상수 stack메모리에 저장된 str1객체를 Literal Pool 메모리에 새로운 문자열 객체를 생성 (str1에서 HelloWorld를 가리킨다) Literal Pool 재활용 메모리 공간 .. 2024. 1. 29.
자바 API 자바 API 직접 만들어서 사용하는 Class 최대값, 최소값을 구하는 클래스 배열을 돌면서 0번째 인덱스 항을 초기값으로 설정하고 인덱스 1부터 비교하면서 최대, 최소값 찾기 public class MinMaxFinder { private MinMaxFinder(){ // 객체 생성을 막기 위해 private으로 생성자를 구현 } public static int findMin(int[] arr){ int min = arr[0]; // 초기값 for (int i = 1; i < arr.length; i++) { if (arr[i] < min){ min = arr[i]; } } return min; } public static int findMax(int[] arr){ int max = arr[0]; //.. 2024. 1. 29.
자바 최상위 클래스 Object 자바 최상위 클래스 Object Object 클래스를 이용하여 객체 생성하기 어떤 클래스 한 개를 만들 때 생략된 코드? default pakage ( import java.lang) java.lang.Object(최상위 클래스) : extends Object default 생성자 : public A(){ super() } Object 클래스에 업캐스팅을 하면 자식 클래스의 메서드를 사용할 수 없기 때문에 다운 캐스팅을 하여서 사용 Object obj = new A(); // Upcasting ((A)obj).display(); // Downcasting Object 클래스 다형성 인수로 활용 Object 타입으로 Upcasting되면 반드시 Downcasting을 하게 되어 있다. public clas.. 2024. 1. 29.