모르는 것만 짧고 빠르게 정리한 노트입니다.
자바란
현재는 오라클 사에 인수된 썬 마이크로시스템즈에 의해 개발된 객체지향 프로그래밍 언어이다. JVM 때문에 운영체제에 독립적인 이식성(portability)이 뛰어난 언어이다. 전통적인 컴파일러와 인터프리터의 성격을 모두 갖는 하이브리드 컴파일러의 특성을 갖고 있다. 소스코드는 javac(java compliler) 에 의해 bytecode 로 변환된 후 java(java interpreter) 에 의해 런타임으로 해석된다.
자바 언어의 특징
- 운영체제에 독립적이다.
- 객체지향 언어이다.
- 비교적 배우기 쉽다.
- Garbage Collection 으로 프로그래머가 메모리 관리에 신경을 덜 써도 된다.
- 네트워크와 분산처리를 지원한다.
- 멀티쓰레드를 지원한다.
- 동적 로딩을 지원한다. (필요한 시점에 클래스를 로딩하여 사용할 수 있다. 인터프리터의 특징이 있어서 가능한 듯)
JVM (JAVA Virtual Machine)
전통적인 방식의 컴파일러를 통해 실행되는 코드들은 바로 OS만 거쳐 하드웨어로 전달되는데 비해, Java 코드는 bytecode 로 변환된 후에 JVM 을 거쳐 런타임에 해석되어 OS를 거친다. 그래서 속도가 느리다는 단점이 있지만, 바이트코드를 기계어(어셈블리어)로 바로 변환해주는 JIT 컴파일러와 향상된 최적화 기술로 속도가 향상되었다.
이렇게 불필요하게 보이는 JVM 을 한단계 더 거치는 이유는 바로 이식성(Portability) 때문이다. OS 에 맞는 JVM 만 선택하면 해당 JVM 위에서는 동일한 코드가 동일한 결과를 보장할 수 있기 때문이다. 단적인 예로 visual c++ 위에서 작성한 c++ 코드와 gcc 위에서 작성한 c++ 코드는 동일한 결과를 보장하지 않는다!
자바 프로그램 작성하기
- 주석을 제외한 모든 코드는 클래스 블럭 내에서 작성되어야 한다.
- public static void main(String[] args) 는 java.exe 에 의해 호출될 수 있도록 미리 약속된 부분이므로, 프로그램에 main 메서드를 포함한 클래스가 반드시 하나는 있어야한다.
- 소스코드 파일에는 여러개의 클래스를 정의할 수 있지만, public class 는 한 개만 존재할 수 있다. 그 때 public class 의 이름과 코드 파일의 이름은 동일해야한다.
'Java > Java의 정석' 카테고리의 다른 글
[Java의 정석] 06. 객체지향 프로그래밍 (0) | 2022.03.08 |
---|---|
[Java의 정석] 05. 배열 (0) | 2022.03.05 |
[Java의 정석] 04. 조건문 (0) | 2022.03.05 |
[Java의 정석] 03. 연산자 (0) | 2022.03.05 |
[Java의 정석] 02. 변수 (0) | 2022.03.02 |