1.1 자바란?
자바는 썬 마이크로시스템즈에서 개발한 객체지향 프로그래밍 언어이다.
1.3 자바언어의 특징
- 운영체제에 독립적이다.
- 운영체제에 독립적이므로 운영체제의 종류에 관계없이 실행이 가능하다.
- 자바 응용프로그램은 운영체제나 하드웨어가 아닌 일종의 에뮬레이터인 JVM하고만 통신을 한다.
- JVM이 자바 응용프로그램으로부터 전달받은 명령을 해당 운영체제가 이해할 수 있도록 변환하여 전달한다.
- 자바로 작성된 프로그램은 운영체제에 독립적이지만 JVM은 운영체제에 종속적이다.
- 객체지향언어이다.
- 비교적 배우기 쉽다.
- 자동 메모리 관리(Garbage Collector)
- 자바로 작성된 프로그램이 실행되면 가비지컬렉터가 자동적으로 메모리 관리를 해준다.
- 네트워크와 분산처리를 지원한다.
- 멀티쓰레드를 지원한다.
- 동적 로딩(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 |