Dlise
시원한 냉장고
Dlise
전체 방문자
오늘
어제
  • 시원한 냉장고 (136)
    • Java (31)
      • Java (26)
      • Spring (5)
    • Algorithm & PS (25)
      • Algorithm (14)
      • Problem Solving (11)
    • Network (12)
    • Database (2)
    • Data Structure (4)
    • OOP & CleanCode (5)
    • Web (0)
    • Git (2)
    • AI (2)
    • Project (1)
      • Discord Bot (1)
    • Error (19)
    • Tools (5)
    • 수학 (5)
      • 확률과 통계(기초) (5)
    • 컴퓨터 구조 (3)
    • 활동 (20)
      • 행사 & 여행 (10)
      • 자격증 (4)
      • 회고 (6)
      • 기타 (0)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 백준
  • 네트워크
  • java
  • 후위 표기법
  • 가장쉬운알고리즘책
  • 중위 표기법
  • CleanCode
  • 통계학
  • spring security in action second edition
  • 열혈강의자료구조

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
Dlise

시원한 냉장고

Java/Java

Java - Java 특징

2023. 1. 19. 17:00

Java 특징

1. OS에 독립적이다. 

Java 언어는 JVM(Java Virtual Machine)을 이용하여 OS와 Java Application을 연결하기 때문에

Java application은 Windows, Linux, Mac 등 OS의 종류에 구애받지 않는다.

단, JVM은 OS에 맞게 필요하다.

 

그림으로 보면 다음과 같다. 

Java application은 JVM에서 실행되기 때문에 반드시 필요하다.

 

JDK(Java Development Kit) 설치 시 JVM, Java 클래스 라이브러리 등을 받을 수 있다.

(javac.exe: Java 컴파일러, java.exe: Java 인터프리터, Javap.exe: 역어셈블러, jar.exe: 압축프로그램)

 

JDK = JRE + 개발에 필요한 실행파일
JRE(자바 실행 환경(Java Runtime Environment)) = JVM + 클래스 라이브러리

 

2. 객체 지향 언어이다. 

상속, 다형성 등 객체 지향 언어의 특징을 잘 활용할 수 있다.

 

 

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

C언어의 경우 메모리를 할당한 수 역할이 끝나면 free()를 직접 해야한다. 

하지만 Java는 JVM의 가비지컬렉터(Garbage Collector)가 자동적으로 메모리를 관리하기 때문에 크게 신경을 쓸 필요가 없다.

 

 

4. 멀티쓰레드를 지원한다.

멀티쓰레드(Multi Thread)는 OS 동작이 필요하기 때문에 종류에 맞게 구현할 필요가 있지만 Java는 OS 상관 없이 관련 라이브러리를 이용해 구현할 수 있다.

 

 

이외에도 여러 특징이 있지만 가장 눈여겨볼 것은 JVM을 통해 동작한다는 것이다. 

JVM 단에서 여러 동작을 지원하기 때문에 Java를 이용한 개발이 보다 수월하다는 것을 알 수 있다.

 

 

5. 동적 로딩을 지원한다.

자바 애플리케이션은 여러 개의 클래스로 구성되어 있는데 자바는 동적 로딩을 지원하기에 실행 시에 모든 클래스가 로딩되지 않고 필요한 시점에 클래스를 로딩해 사용할 수 있다.

 

 

Java가 느린 이유

1. Java 애플리케이션은 JVM을 거치기 때문

2. HW에 맞게 완전히 컴파일된 상태가 아니고 실행 시 해석(interpret)되기 때문

 

Java 동작

Java 동작을 보면 다음과 같다.

javac.exe로 클래스 파일을 생성한 후 java.exe로 실행한다.

이때 .class 파일은 각 클래스마다 하나씩 만들어진다. 

Java의 모든 코드가 class안에 있어야 하는 이유라고 볼 수 있다.

 

'Java > Java' 카테고리의 다른 글

Java - Java 클래스, 객체, 인스턴스  (0) 2023.07.16
Java - Java 배열  (0) 2023.02.10
Java - Java 조건문과 반복문  (0) 2023.02.10
Java - Java 연산자  (0) 2023.02.09
Java - Java 변수  (0) 2023.01.21
    'Java/Java' 카테고리의 다른 글
    • Java - Java 배열
    • Java - Java 조건문과 반복문
    • Java - Java 연산자
    • Java - Java 변수
    Dlise
    Dlise

    티스토리툴바