반응형

자바(Java)란 프로그래밍 언어이다.

 

1995년 Sun Microsystems에서 제임스 고슬링을 필두로 개발된 객체지향 언어

2010년 Sun Microsystems는 Oracle에 인수 됨

현재는 저작권은 Oracle에 있다.

 

프로그래밍 언어란 사람과 컴퓨터 간의 의사소통을 위한 도구이다.

 

우리가 컴퓨터에서

1. 입력장치(마우스, 키보드 등)프로그램(S/W)을 실행(명령내리기)하면

2. 운영체제가 H/W(CPU, Memory, HDD 등)의 자원을 이용하여 명령을 처리하도록 하고

3. H/W 에서 처리된 결과를 출력장치(모니터, 스피커 등)로 출력하여 

사용자에게 알려준다.  

 

프로그래밍 언어는 컴퓨터에서 프로그램을 작성하는 도구이며 프로그램(S/W)을 작성하면

사용자가 프로그램을 사용할 수 있고 프로그램을 동작 시키면 컴퓨터(H/W)가 처리하고 결과를 돌려주므로 프로그램을 만든다는 것(Programing)은 사용자가 원하는 결과를 얻기 위해 컴퓨터와의 통역사(어플리케이션)을 만드는 것이다.

 

즉 사용자 <-> 프로그램(S/W) <-> 컴퓨터(H/W) 개념을 이해

 

프로그램 == 소프트웨어 == 어플리케이션

 

 

 

프로그래밍 언어 점유율 - 2017 출처 TIOBE

 

 

 

 

 

자바의 특징

- 이식성이 높다.

- 외부 포인터를 제거하고 내부 포인터 사용

- 객체지향언어

- JVM(Java Virtual Machine)을 이용하여 실행

 

 

 

이식성

 한 번 만들어진 프로그램을 여러 종류의 시스템에서 호환성있게 동작하는 특성을 말한다. 자바의 철학으로 WORA(Write Once Run Anywhere)가 이 특성을 말하고 있다.

 

내부 포인터

 자바는 C언어와 같이 메모리의 주소를 포인터 변수에 담아 직접 메모리의 값을 조작하는 행위를 지원하지 않는다.  메모리의 값은 참조의 형태로 JVM에서 관리하므로 개발자는 참조변수를 이용하여 객체에 접근하고 객체의 값을 조작한다.

 

객체지향언어

 C언어와 같이 순서, 절차적으로 개발되는 형식의 언어를 절차지향이라 한다.

객체 지향은 프로그램을 이루는 속성과 행위에 대해 동일한 특성을 갖는 요소간에 그룹화 하여 클래스를 정의하고 이 클래스를 객체화(실체화)하여 현실 세계의 개체(Object)관계를 표현하는 형식으로 프로그래밍하는 형태의 언어.

객체지향언어의 특징은 클래스, 객체, 캡슐화, 상속성, 추상성, 다형성 등의 개념을 포함한다.

 

JVM(Java Virtual Machine)

 class 파일을 읽어 현재 시스템에 맞도록 OS를 통해 실행해주는 가상머신(Middle Ware) 

컴파일(Complie)이란 원시소스코드를 기계어로 변환하는 작업(컴파일을 수행하는 프로그램을 Compiler라고 부름)

 

 C언어는 원시코드(.c)를 컴파일 할 때 컴파일되는 대상 시스템(Linux, Windows 등)에 맞게 기계어로 컴파일하는데 이 때 기계어로 만들어진 obj파일이 생성된다. 이 파일은 컴파일된 환경에 맞는 Builder(Visual C, gcc 등)를 통해 실행파일로 만들어질 수 있는데 만약 컴파일된 환경이 달라지면 소스코드(.c)의 재 컴파일(.obj)및 Build가 필요하다.

 

 자바로 작성된 프로그램 역시 클래스를 정의하는 자바(.java)파일로 작성되며 이 자바파일을 컴퓨터가 이해할 수 있는 기계어(.class)파일로 변환(Compile)을 해야한다.

 Java는 Write Once Run Anywhere라는 '한 번 작성하면 어디서든 실행한다'라는 이식성을 특징으로 가지는데 이것을 가능하게 해 주는 것이 바로 JVM의 존재이다.

 JVM은 OS별로 존재하며 OS와 자바프로그램의 중간에서 자바 프로그램을 실행한다.

 즉 Windows 환경에서 만들어진 자바프로그램이 있을 때 이 프로그램을 Linux환경에서 JVM을 설치하면 재컴파일 없이 실행이 가능하게 되는 것이다.  

 

 

 

JDK(Java Development Kit)

자바 개발을 위한 개발도구(개발에 필요한 여러 라이브러리들을 포함) 프로그램

JRE도 포함되어 있음

 

JRE(Java Runtime Environment)

자바로 만들어진 프로그램을 실행하기 위한 환경을 제공하는 프로그램

마인크래프트라는 게임은 자바로 만들어진 대표적인 프로그램

실행을 위해 JRE를 요구한다. 현재는 Launcher에 포함되어 있음

 

JavaDoc

자바언어를 사용하기 위한 JDK의 도움말 문서(Oracle에서 제공)

일반 개발자가 자바로 만든 라이브러리에 대해 javadoc을 만들어 배포(설명) 하기도 함

반응형

+ Recent posts