자바 시작하기

Bummy·2023년 6월 16일
0

JAVA

목록 보기
1/11
post-thumbnail

자바의 특징

이식성이 높은 언어이다.

  • 서로 다른 실행 환경을 가진 시스템 간에 프로그램을 옮겨 실행할 수 있는 것
  • 자바 소스 파일을 다시 수정하지 않아도, 자바 실행 환경(JRE: Java Runtime Envionment)이 설치되어 있는 모든 운영체제에서 실행 가능하다.

객체 지향 언어이다.

  • 객체들을 먼저 만들고, 이것들을 하나씩 조립 및 연결해서 전체 프로그램을 완성하는 기법을 객체지향(OOP: Object Oriented Programming) 이라고 한다.
  • 객체 지향 언어가 가져야 할 캡슐화, 상속, 다형성 기능을 완벽하게 지원하고 있다.

함수적 스타일 코딩을 지원한다.

  • 대용량 데이터의 병렬 처리 그리고 이벤트 지향 프로그래밍을 위해 적합
  • 자바는 함수적 프로그래밍을 위해 람다식을 지원하는데, 람다식을 사용하면 컬렉션의 요소를 필터링, 매핑, 집계 처리하는데 쉬워지고 코드가 매우 간결해진다.

메모리를 자동으로 관리한다.

  • C++은 메모리에 생성된 객체를 제거하기 위해 개발자가 개입해야하지만 자바는 쓰레기 수집기(Garbage Collector)를 실행시켜 자동적으로 사용하지 않는 객체를 제거시켜준다.

다양한 애플리케이션을 개발할 수 있다.

  • 자바는 다양한 운영체제에서 사용할 수 있는 개발 도구와 API를 묶어 에디션(Edition) 형태로 정의하고 있다.
💡 JAVA SE(Standard Edition) - 기본 에디션 - 자바 프로그램들이 공통적으로 사용하는 자바 가상 기계(JVM : Java Virtual Machine)를 비롯해서 자바 프로그램 개바에 필수적인 도구와 라이브러리 API를 정의한다. 💡 JAVA EE(Enterprise Edition) - 서버용 애플리케이션 개발 에디션 - 분산 환경에서 서버용 애플리케이션을 개발하기 위한 도구 및 라이브러리 API를 정의한다.

멀티 스레드(Multi-Thread)를 쉽게 구현할 수 있다.

  • 동시에 여러 가지 작업을 처리해야 할 경우와 대용량 작업을 빨리 처리하기 위해 서브 작업으로 분리해서 병렬처리하기 위해 필요하다.
  • 자바는 스레드 생성 및 제어와 관련된 라이브러리 API를 제공하고 있기 때문에 실행되는 운영체제에 상관없이 멀티 스레드를 쉽게 구현할 수 있다.

동적 로딩(Dynamic Loading)을 지원한다.

  • 애플리케이션이 실행될 때 모든 객체가 생성되지 않고, 객체가 필요한 시점에 클래스를 동적 로딩해서 객체를 생성한다.
  • 유지보수가 필요하더라도 해당 클래스만 수정하면 되므로 전체 애플리케이션을 다시 컴파일할 필요가 없다.

막강한 오픈 소스 라이브러리가 풍부하다.

자바 가상 기계(JVM)

  • 자바 프로그램은 완전한 기계어가 아닌 중간 단계의 바이트 코드이기 때문에 이것을 해석하기 위해 가상의 운영체제가 필요하다.
  • 운영체제별로 프로그램을 실행하고 관리하는 방법이 다르기 때문에 운영체제별로 JVM을 설치해야한다.
  • 바이트 코드 파일은 JVM 구동 명령어에 의해 JVM에서 해석되고 해당 운영체제에 맞게 기계어로 번역된다.

1.4.2 프로그램 소스 분석

  • 자바 실행 프로그램은 반드시 클래스(class) 블록과 main() 메소드 블록으로 구성되어야 한다.
  • 메소드 블록은 단독으로 작성될 수 없고 항상 클래스 블록 내부에서 작성되어야 한다.

클래스 : 필드 또는 메소드를 포함하는 블록
메소드 : 어떤 일을 처리하는 실행문들을 모아 놓은 블록

  • 클래스의 이름은 사용자가 마음대로 정할 수 있다.

0개의 댓글