프로그래밍/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 프로그램 개발 순서

  1. .java 소스 파일 작성
  2. 컴파일러(javac.exe)로 바이트 코드 파일(.class) 생성
  3. JVM 구동 명령어(java.exe)로 실행
    1. 바이트 코드 파일(.class)를 메모리로 로드 → 기계어로 번역
    2. main() 메소드를 찾아 실행

그 외 알면 좋은 것

  1. 자바 실행 프로그램은 반드시 클래스 블록과 메인 메소드 블록으로 구성되어야 함 → main() 메소드를 프로그램 실행 진입점(entry point) 이라고 함
  2. 소스 파일명과 클래스 이름이 일치해야함