본문 바로가기

자바의 정석

01 자바를 시작하기 전에

1.1 자바란?

자바는 썬 마이크로시스템즈에서 개발한 객체지향 프로그래밍 언어이다.

 

1.3 자바언어의 특징

  1. 운영체제에 독립적이다.
    • 운영체제에 독립적이므로 운영체제의 종류에 관계없이 실행이 가능하다.
    • 자바 응용프로그램은 운영체제나 하드웨어가 아닌 일종의 에뮬레이터인 JVM하고만 통신을 한다.
    • JVM이 자바 응용프로그램으로부터 전달받은 명령을 해당 운영체제가 이해할 수 있도록 변환하여 전달한다.
    • 자바로 작성된 프로그램은 운영체제에 독립적이지만 JVM은 운영체제에 종속적이다.
  2. 객체지향언어이다.
  3. 비교적 배우기 쉽다.
  4. 자동 메모리 관리(Garbage Collector)
    • 자바로 작성된 프로그램이 실행되면 가비지컬렉터가 자동적으로 메모리 관리를 해준다.
  5. 네트워크와 분산처리를 지원한다.
  6. 멀티쓰레드를 지원한다.
  7. 동적 로딩(Dynamic Loading)을 지원한다.

 

1.4 JVM(Java Virtual Machine)

<일반 애플리케이션>

일반 애플리케이션
OS (Windows)
컴퓨터 (하드웨어)

<Java 애플리케이션>

Java 애플리케이션
JVM
OS (Window)
컴퓨터 (하드웨어)
  • 일반 애플리케이션
    • 일반 애플리케이션의 코드는 OS만 거치고 하드웨어로 전달되기 때문에 다른 OS에서 실행시키기 위해서는 애플리케이션을 변경해야 한다.
  • Java 애플리케이션
    • Java 애플리케이션은 JVM하고만 상호작용하기 때문에 OS와 하드웨어에 독립적이라 다른 OS에서도 프로그램의 변경없이 실행할 수 있다.
    • JVM은 OS에 종속적이기 때문에 해당 OS에서 실행가능한 JVM이 필요하다.
    • Java 애플리케이션은 JVM을 한 번 더 거치고, 하드웨어에 맞게 완전히 컴파일된 상태가 아니라 실행 시에 해석(Interpret)되기 때문에 속도가 느리다는 단점이 있다. 그러나 요즘에는 JIT컴파일러와 향상된 최적화 기술을 적용으로 속도의 격차가 많이 줄어들었다.                                                                                                                   
  • 자바의 모든 코드는 반드시 클래스 안에 존재해야 한다.
  • 서로 관련된 코드들을 그룹으로 나누어 별도의 클래스를 구성하게 된다.
  • 클래스들이 모여 Java 애플리케이션을 이룬다.
class 클래스이름{
	public static void main(String[] args) // main 메서드의 선언부
    // 프로그램을 실행할 때 java.exe에 의해 호출될 수 있도록
    // 미리 약속된 부분이므로 항상 똑같이 적어줘야 함
    {
    }
}
  • 하나의 Java 애플리케이션에서는 main 메서드를 포함한 클래스가 반드시 하나는 있어야 한다.
  • 모든 클래스가 main 메서드를 가지고 있어야 하는 건 아니다.
  • 작성된 Java 애플리케이션을 실행할 때는 java.exe 다음에 main 메서드를 포함한 클래스의 이름을 적어줘야 한다.
  • main메서드는 Java애플리케이션의 시작점이다.
  • main메서드 없이는 Java 애플리케이션은 실행될 수 없다.
  • 하나의 소스파일에 하나의 클래스만을 정의하는 것이 보통이지만 하나의 소스파일에 둘 이상의 크래스를 정의하는 것도 가능하다.
  • 소스파일의 이름은 public class의 이름과 일치해야 한다.
  • 소스파일 내에 public class가 없다면 소스파일 내의 어떤 클래스의 이름으로 해도 상관없다.

 

'자바의 정석' 카테고리의 다른 글

07 객체지향 프로그래밍 2 요약  (0) 2022.06.19
06 객체지향 프로그래밍 1 요약  (0) 2022.06.19
02 변수 variable  (0) 2022.05.05