공부 152

[JAVA] final

Final 이 사용될 수 있는 곳 1. Class 앞 final이 붙은 class는 상속 할 수 없게 된다. 2. Method 앞 final이 붙은 method는 Overriding(재정의)를 막아 할 수 없게 한다. 3. 변수 앞 filed멤버 앞에 final을 붙히면 그 값을 수정 할 수 없다 초기값을 선언해줘야 한다. 문서화의 한 형태로 가독성을 높이고 수정이 용이 하다는 이점이 있습니다. ex) final int students = 35; int[] student = new int [students];

공부/JAVA 2016.02.03

[JAVA] static

Static non-Static 공간적 특성 멤버는 클래스당 하나 생성 - 객체 내부가 아닌 별도의 공간에 생성 - 클래스멤버라고 부름 멤버는 객체마다 별도로 존재. - 인스턴스 멤버라고 부름 시간적 특성 클래스 로딩시에 생성 프로그램 종료시 소멸 객체 생성시 맴버 생성 공유의 특성 동일한 클래스의 모든 객체들에 의해 공유됨 공유되지 않음 - 객체를 생성하지 않고 바로 호출이 가능한 유틸성이 있는 클래스들을 만들 때 사용한다. ex) Math method -> int n = Math.abs(-1) - (공유의특성) 오류가 잃어나면 안되는 값..들에 대해서 쓰인다. ex) 선착순 10명만 구매가능한 온라인 상품엔 사람들이 몰려서 10명 이상의 사람들이 구매할 수도 있기때문에 static변수로 설정해주면 좋..

공부/JAVA 2016.02.03

[JAVA] 접근지정자(public,private,protected,default)

자바에는 네가지 접근 지정자가 있다. - public : package와 관계 없이 어떤 class에서도 접근이 가능하다. - default : 같은 package내에 있는 class만 접근 가능 - private : class 내에서만 접근 가능하며 상속받는 하위 class에서 접근 불가 - protected : 같은 package 내에 모든 class에서 접근 가능 상속받은 하위 class는 다른 package에 있어도 접근 가능 >>A패키지 에 있는 class A를 상속받은 B패키지에있는 class B는 class A에 protected로 선언된 변수 a를 사용할 수 있다는 말..... 객체지향의 특성을 살리기 위해서 public 사용을 자제하고 private로 선언해준다. 이 요소들은 getter..

공부/JAVA 2016.02.03

[자료구조] 해싱

너무 어려워서 공부가 더 필요할 것 같다. 간단한 개념만 써봄.. 해싱이란? 정보를 가능한한 빠르게 저장하고 검색하는데 사용되는 기법 중 하나 최적의 검색이 필요한 분야에서 사용됨 키의 값과 키가 저장된 위치를 찾아주는 처리과정을 해싱이라고 함. 해싱을 왜 사용하는가? 일반적인 해싱의 연산시간은 O(1)로 매우 빠르다. 단 최악의 겅우 O(n)이 될 수도 있다. 해싱 구성요소 1) 해시테이블(Hash Table) : 데이터가 처리되는 장소 키와 값 쌍으로 저장할 때 사용하는 자료구조. 해시함수를 이용해 키와 관련된 값을 매핑한다 2) 해시함수 (Hash Functions) : 키 위치 변환 함수 주어진 키를 특정 인덱스로 변환하는데 사용된다. 특정 인덱스에 이미 다른 키가 있는 경우를 충돌이라 하며 다른..

공부/자료구조 2016.02.02

[자료구조] 검색알고리즘

검색알고리즘 검색은 컴퓨터의 핵심 알고리즘 중 하나이다. 컴퓨터엔 많은 정보가 저장되 있고, 이를 효괒거으로 탐색하기 위해서는 효율적인 검색 알고리즘이 필요하다. 검색의 종류 - 불규칙선형 검색 (Unordered Linear Search) 정렬되지 않은 배열로 모든 요소에 대해 검색해야 함 -정렬/규칙 선형 검색 (Sorted/Ordered Linear Search) 정렬된 배열을 검색하는 방법. 검색을 원하는 값보다 큰 값을 만나면 -1을 반환 - 이진 검색 (Binary Search) 정렬되어 있는 자료의 집합에서 특정 자료를 찾고자 할 때 많이 사용되며 매우 빠른 검색 알고리즘이다. 자료의 집합의 중간부분을 구한 뒤 찾고자 하는 데이터와 비교해 크면 뒷부분을 가지고 작으면 앞부분을 가지고 처음의 ..

공부/자료구조 2016.02.02

[자료구조] 자바로 구현한 힙정렬

Heap Sort - 힙이란 우선순위큐를 표현한 완전이진트리의 배열식 표현을 의미한다. * 기본적으로 힙의 i번 요소의 자식은 (2*i)번과 (2*i +1)번이다. - 최대 힙 트리나 최소 힙 트리를 구성해 정렬하는 방법 * 최대힙 : 부모노드가 항상 자식노드보다 크며 완전이진트리에 가까운 이진트리를 말함 * 최소힙 : 최대힙과 반대. 부모노드가 자식노드보다 항상 작은 경우 - 힙이 수행할 수 있는 조작 삽입 [insert : 트리의 끝부분에 값을 삽입하는 함수] [upHeap : 삽입된 값의 위치를 찾아주는 함수] 삭제 [deletMax : 트리의 뿌리 부분에 존재하는 최대값을 제거하는 함수] [downHeap : 대소관계에 의해 트리를 재구성하는 함수] - 내림차순 정렬을 위해선 최대힙을 오름차순 정..

공부/자료구조 2016.02.01

[자료구조] 자바로 구현한 퀵정렬

Quick Sort [출처 : 위키피디아] - 분할정복(divide and Conquer) 방법을 통해 리스트를 정렬한다. - 리스트 가운데서 하나의 원소를 고른다 이 원소를 pivot이라 한다. - 분할(divide) : 피벗 앞엔 피벗보다 작은 값이, 뒤엔 큰 값이 오도록 피벗을 기준으로 리스트를 둘로 나눈다. - 분할된 두개의 작은 리스트에 대해 재귀적으로 이 과정을 반복한다. 재귀는 리스트의 크기가 0이나 1이 될 때까지 반복한다. 복잡도 - 최악의 경우 : 최선의 경우 : 구현 - 결과 -

공부/자료구조 2016.02.01

[자료구조] 정렬 알고리즘

정렬 알고리즘 - 번호, 사전순서 같이 일정한 순서대로 열거하는 알고리즘 - 효율적인 정렬은 탐색이나 병합 알고리즘 처럼 다른 알고리즘을 최적화하는데 중요하다 종류 - 정렬 알고리즘은 특징에 따라 몇 가지로 분류 할 수 있다. - 비교정렬 : 원소들을 정렬할 때, 원소들의 순서에만 의존하는 알고리즘 - 제자리 정렬 : 원소들의 갯수에 비해서 충분히 무시할만한 공간만을 더 사용하는 알고리즘 안정성 - 같은 Key 값을 지닌 원소들의 상대적 위치가 변경되지 않음을 의미하는 말 - 안전정렬 : 거품정렬, 삽입정렬, 합병정렬, 기수정렬 - 불안전정렬 : 선택정렬, 셸정렬, 힙정렬, 퀵정렬 버블정렬 일반적으로 버블정렬보단 삽입의 복잡도가 더 좋음. 유일한 장점은 이미정렬이 되 있는지 확인 가능하다는 점. 선택정렬..

공부/자료구조 2016.02.01