Android App/Java

프로그래밍 언어와 자바(Java), 바이트코드 파일 및 자바 가상 머신(JVM)

AppJinny 2022. 12. 24. 11:21

*프로그래밍 언어와 자바(Java), 바이트코드 파일 및 자바 가상 머신(JVM)

 

*프로그래밍 언어

-컴퓨터가 이해할 수 있는 기계어(machine language)는 0과 1로 이루어진 이진코드 사용

-이진코드는 사람이 이해하기에는 매우 어려움

-프로그래밍 언어는 사람과 컴퓨터가 대화하기 위해 사람의 언어와 기계어의 다리 역할을 함

-프로그래밍 언어는 고급 언어와 저급 언어로 구분됨

-고급언어

--컴퓨터와 대화할 수 있도록 만든 언어 중 사람이 쉽게 이해할 수 있는 언어

--소스(source)파일 : 고급 언어로 작성한 파일

--소스파일은 컴파일(complie)과정을 통해 컴퓨터가 이해할 수 있는 이진코드로 변환 후 사용

--고급언어 종류 : 자바(Java), C, C++, C#, 파이썬(Python) 등

-저급언어

--기계어에 가까운 언어, 대표적으로 어셈블리어가 있음

 

*자바(Java)

-1995년 썬 마이크로시스템즈에서 발표 후 다양한 분야에서 사용되고 있음

-안드로이드 애플리케이션, 웹사이트 개발, 데스크톱 애플리케이션에서 사용됨

-자바는 오라클에서 라이선스를 가지고 있음

-오라클은 자바개발도구(Java Development Kit, JDK)를 배포함

-JDK(Java Development Kit) : 자바 개발 도구, 자바로 프로그램을 쉽게 개발할 수 있도록 하는 기술적인 지원

 

*자바 특징

-모든 운영체제에서 실행 가능 : 운영체제와 상관없이 모두 실행 가능함

-객체 지향 프로그래밍(Object Oriented Programming, OOP) : 먼저 객체(부품)을 만들고 이 객체들을 서로 연결해 더 큰 프로젝트 생성하는 기법

-메모리 자동 정리 : 메모리(RAM)를 자동 관리함

-무료 라이브러리 : 무료인 오픈소스 라이브러리가 풍부하여 개발기간 단축시켜줌

 

 

*바이트코드 파일과 자바 가상 머신

*바이트코드 파일(ByteCode)

-JDK 설치 후 자바 언어로 작성한 소스파일(.java)을 컴파일 하면 바이트코드 파일이 생성됨

-소스파일(.java)은 javac명령어를 통해 컴파일 하며, 확장명이 .class인 바이트코드 파일로 생성

-운영체제 상관없이 동일한 소스파일(.java)을 컴파일하면 모두 동일한 바이트코드 파일(.class)이 생성됨

 

*자바 가상 머신(Java Virtual Machine, JVM)

-JVM(자바 가상 머신)을 구동시켜 바이트코드 파일(.class)을  기계어로 번역하고 실행

-바이트코드 파일(.class)을  java명령어를 통해 JVM(자바 가상 머신)을 구동시켜 기계어로 번역하고 실행시킴

 

*바이트코드 파일과 JVM

-소스파일(.java) --(javac 컴파일)--> 바이트코드 파일(.class) --(java JVM구동)--> 기계어 번역 후 실행

-바이트코드 파일은 운영체제와 상관없이 모두 동일한 내용으로 생성됨

-자바가상머신 JVM은 운영제체가 이해하는 기계어로 번역해야 하므로 운영체제별로 다르게 설치하여 사용됨

 

 

*자바 프로그램의 개발 및 실행을 위한 설치

-JDK설치(Java Development Kit) : 자바개발도구

-이클립스(Eclipse) 설치 : 통합개발환경 

-설치 방법 : https://heeyjinny.tistory.com/131

 

*JDK

-JDK는 Java SE(Standard Edition)의 구현체

-JDK에는 Open JDK, Oracle JDK가 있음

Open JDK와 Oracle JDK

-Open JDK 의 JDK LTS(Long Term Support) 버전 사용

-JDK LTS버전 : 장기간 기술 지원을 받을 수 있는 버전, JDK8, JDK11, JDK17이 있음

-현재 Open JDK17 버전을 사용함

 

*이클립스(Eclipse)

-자바 프로그램 개발 시 편리한 기능을 갖춘 통합 개발환경(Interated Development Environment, IDE)

-가장 많이 사용하는 통합 개발 환경

 

 

 

 


이 포스팅에 작성한 내용은 신용권, 임경균, ⌜이것이 자바다⌟, 한빛미디어(주), 2022 에서 발췌하였습니다.