☕ Java/이론

Map 인터페이스 Map 인터페이스를 구현하는 컬렉션 클래스들의 인스턴스들은 Key와 Value가 한 쌍을 이루는 형태로 데이터를 저장한다. Key는 Value를 찾는 지표가 되며, Value가 실질적인 데이터가 된다. 이때 Key는 중복될수 없으며, Key가 다르다면 Value는 중복되어도 상관없다. Map 인터페이스의 메소드 메소드 설명 V put(K key, V value) value를 key에 연결(mapping)하여 저장 V get(Object key) 전달된 key에 대응하는 value를 반환 해당 key에 연결(mapping)되는 value가 없으면 null 반환 V remove(Object key) 전달된 key에 대응하는 value를 제거 V replace(K key, V value) 전..
컬렉션 프레임워크 자바에서 컬렉션 프레임워크란 다수의 데이터를 쉽고 효과적으로 처리할 수 있는 표준화 된 방법을 제공하는 클래스들의 모임을 의미한다. 즉, 데이터를 저장하는 자료구조와 데이터를 처리하는 알고리즘을 구조화하여 클래스로 미리 구현해 놓은 것이다. ❓ 프레임 워크 프레임 워크(Framework)란 프로그래머들이 쓸 수 있도록 "잘 정의 된 클래스들의 모임"을 말한다. 프레임 워크는 관련 클래스 정의에 적용되는 설계원칙 또는 구조가 존재한다. ❓ 자료구조와 알고리즘 자료구조는 데이터의 탐색, 삭제 등 다양한 측면을 고려한 데이터의 효율적인 저장 방법을 연구하는 학문이다. 알고리즘은 저장된 데이터의 일부 또는 전체를 대상으로 각종 가공 및 처리의의 방법을 연구하는 학문이다. 대표적인 자료구조 : ..
와일드 카드 💡 제네릭 메소드 vs 일반 메소드 // 제네릭 메소드 정의 public static void peekBox(Box box) { System.out.println(box); } // 일반 메소드 정의 public static void peekBox(Box box) { System.out.println(box); } 제네릭 메소드의 Box의 T에는 Box의 인스턴스, Box의 인스턴스를 모두 인자로 전달 가능하다. 일반 메소드의 Box는 매개변수화 타입으로, Box의 인스턴스, Box의 인스턴스를 인자로 전달 가능할 것 같지만 불가능하다. Box와 Box, Box는 상속 관계를 형성하지 않는다. Object와 String과 Integer는 상속 관계이지만, Box은 매개변수화 타입으로 또 하나..
제네릭 클래스의 상속 제네릭 클래스는 상속이 가능하다. 이때 T의 인자가 서로 다르면 상속관계를 형성하지 않는다. 예) Box box = new Box( ); // 불가능 Object와 String는 상속관계이지만, Box와 Box는 상속관계를 형성하지 않는다. Box와 Box은 상속관계를 형성하지 않는 별개의 자료형이기 때문이다. 이러한 자료형을 "매개변수화 타입" 또는 "제네릭 타입"이라 한다. class Box { // 제네릭 클래스 (상위 클래스) protected T ob; public void set(T o) { ob = o;} public T get() { return ob;} } class SteelBox extends Box { // 제네릭 클래스 (하위 클래스) public SteelB..
제네릭 제네릭(Generic)이란 데이터의 타입을 일반화(generalize)한다는 의미로 클래스나 메소드에서 사용할 데이터의 타입을 컴파일 시 미리 지정하는 방법이다. 제네릭을 사용 시 장점 타입 변환 및 타입 검사같은 번거로운 작업을 제거할 수 있다. 클래스나 메소드 내부에서 사용되는 객체의 타입 안정성을 높일 수 있다. → 실수가 컴파일 오류로 이어짐 제네릭 선언 및 생성 💡 제네릭 클래스 정의 인스턴스 생성시 결정이 되는 자료형의 정보를 로 대체한다. class Box { private T ob; public void set(T o) { ob = o; } public T get( ) { return ab; } } 💡 제네릭 인스턴스 생성 Box aBox = new Box( ); // T를 Appl..
Arrays 클래스 java.util.Arrays Arrays 클래스에는 배열을 다루기 위한 다양한 메소드가 포함되어 있다. Arrays 클래스의 모든 메소드는 클래스 메소드(static method)이므로, 객체를 생성하지 않고 바로 사용가능하다. 배열 복사 메소드 copyOf public static int[] copyOf(int[] original, int newLength) 전달받은 배열의 특정 길이만큼을 새로운 배열로 복사하여 반환한다. (복제의 개념) original에 전달된 배열을 첫번째 요소부터 newLength의 길이만큼 복사한다. 새로운 배열의 길이가 원본 배열보다 길면, 나머지 요소는 배열 요소의 타입에 맞게 기본 값으로 채워진다. 배열 요소의 타입 기본 값 byte, short, i..
Math 클래스 수학 관련 연산 기능을 제공하는 클래스이다. Math 클래스에 정의된 메소드는 모두 static으로 선언되어 있기 때문에, 인스턴스 생성 없이 사용할 수 있다. ex) Math.pow(10, 2) = 10 * 10 Math 클래스 메소드 메소드 종류 설명 Math.PI 원주율 Math.sqrt() 각도 Math.toRadians() 라디안 Math.sin(), cos(), tan() 매개변수가 라디안이어야 함 Math.log() 자연로그 밑이 e Math.pow(밑,지수) 밑^지수 class MathClass { public static void main(String[] args) { System.out.println("원주율: " + Math.PI); System.out.println(..
int와 같은 정수 자료형은 표현할 수 있는 값의 크기에 한계가 있으며, double과 같은 실수 자료형은 오차 없는 값의 표현이 불가능하다는 문제점이 있다. 이러한 문제점을 해결하기 위해 정의된 BigInteger 클래스와 BigDecimal 클래스에 대해 알아보자. BigInteger 클래스 java.math.BigInteger 정수 자료형 중 가장 표현 범위가 넓은 long형으로도 표현 불가능한 매우 큰 정수를 표현하기 위한 클래스이다. long형 범위를 넘을 경우는 잘 없겠지만, 정수 표현 범위를 넘어서게 되면 내가 의도하지 않은 결과가 나올 수 있기 때문에 거의 무한에 가까운 수를 표현해야할 가능성이 있다면 BigInteger 클래스를 사용할 수 있다. BigInteger 클래스는 문자열 형태로..
an2z
'☕ Java/이론' 카테고리의 글 목록 (3 Page)