[Java] Java란
by Choi HyeSun
Java 언어의 특징
-
운영체제에 독립적
-
객체지향언어
-
비교적 배우기 쉬움
-
자동 메모리 관리(Garbage Collection)
-
네트워크와 분산처리 지원
-
멀티쓰레드 지원
-
동적 로딩(Dynamic Loading) 지원
JDK와 JRE
-
JDK (Java Development Kit)
-
자바 개발 도구
-
JRE + 개발에 필요한 실행파일(javac.exe 등)
-
-
JRE (Java Runtime Environment)
-
자바 실행 환경 : 자바로 작성된 응용프로그램이 실행되기 위한 최소 환경
-
JVM + 클래스 라이브러리(Java API)
-
Java 실행
- Hello.java(Java 소스파일) 작성
- javac.exe로 컴파일 - Hello.class 생성
-
java.exe(자바 인터프리터)로 Hello.class 실행 - Hello, world. 출력
- 프로그램을 실행할 때 main 메서드를 먼저 호출하도록 약속
Java Hello 실행 과정
-
프로그램 실행에 필요한 클래스(*.class)를 로드한다.
-
클래스파일을 검사한다. (파일형식, 악성코드)
-
지정된 클래스(Hello)에서 main(String[] args)을 호출한다.
- main 메서드의 첫 줄부터 코드가 실행되기 시작하여 마지막 코드까지 모두 실행되면 프로그램에서 종료되고, 프로그램에서 사용했던 자원들은 모두 반환된다.
Java Program 실행 조건
-
[자바의 모든 코드] ⊂ [클래스] ⊂ [Java 애플리케이션]
-
Java 어플리케이션은 main 메서드가 반드시 하나는 있어야 실행 가능
- 실행시 java [main 메서드가 있는 클래스명]
-
하나의 소스파일에 둘 이상의 클래스를 정의할 수 있음
-
단 소스파일의 이름은 public class의 이름과 일치해야 함
-
클래스파일은 클래스마다 한 개씩 만들어짐
-
자주 나오는 에러
-
cannot find symbol 또는 cannot resolve symbol
-
저장된 변수나 메서드를 찾을 수 없다는 뜻
-
선언되지 않은 변수나 메서드를 사용하거나, 변수 또는 메서드의 이름을 잘못 사용한 경우에 발생
-
자바는 대소문자를 구분함
-
-
’;’ expected
-
; 세미콜론이 필요한 곳에 없음
-
자바의 모든 문장의 끝에는 ‘;’를 붙여줘야 함
-
-
Exception in thread “main” java.lang.NoSuchMethodError : main
-
main 메서드를 찾을 수 없음
-
클래스 내에 main 메서드가 존재하지 않거나, main method에 오타가 발생하는 경우
-
main 메서드가 클래스에 정의되어있는지, 선언부에는 오타가 없는지 확인
-
-
Exception in thread “main” java.lang.NoClassDetFoundError: Hello
-
Hello라는 클래스를 찾을 수 없음
-
.class 파일이 생성되었는지 확인
-
반복해서 발생한다면 classpath 설정을 재확인
-
-
illegal start of exresspion
-
문장(수식)의 앞부분이 문서에 맞지 않음
-
문장에 문법적 오류가 발생했다는 의미
-
괄호 “(“ “{“를 열고서 닫지 않을 때,
-
수식이나 if문, for문 등에 문법적 오류가 있을 때
-
public이나 static과 같은 키워드를 잘못 사용한 때
-
-
class, interface, or enum expected
-
‘키워드 class나 interface 또는 enum이 없다’는 의미
-
보통 괄호의 열린 괄호와 닫힌 괄호의 개수가 일치하지 않는 경우에 발생
-
Subscribe via RSS