본문 바로가기

웹 프로그래밍/JAVA

[JAVA] JAVA 특징

728x90
반응형

해당 글은 남궁성님의 자바의 정석을 학습 후에 작성되었습니다.

자바(Java)란?

  • 프로그래밍 언어로 컴퓨터 프로그램(애플리케이션)을 만드는데 사용한다.
  • 자바는 단순히 프로그래밍 언어가 아닌, 실행환경(JRE) + 개발도구(JDK) + 라이브러리(API)를 제공한다.
  • 라이브러리란?JDK(Java Development Kit) - 자바 개발 도구
  • 프로그램을 개발하는데 필요한 기능들을 미리 만들어 둔 것
    (자바에서 제공하는 라이브러리를 사용하면 쉽고 빠르게 어플리케이션을 만들 수 있다)

왜 자바를 사용해야 하나?

  • 자바는 PC 애플리케이션, 웹 애플리케이션, 모바일 애플리케이션, 빅 데이터, 게임 등 다양한 곳에 사용된다.
  • 20년간 프로그래밍 언어 1,2위
  • 배우기 쉽고 풍부한 학습자료
  • 모던 프로그래밍 언어(객체지향+함수형)
  • 취업에 유리(실무에서 제일 많이 사용)

 

자바의 특징

  • 배우기 쉬운 객체지향 언어이다.
    • C++, Java, Python....
    • 위의 언어 중 한가지로 객체지향 개념을 익히면 다른 것도 쉽게 익힐 수 있다.
  • 자동으로 메모리를 관리해준다.
    • 가비지 컬렉터(Garbage Collector)가 메모리를 알아서 정리해준다. 프로그래머가 따로 정리하는 코드를 작성하지 않아도 된다
  • 멀티 쓰레드를 지원한다.
    • 하나의 프로그램에서 동시에 여러 작업을 할 수 있게 해준다.
      (채팅을 하면서 다른 친구에게 파일을 전송하는 것과 같이 여러 작업을 할 수 있다)
  • 풍부한 라이브러리로 쉽게 개발 가능하다.
  • 운영체제에 독립적이다.
    • 특정 운영체제에서만 실행이 가능한 것이 아닌 여러 운영체제에서 실행 될 수 있다.

 

JVM(Java Virtual Machine) - 자바 가상 머신

자바 프로그램이 실행되는 가상의 컴퓨터(VM)

일반적으로 다른 애플리케이션은 특정 OS에서 실행되게 되는데, 예를 들어 Windows용 어플리케이션이 Macintosh와 같은 다른 OS에서 사용하고 싶은 경우, 어플리케이션을 수정해야 한다.

반면 자바 어플리케이션은 다른 어플리케이션는 달리 JVM 위에서 동작한다. JVM은 여러 운영체제 별로 만들어져 있기 때문에 JVM만 설치되어 있다면 Java로 작성된 프로그램은 운영체제에 상관없이 어디서든 실행이 가능하다

한번 작성하면, 어디서든 실행 (Write once, run anywhere)

1주차 - JVM은 무엇이며 자바 코드는 어떻게 실행하는 것인가

 

자바 프로그램

javac.exe

  • 자바 컴파일러. 사람이 작성한 문장을 기계어로 번역해준다.
  • 소스 파일( *.java )을 클래스 파일( *.class )로 변환한다

 

java.exe

  • 자바 인터프리터. 자바 프로그램(클래스 파일)을 실행한다.

 

Class

  • 자바 프로그램의 단위. 자바 프로그램은 최소 한개의 클래스로 구성된다.
  • 모든 문장은 클래스의 {} 안에 있어야 한다.
    class 클래스이름 {
    	// 다른 모든 문장은 클래스 안에 있어야 한다 
    }

 

main 메서드

  • 자바 프로그램의 시작점
      class 클래스이름 {
          public static void main(String[] args){
              // 원하는 문장 작성
          }
      }​

본 포스팅은 남궁성님의 자바의 정석-기초편 학습 내용을 바탕으로 작성되었습니다.

부족한 점이 있다면 언제든지 댓글로 피드백 주시면 감사하겠습니다.

728x90
반응형

'웹 프로그래밍 > JAVA' 카테고리의 다른 글

[JAVA] CountDownLatch란?  (0) 2021.10.28
[JAVA] 변수란?  (0) 2021.10.18
[JAVA] 정규표현식  (0) 2021.08.28
LocalDate, LocalTime, LocalDateTime  (0) 2021.05.20
[JAVA] BufferedReader, BufferedWriter  (0) 2021.04.30