### 소스파일 작성시 지켜야할 규칙
1. package문은 소스파일의 가장상단에 한번만 선언
2. import 문은 class 문 전에 선언되며, 여러번 선언 가능
3. 소스파일명과 같은 클래스가 하나 존재해야한다.
4. 하나의 소스파일에는 public으로 선언된 클래스가 하나 이상 선언될 수 없다.
5. 소스파일을 컴파일하고 실행 시키기 위해서는 main 메서드가 존재해야한다.
   단,그 소스파일이 실행이 아니라 모듈일경우는 main 메서드 없어도 됨

### main()메서드 선언시 지켜야할 규칙
1. public 제한자로 선언
2. static 제한자로 선언
3. 리턴형은 void
4. 매개변수를 받기 위해 String형 배열이 선언되어야한다.

ex) public static void main(String args[])
    public static void main(String []args)
    public static void main(String aaaa[])
    public static void main(String []aaaa)
    위의 4개는 모두 가능 여기서 args, aaaa는 단지 String 형 배열을 받기위한 인자변수

### main 메서드 규칙을 지키지 않을 경우의 에러 메시지들
1. public 제한자 없을경우 : Main method not public.
2. static 제한자 없을경우, 리턴형이 void가 아닐경우, String args[]가 선언되지 않을경우
: Exception in thread "main" java.lang.NoSuchMethodError: main

### main 메서드가 2개일경우
public class Test {
   public static void main (String args[]) {
      System.out.println("hi");
   }
   public static int main() {
      return 1;
   }
}

위와 같이 해도 오류안난다.첫번재 main과 두번재 main은 서로 완전히 다른것

### 데이터형 범위
byte   1Byte
short  2Byte
int    4Byte
long   8Byte

float  4Byte
double 8Byte
char   2Byte

boolean은 treu, false만 가능 0,1은 불가능

### 클래스에 속해있는 변수를 멤버 변수, 메서드에 속해있는 변수를 자동변수!
멈베변수는 자동으로 초기값을 갖는다. 예를 들어 int i; 라는 멤버변수가 선언되면 자동으로 i = 0이 된다.
boolean 형의 경우는 false가 기본값
char 형의 경우는 'u0000'

### 식별자 만드는 규칙
1. 알파벳 대문자, 소묹, 밑을문자, $문자, 첫문자는 숫자 안됨!
2. 키워드와 같은 식별자 안됨


### 자바에서 키워드는 전부 소문자!