간단하게 말씀드리면
클래스변수(static 변수)는 모든 인스턴스가 공통된 값을 가져야 되는 값을 클래스변수로 선언하고
인스턴스변수(Data data = new Data(); 해서 만들어진 객체 하위 변수)는 각 인스턴스만에 고유값을 가져야 될때 선언합니다.
jvm에 올라가는 메모리구역도 서로 다르고..
클래스변수는 값의 공유 및 정적변경이 가능합니다...
자바책 보믄 더 자세하게 나옵니다.
가벼운 마음으로 복습한다 생각하시고 책한번 가볍게 읽어보시는 것도 좋습니다.