-
Java 기본 개념Java 2024. 2. 25. 14:08728x90반응형
자바(Java)란?
자바(Java) 언어는 바이트 코드를 가지는 언어로,
개발자가 작성한 코드가 바이트 코드로 컴파일되어,
운영체제 커널(Kernel)이 이를 직접 읽어들이지 않고,
JVM이 해당 바이트코드를 읽어 들여 그 결과를 운영체제 커널에 전달하는 방식 채택
이러한 방식 때문에, 각 운영체제에 맞는 JVM이 적절하게 구축되어 있다면 하나의 코드로 운영체제와 무관하게 개발 및 실행할 수 있다는 장점이 있다.JRE(Java Runtime Environment)
- 자바로 작성된 프로그램을 실행하기 위해 필요한 구성요소의 집합
- JVM + 클래스 라이브러리JDK(Java Development Kit)
- 자바로 프로그램을 개발하기 위해 필요한 구성요소의 집합이다.
- JDK는 JRE를 포함하고 있다.JVM(Java Virtual Machine)
- 자바로 개발된 프로그램을 실행할 수 있는 가상의 환경자바 특징
1. 운영 체제에 독립적
기존 언어는 한 운영체제에 맞게 개발되서 다른 운영체제에 적용하기 힘듬
자바는 에뮬레이터인 자바가상머신하고만 소통
자바가상머신이 각 운영체제에 맞게 변환함
자바로 만들어진 프로그램은 운영체제에 독립적이지만 JVM은 종속적임
그래서 각 운영체제에 맞는 JVM이 따로 있음단점으로는 다른 언어는 거치지 않는 JVM의 존재로 속도가 느리다.
2. 객체지향언어
객체지향 프로그래밍언어 중의 하나로 상속, 캡슐화, 다형성이 잘 적용되어있다.
3. 자동 메모리 관리
자바로 만든 프로그램이 실행되면 가비지컬렉터가 자동적으로 메모리를 관리함
사용하지 않는 메모리를 체크하고 반환하는 일을 수동적으로 처리안해도 됨4. 네트워크와 분산처리를 지원
인터넷과 대규모 분산환경을 염두에 둔 이유인지 다양한 네트워크 프로그래밍 라이브러리를 통해,
비교적 짧은 시간에 네트워크 관련 프로그램을 쉽게 개발할 수 있도록 지원한다.
5. 멀티쓰레드 지원
여러 쓰레드에 대한 스케줄링을 자바 인터프리터가 담당6. 동적 로딩 지원
로딩 : class파일을 읽어서 바이너리 코드로 만들고, 이를 메모리의 메서드 영역(Method area)에 저장하는 과정
동적 로딩이란 프로그램을 실행할 때(런타임 중), 필요할 때마다 동적으로 메모리를 할당하며,
필요없는 메모리는 할당 해제하여 메모리를 효율적으로 관리하는 방식을 말한다.jdk > bin 디렉토리의 주요 실행파일
javac.exe 자바 컴파일러
자바소스코드를 바이트코드로 컴파일함
c:\jdk1.8\work>javac Hello.javajava.exe 자바 인터프리터
컴파일러가 생성한 바이트코드를 해석하고 실행
c:\jdk1.8\work>java Hellojavap.exe 역어셈블러
컴파일된 클래스파일을 원래의 소스로 변환
c:\jdk1.8\work>javap Hello > Hello.javajavadoc.exe 자동문서생성기
소스파일에 있는 주석을 이용해
java API문서와 같은 형식의 문서를 자동으로 생성
c:\jdk1.8\work>javadoc Hello.javajar.exe 압축프로그램
클래스파일과 프로그램의 실행에 관련된 파일을 하나의 jar파일(.jar)로 압축하거나 압축해제한다.
c:\jdk1.8\work>jar cvf Hello.jar Hello1.class Hello2.class
c:\jdk1.8\work>jar xvf Hello.jar728x90반응형'Java' 카테고리의 다른 글
Java 패키지 (1) 2024.02.25 Java 배열 (1) 2024.02.25 Java 반복문, 조건문, 메서드 (0) 2024.02.25 Java 연산자 (2) 2024.02.25 Java 타입과 변수 (0) 2024.02.25