본문 바로가기

카테고리 없음

1. 자바 입문

 

자바 프로그래밍 언어 배경과 기본에 대해 학습했다.

 

 

프로그래밍 언어

 

저급언어: 기계어, 어셈블리어..

고급언어: C++, Java..

 

컴파일: 소스코드를 기계어로 변환시키는 과정

 

플랫폼

 

플랫폼: 하드웨어(CPU) + 운영체제(OS)

 

- C++

지금까지 주로 써왔던 C++의 경우 플랫폼 종속적인 특성이 있다.

Ex) 인텔 CPU를 가진 리눅스 환경에서 개발한 경우 -> Mac이나 윈도우 운영체제를 가진 곳에서 실행되지 않는다.

 

- Java

WORA (Write Once Run Anywhere) ->한 번 작성된 코드는 모든 플랫폼에서 실행 가능하다.

플랫폼 종속성을 극복하였다.

  • 가능한 이유: 바이트 코드(.class 파일): 플랫폼 독립적 / 자바 소스를 컴파일한 코드 
  • Java Virtual Machine(JVM): 플랫폼 종속적 / 바이트 코드를 실행하는 소프트웨어

주의: 바이트 코드는 CPU에 의해 직접 실행이 아니라 JVM이 인터프리터 방식으로 해석하여 실행된다.

 

JDK / JRE

 

Java Development Kit: 자바 개발 환경 (API가 들어있는 모듈 등)

 

Java Runtime Environment: 자바 실행 환경 (JVM 등 포함)

 

요즘은 보통 JDK만 다운받아도 된다.

 

API, Package, 모듈

 

자바 API는 미리 구현한 클래스들을 모아놓은 라이브러리이다.

 

자바 패키지는 서로 관련된 클래스들을 모아놓은 것이다. 다른 패키지의 동일한 이름의 클래스가 존재 가능하다

(API가 패키지 형태로 제공된다.)

 

모듈은 패키지, 이미지 등을 묶어놓은 것이다.

 

즉, API < 패키지 < 모듈 느낌으로 생각하면 쉽다.

 

소스 파일과 클래스 파일의 관계

 

소스 파일 => .java 

클래스 파일 => .class (바이트 코드)

 

  • 하나의 소스 파일에 여러 개의 클래스를 작성 가능
  • Public 클래스는 하나만 작성 가능하고, Public 클래스의 이름이 소스 파일의 이름이어야 한다.

그렇다면 하나의 소스 파일에 대해 여러 개의 바이트 코드가 생성될 수 있다.

 

바이트 코드 즉, 클래스 파일은 하나의 클래스만 가진다.

하나의 소스 파일에 대해 여러 개의 클래스를 포함할 수 있다.

 

main 메소드

 

하나의 클래스 파일에 하나의 main() 메소드만 가질 수 있다.

 

각 클래스마다 main() 메소드를 가질 수 있다. 

 

(3개의 클래스 각각 main()을 가질 수 있다는 의미)

 


 

지금까지 자바 기본 원리를 정리하고 소개했다.

 

처음 배우는 언어라 조금은 생소하지만

문법을 익히면서 얼른 익숙해져야겠다!