Java (14) 썸네일형 리스트형 컬렉션 컬렉션(Collection) - 메모리상에서 자료를 구조적으로 처리하는 방법을 자료구조라 일컫는데, 컬렉션은 자바에서 제공하는 자료구조를 담당하는 프레임워크 - 추가, 삭제, 정렬 등의 기능처리가 간단하게 해결 되어 자료구조적 알고리즘을 구현할 필요 없음 - java.util 패키지에 포함되며, 인터페이스를 통해 정형화된 방법으로 다양한 컬렉션 클래스를 이용 가능 컬렉션의 장점 - 저장하는 크기의 제약이 없다. - 추가, 삭제, 정렬 등의 기능 처리가 간단하게 해결된다. 1. 자료를 구조적으로 처리 하는 자료구조가 내장되어 있어 알고리즘 구현이 필요 없음 - 여러 타입의 데이터가 저장 가능하다. 1. 객체만 저장할 수 있기 때문에 필요에 따라 기본 자료형을 저장해야 하는 경우 Wrapper 클래스 사용 .. 상속과 다형성 상속이란 - 다른 클래스가 가지고 있는 멤버(필드, 메소드)들을 새로 작성할 클래스에서 직접 만들지 않고 상속을 받음으로써 새 클래스가 자신의 멤버처럼 사용할 수 있는 기능 상속의 목적 - 클래스의 재사용, 연관된 일련의 클래스들에 대한 공통적인 규약 정의 상속의 장점 - 보다 적은 양의 코드로 새로운 클래스 작성 가능 - 코드를 공통적으로 관리하기 때문에 코드의 추가 및 변경 용이 - 코드의 중복을 제거하여 프로그램의 생산성과 유지보수에 크게 기여 상속의 특징 1. 모든 클래스는 Object 클래스의 후손 - Object클래스가 제공하는 메소드를 오버라이딩하여 메소드 재구현 가능 ex) java.lang.String 클래스의 equals()와 toString() 2. 부모 클래스의 생성자, 초기화 블록.. Stack Queue Stack 스택 : 메모리 안 데이터들을 더욱 효율적으로 다루기 위해 만들어진 데이터 참조 방식이며, 한쪽 끝에서만 데이터를 넣거나 뺄 수 있는 선형구조이다. stack 클래스는 List 컬렉션 클래스의 Vector 클래스를 상속받아, 전형적인 스택 메모리 구조의 클래스를 제공 스택 메모리 구조는 선형 메모리 공간에 데이터를 저장하면서 후입선출(LIFO - Last In First Out)의 시멘틱을 따르는 자료 구조이며 가장 나중에 저장된(push) 데이터가 가장 먼저 인출(pop)되는 구조이다. Stack 클래스는 스택 메모리 구조를 표현하기 위해, Vector 클래스의 메소드를 5개만 상속받아 사용합니다. 메소드설명 boolean empty() 해당 스택이 비어 있으면 true를, 비어 있지 않으면.. 메모리의 구조 메모리 구조 모든 자바 프로그램은 자바 가상 머신 (Java Virtual Machine) 을 통해서 실행된다. 자바 프로그램이 실행되면, JVM은 운영 체제로부터 해당 프로그램을 수행할 수 있도록 필요한 메모리를 할당 받는다. 이렇게 할당받은 메모리를 JVM은 용도에 따라 다음과 같이 구분하여 관리한다. 메소드(Method) 영역 메소드영역은 자바 프로그램에서 사용되는 클래스에 대한 정보와 함께 클래스 변수(static variable)가 저장되는 영역 JVM은 자바 프로그램에서 특정 클래스가 사용되면 해당 클래스의 클래스 파일(*.class)를 읽어들여, 해당 클래스에 대한 정보를 메소드 영역에 저장 힙(Heap) 영역 힙영역은 자바 프로그램에서 사용되는 모든 인스턴스 변수가 저장되는 영역 JVM은 .. 오버로딩 오버라이딩 오버로딩 (Overloading) 오버로딩 : 자바의 한 클래스 내에 이미 사용하려는 이름과 같은 이름을 가진 메소드가 있더라도 매개변수의 개수 또는 타입이 다르면, 같은 이름을 사용해서 메소드를 정의할 수 있다. 오버로딩의 조건 메소드의 이름이 같고, 매개변수의 개수나 타입이 달라야 한다. 주의할 점은 '리턴 값만' 다른 것은 오버로딩을 할 수 없다. ex) public void test(){ System.out.println("오버로딩 test"); } int test(){ return "test"; } * 접근 제어자도 자유롭게 지정해 줄 수 있으며, 접근 제어자만 다르게 한다고 오버로딩은 불가능 오버로딩을 사용하는 이유 1. 같은 기능을 하는 메소드를 하나의 이름으로 사용할 수 있다. 2. 메소드.. 우선순위 큐와 힙 우선순위 큐(Priority Queue) 1. 우선순위 큐는 우선순위가 가장 높은 데이터를 가장 먼저 삭제하는 자료구조 2. 우선순위큐는 데이터를 우선순위에 따라 처리하고 싶을 때 사용 ex) 물건 데이터를 자료구조에 넣었다가 가치가 높은 물건부터 꺼내서 확인해야 하는 경우 자료구조 추출되는 데이터 스택(Stack) 가장 나중에 삽입된 데이터 큐(Queue) 가장 먼저 삽입된 데이터 우선순위 큐(Priority Queue) 가장 우선순위가 높은 데이터 우선순위 큐를 구현하는 방법 1. 단순히 리스트를 이용하여 구현할 수 있다. 2. 힙을 이용하여 구현할 수 있다. 힙(Heap)의 특징 1. 힙은 완전 이진 트리 자료구조의 일종 2. 힙에서는 항상 루트 노트(root node)를 제거함 3. 최소 힙(mi.. 이전 1 2 다음