자바 의 static 키워드 깊이 이해

3400 단어 Javastatic
자바 를 공부 한 지 오래 되 었 습 니 다.저 는 왜 한 방법 을 수식 하 는 키 가 각각 다른 지 이해 할 수 없습니다.왜 어떤 방법 은 직접 호출 할 수 있 고 어떤 방법 은 대상 을 사용 해 야 호출 할 수 있 는 지 이해 할 수 없습니다.과장 되 지 않 게 최근 에 저 에 게 static 키 워드 를 정리 하기 로 결 정 했 습 니 다.jdbc 도구 류 를 쓸 때 그 중에서 정적 코드 블록 을 통 해 로드 구동 을 실현 하기 때문에 저 는 그것 에 대해 새로운 인식 을 가지 게 되 었 습 니 다.
통속 적 으로 말 하면 몇 가지 로 분류 된다.
  • static 키워드 로 수식 하 는 방법 이나 구성원 변 수 는 대상 에 의존 하지 않 고 직접 방문 할 수 있 습 니 다.(클래스 이름.방법 명()또는 클래스 이름.속성 직접 호출)
  • static 키 워드 는 변수 나 방법의 역할 영역 에 영향 을 주지 않 습 니 다
  • static 키 워드 는 국부 변 수 를 수식 할 수 없습니다
  • 정적 방법 중 this
  • 를 사용 할 수 없습니다.
  • 방법 이 든 변수 든:static 로 장 식 된 정적 방법 은 비 정적 인 방법 이나 구성원 변 수 를 방문 할 수 없 지만 반대로 비 정적 인 방법 은 정적 이거 나 비 정적 인 방법 에 접근 할 수 있다.
  • static 키 워드 는 new 를 먼저 꺼 내 는 대상 의 번 거 로 움 과 자원 소 모 를 피하 기 때문에 도구 류 에 자주 사용 된다.
  • 다음은 다음 과 같은 static 키워드 의 역할 을 자세히 소개 합 니 다.주로 다음 과 같은 네 가지 측면 입 니 다.
    구성원 변수 수정
    static 키 워드 를 수식 하 는 구성원 변 수 는 정적 구성원 변수 라 고도 부 르 고 정적 변수 라 고도 부른다.정적 변수 가 있 으 면 그 에 대응 하 는 것 이 바로 비 정적 변수 이다.
  • 정적 변수:모든 대상 에 의 해 공유 되 고 메모리 에 복사 본 이 하나 밖 에 없 으 며 클래스 가 처음 불 러 올 때 만 초기 화 됩 니 다
  • 비정 상 변수:대상 이 가지 고 있 는 것 입 니 다.대상 이 생 성 될 때 초기 화 되 고 메모리 에 여러 개의 복사 본 이 존재 하 며 서로 영향 을 주지 않 습 니 다
  • 
    public class Test{
    	public static void main(String[] args) {
    		System.out.println(Person.name);
    		System.out.println(new Person().age);
    	}	
    }
    class Person{
    	static String name; 
    	int age;
    }
    수식 방법
    static 수식 방법 을 정적 방법 이 라 고 합 니 다.정적 방법 은 클래스 의 정적 변수 와 다른 정적 방법 을 직접 호출 할 수 있 으 며,구성원 변수 와 비 정적 방법 을 직접 호출 할 수 없습니다(대상 을 통 해 호출 되 지 않 는 한).
    
    class A {
    	static {
    		System.out.println("     ");
    	}
    	static final int i;
    	int j;
    	static void method() {
    		System.out.println(i);//        
    		System.out.println(new D().j);//                    
    		
    		method1();//        
    		new D().method2();//                    
    	}
    	
    	static void method1() {
    		System.out.println(i);//             
    	}
    	void method2() {
    		System.out.println(i);//                
    	}
    }
    정적 코드 블록
    static 수식 코드 블록 을 정적 코드 블록 이 라 고 합 니 다.클래스 가 처음 불 러 올 때 코드 블록 순서대로 실 행 됩 니 다.최적화 프로그램 에 사용 하 다.
    예 를 들 어 처음에 언급 한 JDBC 도구 류 에서 정적 코드 블록 을 사용 하여 자원 을 불 러 오고 클래스 가 초기 화 될 때 한 번 만 실 행 됩 니 다.
    주:구조 방법 은 대상 의 초기 화 에 사용 되 고 정적 코드 블록 은 클래스 의 초기 화 작업 에 사 용 됩 니 다.
    정적 가이드 패키지
    상기 세 가지 에 비해 네 번 째 는 내 가 이전에 접촉 한 적 이 없 는 것 이다.
    import 로 가방 이나 클래스 를 가 져 올 때 static 패키지 이름 이나 클래스 를 사용 하여 정적 가 져 오기 를 표시 할 수 있 습 니 다.비 static 가 져 오기 와 달리 static 가 져 오기 패 키 지 를 사용 한 후 현재 클래스 의 방법 명 과 충돌 하지 않 는 상황 에서'클래스 명,방법 명'방법 으로 클래스 방법 을 호출 할 필요 가 없습니다.'방법 명'으로 클래스 방법 을 호출 할 수 있 습 니 다.마치 이러한 방법 처럼 사용 하면 됩 니 다.
    
    public class Test {
    	static void method1() {
    		System.out.println("static method1");
    	}
    	
    	static void method2() {
    		System.out.println("static method2");
    	}
    }
    정적 가 져 오기 후:
    
    import static com.liu.stuatic.Test.method1;
    
    public class Client {
    	public static void main(String[] args) {
    		method1(); //                  
    		StaticTest.method2();
    	}
    }
    자바 의 static 키워드 에 대한 깊 은 이해 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.자바 의 static 키워드 에 관 한 더 많은 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 많은 응원 부 탁 드 리 겠 습 니 다!

    좋은 웹페이지 즐겨찾기