CS
-
자료구조 - HeapCS/자료구조 2021. 2. 18. 22:00
Heap Heap 완전 이진 트리이며 최대, 최소값만을 필요로 할 때 적합한 자료구조이다. 시간복잡도- 요소의 개수가 n개일때 삽입, 삭제시 트리의 높이 만큼 소요된다. insert: O(nlogn) delete: O(nlogn) 구현 with JAVA 최대힙 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 public class maxHeap{ private int[] heap; private int idx..
-
JAVA - Mutable, ImmutableCS/Java 2021. 2. 18. 21:18
Mutable, Immutable Immutable: String 문자열 연산에서 new 연산을 통해 생성된 인스턴스의 메모리 공간을 절대 변하지 않는다. 문자열에 변화를 주면 메모리 공간이 변하는 것이 아닌 새로운 String객체를 new로 만들어서 새로운 메모리 공간을 만들어 준다. 기존의 문자열은 GC에 의해 제거되어야 한다. Mutable: Stringbuilder, Stringbuffer 문자열 연산에서 클래스를 한번 만들고 연산이 필요할 때 크기를 변경시켜 문자열을 변경한다. 문자열 연산이 자주 있을때 사용하는 것이 적절하다. String 문자열 연산이 적고, 조회가 많을때 사용한다. 불변성을 가지기 때문에 멀티쓰레드 환경에서의 안정성을 가지고 있다. 즉, 문자열 연산이 적고 멀티쓰레드 환경일..
-
JAVA - foreachCS/Java 2021. 2. 18. 20:48
for-each for-each 인덱스를 명시할 필요없이 알아서 리스트의 사이즈 만큼 반복된다. Iterable 인터페이스를 구현한 모든 클래스에서 사용이 가능하다. 장점: 에러 여지도 없고 코드도 간결하다. 단점: 인덱스를 사용할 수 없다. Iterable 인터페이스 Collection인터페이스는 Iterable인터페이스를 extends하고 있다. 즉 Collection의 하위 데이터 집합 그룹은 Iterable을 사용할 수 있다. Iterable인터페이스는 iterator()메소드와 forEach()메소드가 존재한다. Iterator 인터페이스 Collection 인터페이스와는 별개로 존재하는 인터페이스이다. hasNext(), next(), remove()등의 메소드가 존재한다. reference ..
-
JAVA - 인터페이스와 추상클래스CS/Java 2021. 2. 18. 20:13
인터페이스와 추상클래스 공통점 선언만 있고 구현 내용이 없는 클래스이다. 안터페이스, 추상클래스만 가지고 새로운 인스턴스를 생성할 수 없다. 상속받아 구현한 자식 클래스 만이 객체를 생성할 수 있다. 인터페이스 implements로 상속받아 구현한다. 모든 클래스에 대해 상속받은 특정 메소드를 반드시 정의해야 한다. 다중상속이 가능하며 일반 변수를 가질 수 없다. 목적: 구현 객체가 같은 동작을 한다는 것을 보장할 수 있어 일관성 있는 프로그램 개발이 가능하다. 추상클래스 extends로 상속받아 구현한다. 추상 메소드가 하나라도 존재하는 클래스를 말한다. 상속받은 추상 메소드는 정의해야 하지만 일반 메소드는 정의하지 않아도 된다. 다중상속이 불가능하며 일반 메소드, 변수 등을 가질 수 있다. 목적: 상..
-
JAVA - GCCS/Java 2021. 2. 18. 19:52
GC GC 프로그램이 동적으로 할당했던 메모리 영역 중 필요 없게 된 영역을 해제하는 기능이다. JVM의 Heap영역을 관리한다. 장점 동적으로 할당한 메모리 영역의 전체를 완벽하기 관리할 필요가 없어진다. 다음과 같은 버그를 줄이거나 완전히 막을 수 있다. 유효하지 않은 포인터 접근: 이미 해제된 메모리에 접근하는 버그. 이중 해제: 이미 해제된 메모리를 다시 해제하는 버그. 메모리 누수: 더는 필요하지 않은 메모리가 해제되지 않고 남아있는 버그. 단점 어떤 메모리를 해제할지 결정하는데 비용이 발생한다. GC가 일어나는 타이밍이나 점유 시간을 예측하기 어렵다. 그러므로 프로그램이 예측 불가능하게 일시적으로 정지할 수 있으므로 실시간 시스템에는 적합하지 않다. GC의 종류 Minor GC JVM Heap..
-
자료구조 - QueueCS/자료구조 2021. 2. 17. 21:38
Queue queue 자료구조 선입선출 알고리즘으로 먼저 들어온 데이터를 먼저 반환한다. 시간 복잡도 insert: O(1) delete: O(1) search: O(n) 구현 with JAVA 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 //큐를 만들기 위해 필요한 연결 노드 정보 ..
-
자료구조 - StackCS/자료구조 2021. 2. 17. 21:22
Stack stack 자료구조 후입선출 알고리즘으로 나중에 들어온 데이터를 먼저 반환한다. 시간 복잡도 insert: O(1) delete: O(1) search: O(n) 구현 with JAVA 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 public class Stack { private int top; private int size; private int[] arr; //생성자 public stack(int size) { top = -1; this.size = size; arr = new int[size]; } pu..