본문 바로가기
Sketch (Programming Language)/Java

Java의 정석 Chapter1. 자바를 시작하기 전에

by 생각하는 이상훈 2022. 5. 10.
728x90

자바를 갑자기 공부하게된 이유는 프로젝트에 참여하기 위해서이다.

우리과만의 다양한 편의를 제공하는 페이지를 만들려는 움직임으로 보인다.

본래 인공지능 파트에 도움되는 Python이나 학교공부를 위한 C++을 주로 공부했는데

프로그래머보다는 기획자의 역할을 하고 싶은 사람으로써 다양한 경험을 해보는 것은 좋은 기회일 것이라고 생각했다.

 

자바

"썬 마이크로시스템즈에서 개발하여 1996년 1월에 공식적으로 발표한 객체지향 프로그래밍 언어"

 

자바라는 언어의 특징을 살펴보면

 

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

자바로 작성된 프로그램은 운영체제의 종류에 관계없이 실행이 가능하다.

 

2. 객체지향언어이다.

Object-oriented programming language로 상속, 캡슐화, 다향성이 잘 적용된 순수한 객체지향 언어이다.

 

3. 배우기 쉽다.

기본구문이 C++에서 유래하면서 단순화하고 장점을 취하였기 때문에 쉽게 배울 수 있다.

 

4. 자동 메모리 관리 (Garbage Collection)

Garbage collector가 자동적으로 메모리를 관리해주기 때문에 프로그래머는 메모리를 따로 관리 하지 않아도 된다.

 

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

풍부하고 다양한 네트워크 프로그래밍 라이브러리를 통해

비교적 짧은 시간에 네트워크 관련 프로그램을 개발 할 수 있도록 지원한다.

 

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

자바는 다른 언어들과 다르게 시스템과 상관없이 관련된 라이브러리가 제공되므로 구현이 쉽다.

추가적으로 여러 쓰레드에 대한 스케줄링을 자바 인터프리터가 담당하게 된다.

 

7. 동적로딩을 지원한다.

동적로딩을 지원하기 때문에 모든 클래스를 로딩하는 것이 아니라 필요한 시점에 클래스를 로딩하여 사용할 수 있다.

또한 일부 클래스가 변경되어도 전체 애플리케이션을 다시 컴파일하지 않아도 되며, 변경사항이 발생하여도

비교적 적은 작업만으로도 처리할 수 있는 유연한 어플리케이션을 작성할 수 있다.

 

 


 

JVM (Java Virtual Machine)

여기서 Virtual Machine은 가상 컴퓨터 인데 이는 실제컴퓨터(하드웨어) 속에 소프트웨어로 구현된 컴퓨터라는 뜻이다.

자바로 작성된 모든 어플리케이션은 모두 이 JVM에서만 실행되기 때문에 반드시 JVM이 필요하다.

 

 

Java는 애플리케이션에서 OS로 전달될때 JVM을 한 번 거치기 때문에 속도가 느리다는 단점이 있다.

그러나 요즘엔 바이트코드를 하드웨어의 기계어로 바로 변환해주는 JIT컴파일러와 향상된 최적화 기술이

적용되어서 속도의 격차를 많이 줄였다.

하지만 이러한 구조덕분에 어떤 OS에서도 프로그램의 변경없이 실행이 가능한 것이다.

단, JVM은 OS에 종속적이므로 해당 OS에서 실행가능한 JVM이 필요하다.

728x90