2020/03(25)
-
메소드(method)
메소드(method)란 보통 다른 언어엣는 함수라는 것이 별도로 존재한다. 하지만 자바는 클래스를 떠나 존재할수 없기 때문에 자바의 함수는 따로 존재 하지 않고 클래스 내에 존재 한다. 이 클래스 내의 함수를 메소드 라고 한다. 메소드의 구조 public 리턴자료형 메소드명(입력자료형1 입력변수1,입력자료형2 입력변수2,...){ ... return 리턴값; // 리턴 자료형이 void 인 경우에는 return 문이 필요없다 . } 리턴자료형은 메소드 수행 후 돌려줄 값의 자료형을 의미한다. 메소드의 리턴값은 return 이라는 명령을 사용한다. 메소드는 입출력 유무에 따라 다음과 같이 4가지로 분류 할 수 있다. 1) 입력과 출력이 모두 있는 메소드 2) 입력과 출력이 모두 없는 메소드 3) 입력은 없..
2020.03.10 -
객체(object), 클래스(class), 인스턴스(instance)
클래스(Class) 란 객체를 만들어 내기 위한 설계도 혹은 틀 연관되어 있는 변수와 메서드의 집합 객체(Object) 란 소프트웨어 세계에 구현할 대상 클래스에 선언된 모양 그대로 생성된 실체 특징 1) ‘클래스의 인스턴스(instance)’ 라고도 부른다. 2) 객체는 모든 인스턴스를 대표하는 포괄적인 의미를 갖는다. 3) oop의 관점에서 클래스의 타입으로 선언되었을 때 ‘객체’라고 부른다. 인스턴스(Instance) 란 설계도를 바탕으로 소프트웨어 세계에 구현된 구체적인 실체 즉, 객체를 소프트웨어에 실체화 하면 그것을 ‘인스턴스’라고 부른다. 실체화된 인스턴스는 메모리에 할당된다. 특징 인스턴스는 객체에 포함된다고 볼 수 있다. oop의 관점에서 객체가 메모리에 할당되어 실제 사용될 때 ‘인스턴..
2020.03.10 -
생성자(constructor)
생성자란 객체가 생성될때(new) 반드시 한번 수행되는 메소드 생성자의 특징 public 클래스명 (매개변수){} 1) 수식어는 우선 public (생성자 앞에는 접근 제어자 - public만 올 수 있다. ) 메소드는 static 올 수 있다. 2) 문법적으로 반환 유형 자체가 없음(void나 자료형을 작성할 수 없다. ) 메소드는 void나 자료형이 있어야한다. 3) 메소드이기 때문에 오버로딩 가능 4) 생성자 메소드의 이름은 크래스 명과 완벽하게 동일하게 정의해야한다. 5) 생성자는 인스턴스를 초기화 시킨다. *2,4번이 반드시 지켜져야 컴파일러가 생성자로 인식 인스턴스를 생성할때 반드시 생성자를 호출한다고 하였는데 생성자를 따로 정의하지않을때는 어떻게 호출 된 것일가? 그 이유는 클래스를 정의할때..
2020.03.10 -
garbage collector(GC)
garbage란 정리되지 않은 메모리, 유효하지 않은 메모리 주소를 말한다. -프로그래밍 언어로는 "Dangling Object" 이라고 한다. c/c++언어와 달리 자바는 개발자가 명시적으로 객체를 해제할 필요가 없다. 사용하지 않는 객체는 메모리에서 삭제(해제) 하는 작업을 garbage collector(GC)라 부르며, JVM에서 GC를 수행한다. 기본적으로 JVM의 메모리는 총 5가지 영역(클래스, 스택, 힙, 네이티브 메서드, pc레지스처)으로 나뉘는데 GC는 heap 영역만 다룬다. garbage collector 가 실행되는 때 : JVM이 프로그램을 실행하다가 메모리가 부족해지면 OS추가로 메모리를 더 요청하게 된다. 바로 이때 실행 된다. 가비지의 대상이 되는 경우 : 프로그램이 실행되..
2020.03.10 -
정적 변수(static variables)
static 변수는 메모리에 고정적으로 할당 되어, 프로그램이 종료될 때 해제 되는 변수이다 . class 는 컴파일 시 static 영역에 생성되고, new 연산자를 통해 생성한 객체는 heap영역에 생성된다. 즉, static 변수와 static 메소드는 static 메로리 영역에 존재 하기 때문에 객체가 생성되기 이전 컴파일 시 이미 할당 되어있다. static 변수의 특징 1) 메모리에 한번 할당 되므로 여러 객체가 해당 메모리를 공유하게 된다 -하나의 클래스에 하나만 존재하는 것이고 그 클래스의 모든 객체들에 의하여 공유된다. -보통 변수의 static 키워드는 프로그래밍시 메모리의 효율 보다는 공유하기 위한 용도로 사용하는 것이다. 2) 멤버 변수와 다르게 객체의 생성 여부와 상관 없이 딱 하..
2020.03.10 -
<알기쉬운 알고리즘> Chapter1 - 알고리즘의 첫걸음
1.1 최대 숫자 찾기 카드 10장이 바닥에 펼쳐져 있을 때, 가장 큰 숫자가 적힌 카드를 찾는 한가지 방법은 카드의 숫자를 하나씩 비교하면서 본 숫자들 중에서 가장 큿 숫자를 기억해가며 진행하는 방법일 것이다. -> 이렇게 찾는 방법을 순차탐색 (Sequential Search)라고 한다. 즉, 카드를 한장씩 차례대로 (주어진 순서대로) 읽어가며 찾는 것이다. 1.2 임의의 숫자 찾기 만약 카드가 15,20,25,35,45,55,60,75,85,90 일때 85를 순차탐색으로 찾을 경우 앞쪽에 있는 8장의 카드를 읽은 후에나 85를 찾는다 -> 오름차순으로 정렬된 데이터를 반으로 나누고, 나누어진 반을 다시 반으로 나누고, 이과정을 반복하여 원하는 데이터를 찾는 탐색 알고리즘을 이진탐색(Binary Se..
2020.03.07