java 키워드static 상세 소개 및 사용 방법

2839 단어 java키워드static
java 키워드static 상세 정보
1. static은 무엇을 대표하는가
자바에는 전역 변수의 개념이 존재하지 않지만 우리는static을 통해'위조 전역'이라는 개념을 실현할 수 있다. 자바에서static은'전역'또는'정적'이라는 뜻을 나타내고 구성원 변수와 구성원을 수식하는 방법도 사용할 수 있으며 코드 블록도 수식할 수 있다.
Java는 메모리를 창고 메모리와 더미 메모리로 나눈다. 그 중에서 창고 메모리는 기본적인 유형의 변수, 수조와 대상의 인용을 저장하고 더미 메모리는 주로 대상을 저장한다.JVM에서 클래스를 로드할 때 이 클래스에 static 수식의 구성원 변수와 구성원 방법이 존재한다면 이러한 구성원 변수와 구성원 방법이 고정된 위치에 고정된 크기의 메모리 영역을 개척할 것이다. 이러한'고정'기능이 있으면 JVM은 그들을 매우 편리하게 접근할 수 있다.또한 정적 구성원 변수와 구성원 방법이 작용하지 않으면 문맥이 변하지 않습니다.동시에static에 담긴'정적'개념은 회복할 수 없다는 것을 나타낸다. 즉, 그곳에서 당신이 수정하면 그는 원래의 모습으로 변하지 않을 것이다. 당신이 정리하면 그는 돌아오지 않을 것이다.
동시에static에 의해 수식된 구성원 변수와 구성원 방법은 이 클래스에 독립되어 특정한 실례 변수에 의존하지 않는다. 즉, 이 클래스의 모든 실례에 의해 공유된다는 것이다.모든 실례의 인용은 같은 곳을 가리키며, 어떤 실례가 그에 대한 수정도 다른 실례의 변화를 초래할 수 있다.

public class User { 
  private static int userNumber = 0 ; 
   
  public User(){ 
    userNumber ++; 
  } 
   
  public static void main(String[] args) { 
    User user1 = new User(); 
    User user2 = new User(); 
     
    System.out.println("user1 userNumber:" + User.userNumber); 
    System.out.println("user2 userNumber:" + User.userNumber); 
  } 
}   
------------ 
Output: 
user1 userNumber:2 
user2 userNumber:2 
2. static 사용 방법
static는 구성원 변수와 구성원 방법을 수식하는 데 사용할 수 있습니다. 우리는 이를 정적 변수와 정적 방법이라고 부르며 클래스 이름을 통해 직접 접근합니다.
       ClassName..propertyName
       ClassName.methodName(……)
Static 코스메틱 코드 블록은 정적 코드 블록을 나타내며 JVM이 클래스를 불러올 때 이 코드를 실행하는데 그 용도가 매우 크다.(코드 블록의 사용에 대한 며칠 동안의 소개는 주목하십시오.)
2.1, static 변수
static 수식의 변수는 우리가 정적 변수라고 부르고, static 수식의 변수를 실례 변수라고 부르지 않는다. 그들의 차이점은 다음과 같다.
정적 변수는 클래스가 불러올 때 초기화되어 메모리에 하나밖에 없고 JVM도 한 번만 메모리를 분배할 수 있으며 클래스의 모든 실례는 정적 변수를 공유하여 클래스 이름을 통해 접근할 수 있습니다.
그러나 실례 변수는 다르다. 실례를 수반한다. 실례를 만들 때마다 실례 변수가 생기고 이 실례와 생사를 같이한다.
그래서 우리는 일반적으로 이 두 가지 상황에서 정적 변수를 사용한다. 대상 간에 데이터를 공유하고 접근하는 것이 편리하다.
2.2, static 방법
static 수식 방법은 정적 방법이라고 하는데 클래스를 통해 직접 호출합니다.클래스가 불러올 때 존재하기 때문에 그 어떠한 실례에도 의존하지 않기 때문에static 방법은 반드시 실현되어야 한다. 즉, 그는 추상적인 방법인 abstract가 될 수 없다는 것이다.
Static 방법은 클래스 중의 특수한 방법으로 우리는 진정으로 그들을 필요로 할 때만 방법을static로 성명할 수 있다.예를 들어 Math 클래스의 모든 방법은 정적 static입니다.
2.3, static 코드 블록
static에 의해 수식된 코드 블록을 우리는 정적 코드 블록이라고 부른다. 정적 코드 블록은 클래스의 불러오는 블록에 따라 실행되고 그는 임의로 놓을 수 있으며 그 어느 곳에나 존재할 수 있다.
3. Static의 한계
Static는 확실히 많은 작용을 하지만 결함도 있다.
1. static 변수만 호출할 수 있습니다.
2. static 방법만 사용할 수 있습니다.
3. 어떤 형식으로this,super를 인용할 수 없습니다.
4. static 변수는 정의할 때 반드시 초기화해야 하며 초기화 시간은 비정적 변수보다 빠르다.
요약: 변수, 방법, 코드 블록을 막론하고static로 수식하면 클래스가 불러올 때'준비됐다', 즉 사용할 수 있거나 실행될 수 있으며 대상에서 벗어나 실행할 수 있다.반대로static가 없으면 대상의 실례에 의존해야 한다.
읽어주셔서 감사합니다. 여러분에게 도움이 되었으면 좋겠습니다. 본 사이트에 대한 지지에 감사드립니다!

좋은 웹페이지 즐겨찾기