method() table
예시 | messege.length() | Math.max(4,5) |
---|---|---|
메소드 형식 | static 이 없는 인스턴스 메소드 | static 이 있는 클래스 메소드 |
--- | 인스턴스 메소드는 객체를 만들어 실행해야 한다.예)String.lenght | :----------------------: |
메소드 실행 | message 객체로 실행한다. | Math 클래스로 실행한다. |
결론 | 인스턴스 메소드는 객체를 만들어 실행해야 한다.예)String.lenght | 클래스 메소드는 객체를 만들지 않고 클래스에 정의된 메소드를 실행한다. 형식은 클래스이름.메소드() |
장점 | 재사용성이 좋다 | 속도가 빠르고 메모리를 효율적으로 사용 가능하다. |
단점 | 리소스를 많이 잡아먹는다. | 무분별한 사용으로 static의 사용은 메모리 누수가된다. 재사용성이 떨어진다. |
인스턴스의 뜻
인스턴스는 일반적으로 실행 중인 임의의 프로세스, 클래스의 현재 생성된 오브젝트를 가리킨다. 객체(오브젝트)의 인스턴스는 데이터베이스나 SGA, 백그라운드 프로세스등 광범위한 컴퓨터시스템 자원의 접근에 할당된 물리 메모리의 일부를 가리킨다.
내가 생각하기에 클래스에서 생성된 객채에 메모리의 위치를 알려준다고 생각한다.
Scanner sc = new Scanner(System.in);
new 연산자의 의해 Scanner클래스의 인스턴스가 메모리의 빈 공간에 생성된다.
이 메모리의 주소값을 sc가 저장하고 이 인스턴스를 가리킨다.
ex)
animal dog = new animal();
dog.buldog = "불독";
new를 통해 다음에오는 animal클래스의 ()괄호에 animal클래스의 인스턴트가 메모리의 빈공간을 만들고 이 ()괄호를 주소로 하고있는 dog가 앞쪽의 animal의 이름표가 되는것이다.
-참조형 타입에서 참조란?클래스가 선언하는 변수의 값 = 힙에 존재하는 메모리 주소(혹은 위치)를 참조한다는 개념
참조형 타입 : reference type
클래스를 사용하여 변수를 선언
이때,선언된 변수가 저장하는 것은 데이터가 아니다.
heap영역의 객체를 찾아가기위한 참조값(주소가)저장된다.
String message = "hello java!";
Scanner sc = new Scanner(System.in);