자바로 개발을 하기 위해서는 JDK 이외의 메모장이나 EditPlus와 같은 편집기가 필요합니다 ㅠㅠ...
개인적으로는 이클립스를 추천하고 사용할 예정입니다!
https://www.eclipse.org/downloads/
class Hello{
public static void main(String[] args){
System.out.println("Hello, world.");
}
}
실행결과: Hello, world.
저장파일명은 클래스의 이름과 대소문자까지 일치하도록'Hello.java'로 저장해요
Hello.java 작성 - javac.exe(컴파일) - Hello.class 생성 -> java.exe(실행) - 'Hello, world.' 출력!
자바의 모든 코드는 반드시 클래스 안에 존재해야 하며, 서로 관련된 코드들은 그룹을로 나누어 별도의 클래스를 구성해요.
그리고 클래스들이 모여 애플리케이션이 된답니다!
class 클래스 이름{
public static void main(String[] args){
}
}
참고로 나중에 배울 package문과 import문은 예외적으로 클래스 밖에 정의!
프로그램을 실행할 때 'java.exe'에 의해 호출될 수 있도록 미리 약속한 부분임으로 !꼭! 적어주어요
MI) '[]'은 배열을 의미하는 기호로,
'String[] args'는 String 타입의 배열 args를 선언한 것입니다.
String args[]로도 사용 가능!
모든 클래스가 메인을 가지고 있어양 하는 것은 아니지만, 하나의 Java 애플리케이션에는 main 메서드를 포함한 클래스가 반드시 하나는 있어야 합니다.
하나의 소스 파일에 둘 이상의 클래스를 정의하는 것도 가능!
하지만 소스파일의 이름은 public class의 이름과 일치해야 합니다.
(소스 파일에 public class가 없다면 소스파일의 아무 클래스의 이름으로 해도 ok!)
Cannot find symbol 또는 Cannot resolve symbol
지정된 변수나 메서드를 찾을 수 없다는 뜻!
선언되지 않은 변수나 메소드를 사용하거나, 변수 또는 메서드의 이름을 잘못 사용한 경우 발생
';' expected
세미콜론';'이 필요한 곳에 없다는 뜻!
자바의 모든 문장 끝에는 ';' 필수입니다~
Exception in thread "main" java.lang.NoSuchMethodError: main
'main' 메소드를 찾을 수 없다는 뜻!
실제로 클래스 내 main 메소드가 없건, 선언부 'public static void main(String[] args)에 오타가 났을 경우가 많아요
Exception in thread "main" java.lang.NoClassDefFoundError:Hello
'Hello'라는 클래스를 찾을 수 없다는 뜻!
Hello.class 파일이 없거나, 있음에도 안 뜬다면 클래스패스의 설정을 확인하세요
illegal start of expression
문장(또는 수식)의 앞부분이 문법에 맞지 않는다는 뜻!
문장에 문법적 오류가 있다는 뜻으로, 괄호 여부와 수식, if문, for문을 확인하고 public과 static과 같은 키워드를 확인하세요
class, interface, or enum expected
보통 괄호의 개수가 일치하지 않으면 발생합니다.
에러 메세지 잘 읽고 해당 부분의 코드 살펴보기
(문제 없으면 아랫 줄 코드도)
그래도 이상이 없으면 에러 메세지는 잊고, 기본적인 부분 재확인하기
(보통 사소한 에러가 대부분)
의심이 가는 부분을 주석처리하거나 따로 떼어내서 테스트하기
java Hello
를 실행 시켰을 때 내부적인 진행 순서는
1. 프로그램의 실행에 필요한 클래스(*.class) 파일을 로드
2. 클래스 파일을 검사(파일 형식, 악성코드)
3. 지정된 클래스에서 main(String[] args)를 호출
main 메서드의 첫 줄부터 코드가 시작되어 마지막 코드까지 실행되면 프로그램이 종료되고, 모든 자원을 반환한다.
남이 작성한 코드를 더 쉽게 이해하기 위해서 주석을 작ㄱ성한다.
범위 주석 '/' ~ '/'
한 줄 주석 '//'부터 라인 끝까지의 내용