[개념정리] Java의 정석 Chapter 1 자바를 시작하기 전에

SW/Java

2020. 7. 24. 15:50

1. 자바(Java Programming Language)

1.1 자바란 : 썬 마이크로시스템즈에서 1996년 1월 공식적으로 발표한 객체지향 프로그래밍 언어

 

1.3 자바언어의 특징

① 운영체제에 독립적이다.

   자바가상머신(JVM)을 통해 통신하기 때문에 가능하다.

   각 OS별 JVM이 별도로 존재하여 활용하면 된다.

   "한 번 작성하면, 어디서나 실행된다.(Write Once, run anywhere)"
② 객체지향언어이다.
③ 비교적 배우기 쉽다.
④ 자동 메모리 관리(Garbage Collction)

⑤ 네트워크와 분산처리를 지원한다.

⑥ 멀티쓰레드를 지원한다.

⑦ 동적 로딩을 지원한다.

     ㄴ 모든 클래스가 로딩되지 않고 필요한 시점에 클래스를 로딩하여 사용하는 것

 

1.4 JVM(Java Virtual Machine)

     자바를 실행하기 위한 가상 기계

     OS에 JVM까지 거치는 과정으로 속도가 느리다는 단점을 가지고 있으나,

     JIT컴파일러와 향상된 최적화 기술 적용 이후 속도의 격차를 많이 줄임

 

2. 자바개발환경 구축하기 (아래 포스팅 참고할 것)

2020/06/19 - [Tip] - [Tip] Java JDK 파일 설치 및 환경변수 설정 방법

 

3. 자바로 프로그램 작성하기

- 소스파일의 이름은 public class의 이름과 일치해야 한다.

  하나의 소스파일에 2개 이상의 public class가 존재할 수 없다.

- main메소드 선언부 : public static void main(String[] args)

                             나머지는 반드시 똑같이 적어야 하나

                             args 부분은 변수명으로 다르게 적어도 된다.

 

3.2 자주 발생하는 에러와 해결방법

① cannot find symbol 또는 cannot resolve symbol

   지정된 변수나 메소드를 찾을 수 없다는 뜻으로 선언되지 않은 변수나 메소드를 사용하거나,

   변수 또는 메소드의 이름을 잘못 사용한 경우에 발생

   자바는 대소문자 구분을 하기 때문에 대소문자 일치여부 확인하기

② ';' expected

    세미콜론(;)이 필요한 곳에 없다는 뜻이다.

    문장 끝에 세미콜론 여부 확인하기
③ Exception in thread "main" java.lang.NosuchMethodError: main

   메인 메소드를 찾을 수 없다는 뜻으로

   실제로 메인 메소드가 존재하지 않거나 메인 메소드 선언부에 오타가 존재하는 경우 발생

   메인 메소드의 오타 부분 등을 체크할 것

Exception in thread "main" java.lang.NosuchMethodError: Hello

   Hello 클래스를 찾을 수 없다는 뜻으로

   클래스의 철자, 특히 대소문자를 확인해보고 이상이 없으면 클래스파일 생성 여부를 확인한다.

   파일 또한 존재하는 경우 클래스패스의 설정이 바르게 되었는지 확인할 것

⑤ illegal start of expression

   괄호나 if문, for문 등의 문법적 오류가 있는 경우나

   public, static 같은 키워드를 잘못 사용한 경우에도 발생

   에러 발생한 곳의 문법 체크할 것 

⑥ class, interface, or enum expected

    키워드 class나 interface 또는 enum이 없다는 의미지만,

    보통 괄호의 개수가 일치 하지 않는 경우에 발생

    열린 괄호({)와 닫힌 괄호(})의 갯수 확인할 것

 

- 에러 발생 시 해결 방법

  ⓐ 에러 메세지를 잘 읽고 해당 부분의 코드를 살펴본다.

      이상이 없으면 해당 코드의 주위(윗줄과 아랫 줄)도 함께 살펴본다.

  ⓑ 그래도 이상이 없으면 에러 메시지는 잊어버리고 기본적인 부분을 재확인한다.

      대부분의 에러는 사소한 것인 경우가 많다.

  ⓒ 의심이 가는 부분을 주석처리하거나 따로 떼어내서 테스트 한다.

 

3.4 주석(comment)

- 범위 주석 : /* ~ */의 사이 내용은 주석으로 간주된다.

- 한 줄 주석 : //부터 라인 끝가지의 내용은 주석으로 간주된다.

- 주의사항 : 큰따옴표 안에 주석이 있는 경우 문자열로 인식된다. 

                ex) " /* 주석 아니고 문자열로 인식*/"

 

                                

728x90