Java

자바는 1995년 제임스 고슬링(James Gosling)과 썬 마이크로시스템즈(Sun Microsystems)에서 개발한 객체 지향 프로그래밍 언어.
“한 번 작성하면 어디서나 실행된다(Write Once, Run Anywhere)“라는 철학을 바탕으로 만들어졌으며, 현재는 오라클(Oracle)이 관리하고 있다.

주요 특징과 장점

  1. 플랫폼 독립성:
    자바는 JVM(Java Virtual Machine)이라는 가상 머신 위에서 실행된다.
    이는 운영체제나 하드웨어에 상관없이 동일한 코드를 실행할 수 있게 해준다.
    예를 들어, Windows에서 작성한 프로그램을 Linux나 macOS에서도 수정 없이 실행할 수 있다.

  2. 객체 지향 프로그래밍:
    자바는 완전한 객체 지향 언어로, 상속, 다형성, 캡슐화, 추상화와 같은 객체 지향의 핵심 개념을 완벽하게 지원한다.
    이를 통해 코드의 재사용성과 유지보수성이 향상된다.

  3. 강력한 메모리 관리:
    가비지 컬렉션(Garbage Collection)을 통해 프로그래머가 직접 메모리를 관리할 필요가 없다.
    이는 메모리 누수나 버퍼 오버플로우와 같은 문제를 크게 줄여준다.

  4. 풍부한 라이브러리:
    Java API는 매우 방대하고 잘 문서화되어 있어, 다양한 기능을 쉽게 구현할 수 있다.
    또한 오픈소스 커뮤니티를 통해 수많은 외부 라이브러리도 사용할 수 있다.

단점과 해결방안

  1. 실행 속도
    JVM을 거쳐 실행되기 때문에 C/C++와 같은 네이티브 언어보다 실행 속도가 상대적으로 느릴 수 있다.

    • 해결방안: JIT(Just-In-Time) 컴파일러의 도입과 지속적인 JVM 최적화를 통해 성능이 크게 개선되었다. 또한 병렬 프로그래밍을 통해 성능을 향상시킬 수 있다.
  2. 메모리 사용량
    JVM이 추가로 메모리를 사용하기 때문에 메모리 사용량이 상대적으로 높다.

    • 해결방안: JVM 튜닝을 통해 메모리 사용을 최적화할 수 있으며, 최신 버전의 자바에서는 모듈 시스템을 도입하여 필요한 부분만 메모리에 로드할 수 있다.

문법적 특징

  1. 엄격한 타입 체계
    자바는 정적 타입 언어로, 모든 변수의 타입을 명시적으로 선언해야 한다.
    예를 들면:
1
2
String name = "John";
int age = 25;
  1. 클래스 기반 구조:
    모든 코드는 클래스 안에 작성되어야 한다.
1
2
3
4
5
6
7
8
9
public class Person {
    private String name;
    private int age;
    
    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }
}
  1. 예외 처리:
    체계적인 예외 처리 시스템을 제공한다.
1
2
3
4
5
6
7
try {
    // 예외가 발생할 수 있는 코드
    FileReader file = new FileReader("file.txt");
} catch (FileNotFoundException e) {
    // 예외 처리 코드
    System.out.println("파일을 찾을 수 없습니다.");
}

참고 및 출처


Roadmap

Roadmap - Java