[Java]자바의 특징과 JVM 그리고 .NET

hoins·2023년 1월 24일

Java

목록 보기
1/1

자바는 썬마이크로 시스템즈에서 개발한 객체지향프로그래밍 언어이다.
객체지향이란 프로그램을 잘게 나누어 부품화 한 뒤 조립하는 형식으로 개발하는 방법을 말한다. 클래스와 객체 개념이 등장한다.

자바의 특징

운영체제에 독립성

모든 운영체제에서 실행이 가능하다.

객체지향 언어

객체를 만들기 위해서 설계도인 클래스를 작성하고, 객체와 객체를 연결한다.
객체지향 언어의 특징인 캡슐화, 상속성, 다형성을 지원한다.

메모리 자동관리

객체 생성시 자동으로 메모리 영역을 찾아 할당하고, 가비지 콜렉터(GC)를 실행시켜 자동으로 사용하지 않는 객체를 제거한다.

오픈 소스

자바는 오픈소스 언어이며 라이브러리가 방대하다.

멀티 쓰레드 지원

일반적으로 하나의 프로세스는 하나의 쓰레드를 가지고 작업을 수행한다.
멀티쓰레드는 하나의 프로세스 내에서 둘 이상의 쓰레드가 동시에 작업을 수행하는 것을 의미한다.
자바는 멀티쓰레드를 지원한다.

동적 로딩 지원

필요한 시점에 클래스를 로딩해서 사용할 수 있기 때문에 메모리 낭비를 방지할 수 있다.

JVM(Java Virtual Machine)

자바 가상 머신 JVM은 자바 프로그램 실행환경을 만들어주는 소프트웨어이다. 자바코드를 컴파일하여 .class 바이트 코드로 만들면 이 코드가 자바 가상머신 환경에서 실행된다.
JVM을 사용하면 하나의 바이트 코드(.class)로 모든 플랫폼에서 동작하도록 할 수 있다.

자바 프로그램의 실행 과정과 JVM

컴파일을 통해 .class파일이 생성되고 이 바이트코드는 클래스 로더를 통해 JVM Runtime Data Area로 로딩되며 로딩된 .class바이트 코드를 JVM이 해석하여 프로그램이 실행된다.

.NET

닷넷 프레임워크(.NET Framework)는 MS에서 제공하는 윈도으 프로그램 개발 및 실행환경이다. 네트워크 작업, 인터페이스 등 많은 작업을 캡슐화하여 코딩의 효율성을 증대시켰다.
자바가 차세대 언어로 각광받으면서 MS사에서 자바의 장점을 수용하여 C#을 만들었고 C#은 .NET Framework를 사용한다.

윈도우 프로그램발에 최적화 되어있다.

플랫폼에 독립적이고 개발하기가 쉽다.

CLS(Common Language Specification)을 따르는 언어라면 어떠한 언어라도 닷넷에서 실행이 가능하며 CLR(Common Language Runtime)이라는 가상 기계위에서 작동하기 때문에 플랫폼에 독립적이며 개발하기 쉽다.

JVM과 CLR

자바의 경우

자바소스 -> 컴파일 -> 바이트코드로 변환
바이트 코드는 JVM상에서 변역되어 실행된다. 
JVM상에서 바이트코드가 네이티브 코드로 바뀌어 실행하게 된다.
JVM은 런타임으로 자바만 동작할 수 잇다.

.NET의 경우

.NET코드 -> 컴파일 -> IL로 변환
IL은 CLR에 의해 실행시 네이티브 코드로 바뀌어 실행하게 된다.
CLR은 공용언어 런타임으로 C#이나 비주얼베이직닷넷과 같은 CLS를 따르는 언어는 모두 동작할수 있다.

출처

https://coding-factory.tistory.com/827 -> JVM
https://wisdom-and-record.tistory.com/48 -> 멀티쓰레드
https://coding-factory.tistory.com/132 -> .NET

0개의 댓글