인스턴스가 아닌 클래스에 속하며 클래스의 변수, 메서드 등을 공유하는데 사용된다.
public class Person { // 멤버변수(속성)
	String name;
    int IQ;
    int str;
    private static final String GUDOC = "큰돌의 터전";
    
    // constructor
    public Person(String name, int IQ, int str){ 
    this.name = name;
    this.IQ = IQ;
    this.str = str;
    }
    
  	public Person(){
    this.name = "alanwalker"; this.IQ = 100;
    this.str = 100;
    }
    
    // 메서드
    public void levelup(){
    this.IQ = this.IQ + 1;
    this.str = this.str + 1;
    System.out.println(this.name + "의 지능과 힘이 증가했습니다!
    " + this.IQ + " / " + this.str); 
    }
    
    // public void talk(Person a, Person b){
  	// System.out.println(a.name + " & " + b.name + "이 대화를 시작했다!");
  	// }
    
  	private static void talk(Person a, Person b){ 
    	System.out.println(a.name + " & " + b.name + "이 대화를 시작했다!");
    }
    
 	public static void main(String[] args) { 
    	Person a = new Person(); // 객체 >> 인스턴스 a.levelup();
  		Person b; // 객체
  		b = new Person("큰돌", 1000, 1); // 인스턴스 b.levelup();
  		Person.talk(a, b);
        System.out.println(Person.GUDOC);
    }
}
Method area 메모리 영역에 할당이 되며 프로그램이 종료 될 때까지 가비지컬렉터에 의해 메모리가 회수되지 않기 때문에 만약 클래스가 객체로 쓰이지 않는다면 메모리 낭비를 불러올 수 있다.