자바 Java
1. Java란? 자바 Javac 기계어 가상기계어 JVM 객체지향 언어
안녕하세요! 태마입니다.
자바 Java 정리입니다.
정리의 경우
1. 상세 정리 & 상세 개인 의견
으로 이루어져 있습니다.
자바 JAVA
포스팅 시작하겠습니다 :)
1. 상세 정리 & 상세 개인 의견
Java란?
Java는 썬 마이크로시스템즈의 제임스 고슬링(James Gosling)과 다른 연구원들이 개발한 객체 지향적 프로그래밍 언어입니다.
2010년에 오라클이 썬 마이크로시스템즈를 인수하면서 Java의 저작권은 오라클이 소유하고 있습니다.
제임스 고슬링이 Java라는 이름의 커피를 좋아해서 Java 로고에도 커피 그림이 들어가 있습니다.
하지만 찾아보니 Java라는 이름은 단어 리스트 중 무작위로 뽑아서 선택한 것으로 나와 있습니다.
Java가 만들어진 배경
원래는 같은 소스더라도, 각 운영체제의 컴파일러로 컴파일을 했어야 하고,
컴파일 된 파일은 해당 운영체제에서만 사용이 가능합니다.
여기서 문제는 같은 소스를 각기 다른 컴파일러로 컴파일을 하기만 하면 되는 것이 아니고,
코드 내 명령어라던지 등의 문제들도 각 운영체제에 맞게 소스를 수정하는 일이 필요했습니다.
따라서 개발자들은 소스를 만들더라도 어떤 운용체제인지 알고 고민을 했어야 했습니다.
이를 해결하기 위해 나온 것이 java이며, WORA(Write Onece Run Anywhere)의 슬로건으로 등장했습니다.
어떠한 운용체제인지 개발자가 고민하지 않도록 했습니다.
기계어
개발자가 소스를 작성함에 있어 운영체제에 맞게 소스코드를 작성했어야 하나,
이 가상 기계어로 작성된 파일을 각 운영체제에 맞는 bytecode 실행기(JVM)로 실행하여
개발자가 소스를 작성함에 있어 운영체제를 신경쓰지 않고 작성하게 되었습니다.
추가로 Java와 다른 언어인 코틀린(Kotlin)의 경우에 컴파일 시 .class 파일을 생성하는데,
JVM의 경우 .class 파일로 작성된 파일을 실행하기 때문에 코틀린으로 작성된 코드 또한
JVM로 실행시킬 수 있습니다.
Kotlin의 경우에는 JVM으로 실행한다는 전제하에 개발된 언어기 때문에 가능한 것입니다.
객체지향 언어
객체지향 언어를 설명하기 전, 객체라는 개념을 간단하게 짚고 넘어간다면
객체(Object)란 어떠한 속성(메소드)과 기능(필드)을 가지고 있는 것입니다.
객체지향 언어란 프로그램을 단순히 데이터와 처리방식, 명령을 내리는 시선에서 벗어나,
프로그램을 수많은 객체라는 단위로 나누고, 이들의 상호작용을 통해 서술하는 방식입니다.
추가로 Java는 객체지향 언어가 맞으나, 완벽한 객체지향 언어는 아닙니다.
이유는 기본형 변수(원시 타입)은 객체로 취급하지 않기 때문이며,
모든 것을 객체로 취급하는 언어를 순수 객체지향언어라 부르는데 대표적으로
Python, Rudy 등이 있습니다.
Java 정리 <2. JVM>
으로 돌아오겠습니다.