>  기사  >  Java  >  Java의 정적과 비정적의 차이점에 대한 간략한 소개

Java의 정적과 비정적의 차이점에 대한 간략한 소개

黄舟
黄舟원래의
2017-10-10 10:22:291470검색

이 기사는 주로 Java의 정적 및 비정적 관련 내용을 소개합니다. 편집자는 그것이 매우 좋다고 생각합니다. 필요한 친구들이 참고할 수 있습니다.

정적 변수와 비정적 변수의 차이점

1. 정적 수정 변수는 클래스 변수 또는 전역 변수 또는 멤버 변수라고 합니다. 클래스가 로드되면 멤버 변수가 초기화되어 클래스와 연결됩니다. 클래스가 존재하는 한 정적 변수도 존재합니다. 비정적 수정 멤버 변수는 새 개체가 나올 때 저장 공간을 나누고 특정 개체에 바인딩됩니다. 이 멤버 변수는 현재 개체만 소유합니다.

2. 정적 수정 변수는 메인 메소드 이전에 메모리의 데이터 공유 영역에 로드됩니다. 힙 메모리.

3. 정적 변수는 저장 공간을 별도로 나누며 특정 객체에 바인딩되지 않습니다. 클래스의 각 객체가 저장 공간을 공유합니다. 정적 변수 값은 메소드 영역에서 한 번 로드되는 반면, 비정적 변수는 객체 생성 시 여러 번 로드됩니다. 생성될 때마다 복사본이 만들어집니다.

4. 객체가 멤버 변수를 참조하는 경우 클래스 이름.변수 이름을 통해 직접 호출됩니다. 객체가 인스턴스 변수를 참조하는 경우 객체 이름.변수 이름을 통해서만 호출할 수 있습니다.

5. 클래스에서 멤버 변수를 호출할 때는 직접 호출하거나 클래스명.변수명 형식으로 호출합니다. 인스턴스 변수의 경우 이것을 사용하거나 직접 호출합니다.

정적 메서드와 비정적 메서드의 차이점에 대해

1 정적 수정 메서드도 정적 메서드와 동일합니다. 공유 사용을 위해 메인 메소드 이전에 메소드 영역에 로드됩니다.

2 정적 정적 메서드에서는 this 또는 super 키워드를 사용할 수 없습니다. 정적 메서드는 개체가 생성되기 전에 로드된 메서드이고 this 및 super는 이 클래스의 개체를 가리킵니다. 또는 상위 클래스의 객체가 아닌 정적 메소드가 객체에 속하며 this 및 super를 메소드에서 사용할 수 있습니다.

3. 정적 메서드는 object.method 이름 또는 클래스 이름.method 이름을 사용하여 호출할 수 있습니다. 비정적 메서드는 개체가 생성된 후에만 호출할 수 있습니다.

4. 정적 메서드는 한 번 로드되고 모든 개체에서 공유됩니다. 비정적 메서드는 개체 수만큼 복사되며, 각 개체는 자신의 복사 메서드만 호출할 수 있습니다.

5. 객체가 비정적 메서드를 호출할 때는 스레드 안전성 문제를 고려하지 않지만, 정적 메서드를 호출할 때는 보안 문제를 고려해야 합니다. 왜냐하면 정적 메서드의 복사본이 하나만 있기 때문입니다. 객체의 메소드에는 고유한 메소드가 있습니다.

6. 동일한 클래스에서 정적 메서드는 클래스의 정적 멤버에만 액세스할 수 있습니다. 비정적 메서드는 비정적 메서드에 액세스할 수 있습니다(클래스 이름을 사용하여 호출하거나 이 클래스의 개체 만들기).

요약

위 내용은 Java의 정적과 비정적의 차이점에 대한 간략한 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.