본문 바로가기

전체 글

(23)
JAVA 필드,생성자,this 개념과 사용방법 정리 필드란? 객체의 고유 데이터로 변수와 다르게 실행메소드가 종료되도 값이 지속 되는 상수를 말한다. - 필드는 초기값없이 생성되도 초기값을 갖게된다. (객체 초기값 참조) - 필드는 생성자와 모든 메소드에서 사용가능하다. - 필드는 클레스 외부로 부터 접근이 가능하다. - 필드 초기화는 두가지 방법이 있다, 필드 생성시 초기값을 주는것과 생성자에서 초기값을 주는것. - 외부에 데이터로 초기화를 하고싶다면, 매개값을 받아 사용하는데 이때 this메소드가 필요하다. 생성자란? new연산자와 같이 사용되어 '객체초기화'를 담당한다 '객체초기화'란? 필드 값을 초기화(수정) 하거나 메소드를 호출하여 사용준비 해두는 것을 의미한다. 생성자의 호출방식 - 생성자는 new 연산자로 메모리에 객체를 할당받아 생성한다. ..
JAVA 메모리구조, 메소드 영역(클래스 영역) JVM이 실행되면 운영체제에서 메모리를 할당해준다. 할당받은 메모리(Runtime Data Area)는 영역을 구분하여 사용한다. 크게 메소드 영역 , 힙 영역, 스택 영역 으로 나뉜다. JAVA 실행 과정 메소드 영역이란 ? JVM이 시작할때 생성된다. 상수풀,필드,데이터메소드,생성자 코드 등을 분류해서 저장한다. 모든 스레드가 공유가능한 영역이라 의미상 공유 메모리 영역이라고도 불린다. 클래스 로딩 처리구조 1.프로그램에서 메소드 호출 2.해당 메소드 클래스 바이트코드가 메소드영역에 로딩된 적이 있는지 확인 3.없다면 JRE라이브러리 폴더에서 클래스를 검색 (또는 환경변수 지정폴더) 4.검색한 클래스 파일 바이트코드 검증 5.일치확인후 메소드 영역으로 로딩 6.클래스 변수 명령어 존재시 메소드 영역에..
에라토스테네스의 체 (소수를 찾는 방법) 에라토스테네스의 체란? - 고대 그리스 수학자 에라토스테네스가 발견한 소수를 찾는 방법이다. - 어떤수( 소수를 구하고자 하는 값 )의 제곱근보다 작은 소수의 배수를 없애면 남은 수가 어떤수의 소수가 된다. 한마디로 어떤수가 100이라고 가정할때 100의 소수를 구하려면 매우 어렵지만 100의 제곱근인 10의 소수의 배수를 배제하고 나면 100의 소수만 남게된다는 방법이다. 에라토스테네스의 체 알고리즘 처리구조 1. 요소의 소수의 배수를 제거하는 구조 2. 소수에 다음 소수를 대입하는 구조 3. 소수가 입력값 제곱근 이하일 때 반복하는 구조 4. 소수인 첨자를 출력 코드구현 // input Scanner sc = new Scanner(System.in); System.out.print("소수를 구할 값을..
퀵정렬 퀵 정렬이란? - 기준값(pivot)을 정한뒤 기준값(pivot)을 기준으로 데이터를 대소 그룹의 둘로 나누어 두개에 집합을 만든뒤 분할하여 전체 정렬을 만들어 내는 정렬 알고리즘. + 기존 정렬 알고리즘 들 의 비하여 빠른 실행성능을 가진다. - 기준값(pivot)을 어떻게 설정하느냐의 따라 실행성능이 좌우된다. 퀵정렬 처리구조 1. pivot 정하기 2. pivot 중심으로 대소관계를 나누어 2개의 집합으로 분할 하는 처리 3. 작은수의 집합에 2번 처리를 반복 4. 높은수의 집합에 2번 처리를 반복 코드구현 public void QuickSort(int[] array, int left, int right){ int i = left + 1; int k = right; int w = 0; while( ..
단순 삽입법 (삽입 정렬) 단순 삽입법 이란 ? - 데이터 정렬알고리즘 중 하나로서 요소를 차례대로 올바른 위치에 삽입해나감으로서 오름차순,내림차순 으로 정렬하는 알고리즘이다. + 구현하기 쉽고 요소들이 이미 정렬된 상태라면 효율적일 수 있다. - 요소 수가 많다면 많은 이동을 필요로 하기에 적합하지 않다. 단순 삽입법 구조 1. 테이블에 첫번째 칸을 기준값으로 정한뒤 정렬된칸 과 정렬안된 칸을 나눈다. 2. 정열된 칸의 뒤에 위치한 수와 대소 관계를 비교한뒤 정열된 칸에 삽입한다. 3. 정열된 칸에 존재했던 기존에 값과 새로 삽입된 값을 비교후 정렬한다. 4. 테이블 크기 만큼 반복 코드 int[] array = {7,6,5,4,3,2,1}; int i = 1; while( i < 7 ){ int x = array[i]; int..
단순 교환법 (버블정렬) 단순 교환법( 버블정렬 )이란? 인접한 데이터를 교환하는 처리를 반복하여 전체를 정렬한다. # 처리과정이 마치 거품이 올라오는것 같이 보여서 버블 정렬이라 불린다함. 창의력 지립니다.. + 알고리즘이 단순하여 구현하기가 쉽다. - 처리량이 많아 실행속도가 느리다. 처리구조 1.오른쪽 끝부터 순서대로 앞에 공과 비교하여 오름차순으로 정렬 2. 왼쪽 끝 부터 확정된 최소값을 넣으며 배열크기만큼 확장 코드구현 int[] array = {5,3,4,1,2}; int w = 0; int k = 0; while( k k ) { if(array[i-1] > array..
단순 선택법 (선택 정렬) 정렬 알고리즘이란 ? 데이터를 큰 순서 또는 작은 순서로 바꾸어 나열하는 알고리즘이다, 정렬을 영어로 표현하면 소트(sort)이므로 소트(sort) 알고리즘이라고도 한다. 정열알고리즘 종류 다양한 정열 알고리즘이 존재하지만 가장 기본적이고 널리 알려진 알고리즘을 네가지로 추려보면, 1. 단순 선택법 (선택 정렬) 2. 단순 교환법 (버블 정렬) 3. 단순 삽입법 (삽입 정렬) 4. 퀵정렬 정도가 있고 그중 오늘 기록할 알고리즘은 단순 선택법 (선택 정렬) 이다. 단순 선택법( 선택 정렬 ) 이란? 가장작은 데이터를 선택하여 맨 앞부터 순서대로 정렬해 나가는 알고리즘 + 단순하고 구현하기 쉽다. - 처리속도가 느리기 때문에 데이터가 많을 경우 적합하지 않다. 처리구조 1. 탐색 범위의 최솟값을 찾는 처리 ..