반응형
자바가 공개된지는 1995년 5월 Sun World에서 공식 발표된 이후 26년이라는 세월이 흘렀음에도 아직까지 자바를 사용하는 지 알아봅시다.
자바 언어는 대표적인 강점인 플랫폼 독립성과 풍부한 API로 거의 모든 시스템 개발에 적극 사용되고 있다.
- 자바는 가장 대표적인 객체 지향 언어이다.
- 자바는 처음 개발할 때부터 객체 지향 언어로 개발하였기 때무넹 객체 지향 개념을 가장 정확하게 적용하고 있는 언어이다. - 자바는 플랫폼이 독립적인 언어이다.
- 자바는 플랫폼에 상관없이 한 번 작성되어 컴파일된 클래스(.class)파일은 그대로 masOS 나 리눅스에서 동일하기 실행된다.
- 다른언어들은 각 운영체제에 맞게 프로그래밍을 진행해야하며, 해당 운영 체제에 맞는 컴파일러를 사용해야 한다 - 자바는 언어 차원에서 스레드를 지원해준다.
- 자바는 API에서 스레드 기능을 지원하기 때문에 스레드를 사용한 프로그램 작성이 용이하다.
- 예를 들어, 채팅프로그램을 구현할 때
사용자가 입력한 메세지를 채팅 서버로 전송하는 기능
다른 사용자가 전송한 메세지를 서버로부터 전송받아 애플리케이션화면에 출력해 주는 기능을 동시에 해야한다.
이런 경우 채팅기능의 두 동작을 스레드로 처리하면 작업을 거의동시에 실행하는 것처럼 효과적으로 처리할 수 있다. - 프로그래머를 위한 언어이다.
- C와 같은 포인터 개념이 없어서 메모리를 직접 제어하지 않고 JVM을 통해서 메모리를 관리한다.
- 예를들어 RPG게임에서 맵을 로딩했는데 이동하면 앞에 보이는 맵은 생성하고 지나간 맵은 제거해야 메모리 할당을 안하는데 C#은 메모리 제거를 하는 코드를 넣어야 제거되지만 자바는 알아서 필요없는 메모리는 제거해준다. - 인터프리터에 의해 실행된다.
- 자바는 소스 코드를 작성하고 컴파일 시 중간 코드인 바이트코드 (Byte Code = class 파일)가 생성되며, 생성된 바이트코드를 각 플랫폼에 설치된 JVM에서 인터프리터가 해당 플랫폼에 적합한 코드로 변환하여 실행한다.
- 한 번 작성되어 컴파일된 class 파일은 플랫폼을 가리지 않고 동일하게 실행될 수 있다. - 보안이 강한 언어이다.
- 자바는 네트워크 프로그래밍 시 허가가 없으면 외부에서 애플리케이션 구조나 데이터에 접근하지 못하게 막을 수 있다. - RTTI(Run Time Type Information)를 지원한다.
- 호출하는 메소드를 RunTime시에 결정한다는 것읻. 이 개념이 적영되기 떄문에 다형성 기능을 사용할 수 있다. - 분산 환경에 적합하다.
- 자바는 원래 네트워크 프로그래밍 용도로 개발되었기 때문에 이를 위한 다양한 API들이 제공되고, 분산 환경 프로그래밍에 적합한 언어이다. - 견고한 구조를 가진다.
- 엄격한 타입 체킹을 지원하며, 프로그램 실행시에도 에러를 처리한다.
- 변수를 선언할 때도 앞에 문자인지 정수인지 실수인지 설정해줘야한다. - 동적이다.
- 프로그램이 실행될 때 필요한 라이브러리들을 연결하는 기능을 제공한다.
- JDK란 자바 개발을 위한 도구들의 모음이다. 개발을 위한 API, 도큐먼트, 컴파일러 실행 및 배포 도구 등을 포함한다.
JVM (Java Virtyre Machine)
- 자바 번역기라고도 하며 자바의 바이트 코드를 각 운영체제에서 실행할 수 있는 형태의 코드로 변환해주는 역할을 한다.
- 어떤 운영체제이든 JVM만 설치되어있으면 바이트 코드를 자신의 운영체제에 맞게 변환하여 실행할 수 있다.
반응형
'코딩 > Java' 카테고리의 다른 글
자바(JAVA) - 제어문 (0) | 2021.01.27 |
---|---|
자바(JAVA) - 연산자(Operator) (0) | 2021.01.26 |
자바(JAVA) 문자타입, String 타입, 실수 타입, 논리 타입 (0) | 2021.01.24 |
자바(JAVA) 기본문법 - 상수 & 리터럴 & 정수 대입 (0) | 2021.01.24 |
자바(JAVA) - 변수 선언, 데이터 타입 (0) | 2021.01.23 |