목록Development/Java (6)
자르비 왕국
Key와 Value - Key : Value를 찾을 지표, 중복 불가 - Value : 저장되는 데이터 값, 중복 가능 클래스 - HashMap - TreeMap : 정렬 상태 유지, 정렬 대상은 Key HashMap public Set keySet() : 모든 Key를 담아서 반환, 해당 Key를 활용하여 value접근 가능 TreeMap 해당 클래스는 정렬 상태를 유지하므로, TreeSet처럼 Comparable를 구현하던지, Comparator를 TreeSet의 생성자에 전달한다. (Set 컬렉션 클래스 포스팅 참고)
List 인터페이스를 구현하는 컬렉션 클래스 - ArrayList : 배열을 이용하여 인스턴스 저장 - LinkedList : 리스트를 구성하여 인스턴스 저장 ArrayList - 패키지 : java.util.List, java.util.ArrayList List list = new ArrayList(); List형 참조변수를 선언한 이유는 코드에 유연성을 제공하기 위함이다. List list = new ArrayList(); -> List list = new LinkedList(); 메소드 - add() : 저장 - get(index) : 참조 - remove(index) : 제거 특징 - 배열처럼 길이를 신경쓰지 않아도 된다. - 내부적으로 배열을 생성하여 인스턴스를 저장하는데, 필요하면 그 배열의 ..
- 성격이 같은 자료형을 담을 수 있는 객체 - Object로 자료형을 일반화할 경우 구현은 가능하지만 매번 형변환을 해줘야하는 불편함이 있다. - 또한 Object라서 어떠한 자료형도 저장할 수 있기 때문에, 개발자의 의도와 맞지 않는 방식으로 코드가 흘러갈 수 있다. 예를 들어서 아래와 같은 Box 클래스가 있다고 가정하자 class Box { private Object o; public void set(Object o) { tihs.o = o; } public Object get() { return this.o; } } 개발자는 원래 이 코드를 Apple, Banana와 같이 과일 class를 담는 용도로 구현했다. 하지만 아래와 같이 String문자열도 저장이 가능하기 때문에 개발자의 의도와 벗어..
JVM의 메모리 모델 - 메소드 영역 (Method Area) : 메소드의 바이트 코드, static 변수 - 스택 영역 (Stack Area) : 지역변수, 매개변수 - 힙 영역 (Heap Area) : 인스턴스 메소드 영역 ※ 바이트코드 : 소스파일을 컴파일 할 때 생성되는, JVM에 의해 실행이 가능한 코드 특정 클래스의 정보가 메모리 공간에 올려질 때 채워지는 영역 스택 영역 - 지역변수와 매개변수가 저장되는 공간 - 해당 중괄호를 벗어나면 바로 소멸되는 특성의 데이터 저장을 위한 영역 힙 영역 - 인스턴스가 저장되는 영역 - 가상머신에 의한 가비지 컬렉션이 일어나는 메모리 공간 - 인스턴스의 소멸 시점과 소멸 방법이 지역변수와 달라서 따로 저장 - 인스턴스의 소멸 시점 : 가상머신의 역할 (개..
인터페이스 (Interface) 구성 - interface 선언 - 추상 메소드 : 몸체 없는 메소드 interface Printable { public void print(String dox);// 추상 메소드 } - 상속 키워드 : implements (구현) 특징 - 구현할 인터페이스를 명시할 때 키워드 implements를 사용 - 한 클래스는 둘 이상의 인터페이스 구현 가능 (다중 상속) - 상속과 구현 동시 가능 본질적 의미 인터페이스를 상속한 클래스들이 내부적으로 어떻게 이루어지는지 알 필요가 없다. 사용자는 인터페이스의 메소드만 호출하면 된다. 인터페이스 문법 메소드 인터페이스의 모든 메소드는 public이 선언된 것으로 간주 (public 생략) 변수 - 반드시 선언과 동시에 초기화 필요..
상속 기존에 정의된 클래스에 메소드와 변수를 추가하여 새로운 클래스를 정의하는 것 - 상속 키워드 : extends - 상속의 대상이 되는 클래스 : 상위 클래스, 기초 클래스, 부모 클래스 - 상속을 하는 클래스 : 하위 클래스, 유도 클래스, 자식 클래스 - 하위클래스 -> 상위클래스 (화살표 방향 참고) - 단일 상속 - IS-A 관계 상속의 목적 연관된 일련의 클래스들에 대해 공통적인 규약을 정의할 수 있다. 클래스가 여러 개인 경우, 인스턴스를 관리할 때 복잡해진다. 하지만 공통적인 규약을 정해둔다면 관련된 인스턴스들의 관리가 편리해진다. 예를들어, 대학동기와 직장동기가 있다고 할때, '동기'라는 공통적인 규약을 만들고 이 규약을 따르는 대학동기와 직장동기를 정의하면 된다. 이렇게 공통된 규약이..