프로그래밍/Java
1. 자바의 특징
저세상 개발자
2021. 12. 16. 18:13
이식성이 높은 언어
- 다양한 서버 운영체제에서 단 한 번의 작성으로 모든 곳에서 실행 가능한 언어
객체 지향 언어
- 객체들을 먼저 만들고, 이를 하나씩 조립 및 연결해서 전체 프로그램을 완성하는 기법
- 자바는 100% 객체 지향 언어
함수적 코딩 스타일 지원
- 함수적 프로그래밍을 위해 람다식 지원 → 필터링, 매핑, 집계 처리가 쉬워지고 코드가 매우 간결해짐
메모리 자동 관리
- 자바는 개발자가 직접 메모리에 접근할 수 없도록 설계되어 있음
- Garbage Collector로 자바가 직접 관리
멀티 스레드 구현이 쉬움
동적 로딩 지원
- 객체가 필요한 시점에 클래스를 동적 로딩
- 수정이 발생하더라도 해당 클래스만 수정하면 되므로 전체 애플리케이션을 다시 컴파일 할 필요가 없다.
자바는 오픈소스 언어
자바 프로그램은 완전한 기계어가 아닌 중간 단계의 바이트 코드
- 운영체제가 자바 프로그램을 바로 실행할 수 없음
- JVM(Java Virtual Machine)은 실 운영체제를 대신해서 자바 프로그램을 실행하는 가상의 운영체제 역할 수행
- 바이트 코드 파일은 JVM 구동 명령어(java.exe)에 의해 JVM에서 해석되고 기계어로 번역됨 → C, C++의 컴파일 단계에서 만들어지는 완전한 기계어보다는 속도가 느림
- 자바 프로그램은 운영체제에 종속적이지 않지만 JVM은 운영체제에 종속적
- JVM은 JDK(Java Development Kit) 혹은 JRE(Java Runtime Environment)에 포함되어 있음
java 프로그램 개발 순서
- .java 소스 파일 작성
- 컴파일러(javac.exe)로 바이트 코드 파일(.class) 생성
- JVM 구동 명령어(java.exe)로 실행
- 바이트 코드 파일(.class)를 메모리로 로드 → 기계어로 번역
- main() 메소드를 찾아 실행
그 외 알면 좋은 것
- 자바 실행 프로그램은 반드시 클래스 블록과 메인 메소드 블록으로 구성되어야 함 → main() 메소드를 프로그램 실행 진입점(entry point) 이라고 함
- 소스 파일명과 클래스 이름이 일치해야함