티스토리 뷰

정리

Java 특징

도라지보다더덕 2020. 12. 6. 02:44

 

 

 

Java

Java는 1995년에 Sun Microsystems에서 발표한 언어로 점차 인터넷이 발전하면서 다양한 기종의 컴퓨터들과 운영체제들이 나타났고 이러한 플랫폼들로부터 독립적으로 동작하기 위해 고안된 언어입니다. C/C++로 만들어졌으며 C++의 장점을 그대로 흡수하고 단점은 제거한 완전한 객체지향 언어입니다. 

 

 

 

 

Java 언어의 특징(C++과 비교해 달라진 점)

- C++는 객체를 생성했을 때 delete 키워드를 사용해 제거해야합니다. 만약 프로그래머가 실수로 생성된 객체를 지우지 않을 경우 프로그램이 돌아가면 돌아갈수록 메모리에 불필요한 객체가 점점 쌓이게 됩니다. 따라서 프로그래머가 직접 객체를 지우지 않고 Gargarbage collection을 이용해 알아서 지워지도록 설계했습니다.

 

- 이차이상의 포인터에서 생기는 문제들을 제거하기 위해 Java에서는 포인터 변수를 제거하고 참조 변수만을 사용하도록 설계했습니다.

 

- 데이터 구조를 선언하는 방식으로 struct와 class가 존재했는데 struct 키워드를 지우고 class만을 사용합니다.

 

- 함수지향과 객체지향을 혼합하여 사용하는 방식에서 완전한 객체지향 언어로 사용하도록 설계했습니다.

 

- 언어 자체에 컬렉션을 포함하고 글로벌 문자 데이터 처리의 복잡성을 다양한 인코딩을 지원하여 해결했습니다.

 

 

이외에도 많은 차이점이 있지만 크게 요약을 하자면 아래와 같습니다.

 

 

C++와 비교했을 때 간결함

언어 자체에 포함된 컬렉션

완전한 객체지향 언어

 

 

 

 

자바 플랫폼의 특징

자바는 JVM이라는 가상 환경 위에서 동작합니다. 즉, 다른 플랫폼(운영체제)에서 독립적이다 라고 할 수 있습니다.

C나 C++ 같은 경우는 CPU나 운영체제가 달라질 경우 컴파일러 또한 달라져야 하지만 java는 JVM위에서 동작하므로 이러한 고민을 하지 않아도 됩니다.

 

 

이는 WORA (Write Once, Run Anywhere) 이라는 한번 쓴 코드는 어디에서든 동작하자 라는 철학에서 나온 특징입니다. 따라서 한번 작성된 코드는 모든 곳에서 실행되며 어떤 운영체제이든 위에 자바 플랫폼만 설치하면 동작할 수 있습니다.

 

 

 

자바 번역기 특징 (컴파일러)

자바는 다음과 같은 순서로 기계어로 된 물리코드로 번역됩니다.

 

 

이때 중간 코드 생성까지를 자바 컴파일러를 통해 생성합니다. 즉, 개발자가 자바 컴파일러를 통해 컴파일한다 라는 의미는 이 중간 코드를 생성한다는 의미입니다. 컴파일할 경우 .class 파일(= 바이트 코드 = 가상 cpu 코드 = 중간 코드)이라는 파일 유형의 형태로 저장됩니다. 

 

그 이후는 실행과정입니다. 생성된 .class 파일을 JIT를 통해 동적으로 컴파일하고 인터프리트 방식으로 물리적인 코드로 변경하고 실행합니다.

 

우리가 흔히 JDK라 말하는 것들은 위 개발부터 실행까지 모든 과정에 필요한 도구(컴파일러, 디버거, JIT, Garbage collection 등)들이며 실행환경에 필요한 필요한 여러 도구(JIT, Garbage collection, Security, Loader 등)를 JRE (자바 실행 환경)이라고 부릅니다.

 

더보기

컴파일러를 통해 중간코드가 생성됩니다. 이때 생성된 중간 코드는 가상의 cpu를 염두에 둔 바이트 코드입니다. 이 중간 코드는 어셈블리어로 변환된 뒤 이진 코드로 변환되는 과정을 거쳐야 하는데 중간 코드를 어셈블리어로 변환하는 과정은 인터프리트 방식으로 합니다.

 

 

 

 

 

 

 

reference


www.youtube.com/watch?v=5-ZiX4wRDpI&list=PLq8wAnVUcTFV4ZjRbyGnw6T1tgmYDLM3P&index=8

ko.wikipedia.org/wiki/%EC%9E%90%EB%B0%94_(%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D_%EC%96%B8%EC%96%B4)

 

자바 (프로그래밍 언어) - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. 자바Java패러다임프로그래밍 패러다임: 객체 지향 프로그래밍 (클래스 기반 프로그래밍), 구조적 프로그래밍, 명령형 프로그래밍, 제네릭 프로그래밍, 반영, 병

ko.wikipedia.org

medium.com/@ahn428/java-java%EC%9D%98-%ED%83%84%EC%83%9D%EA%B3%BC-%ED%8A%B9%EC%A7%95-1fd163df5858

 

Java - Java의 탄생과 특징

1. Java의 탄생

medium.com

 

'정리' 카테고리의 다른 글

2. Apache 컴파일 설치  (0) 2020.09.24
1. 가상환경 설치  (0) 2020.09.24
0. 서버 개요  (0) 2020.09.24
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/10   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
글 보관함