Notice
Recent Posts
Recent Comments
Link
«   2026/09   »
일 월 화 수 목 금 토
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
Tags more
Archives
Today
Total
관리 메뉴

seaking110 님의 블로그

JAVA란? 본문

Today I Learned

JAVA란?

seaking110 2024. 12. 31. 19:57

 

 

Java 언어

  • 어디서나 마시는 커피처럼 어디서나 동작 가능한 (JVM)
  • 1990년대 발표
  • C언어 기능 + 공통 실행 환경, 클래스, 객체

 

java 언어의 특징

  • 플랫폼 독립성 : 공통 실행환경이 있어 여러 기기에서 실행 가능 
  • 객체 지향 언어 (OPP) : 코드를 이해하기 쉽고 유지 보수가 쉽다.
    • 주요 OPP 개념
      • 상속 (Inheritance)
      • 다형성 (Polymorphism)
      • 캡슐화 (Encapsulation)
      • 추상화 (Abstraction)
  • 뛰어난 보안성 : 안정성이 높고 보안상 안전합니다 
    • 변환기 (Compiler)가 먼저 오류를 체크
    • 지원하는 보안 기술이 많다.
    • 그로인해 조금 무겁다.
  • 멀티 스레드 지원 : 대규모 앱 개발 가능
  • 풍부한 표준 라이브러리 ( API) : 다양한 개발 도구와 라이브러리 사용 가능

 

1. JVM  (Java Virtual Machine)

  • 정의 : java virtual machine의 약자로 자바 프로그램이 동작할 수 있는 가상의 기기를 만들어주는 역할
  • 역할: 여러 운영체제 및 기기에서 자바 프로그램을 실행할 수 있는 환경을 제공합니다.
    • 자바 애플리케이션은 소스 코드가 컴파일된 바이트 코드(클래스 파일) 형태로 실행됩니다.
    • JVM은 이 바이트 코드를 읽고 운영체제가 이해할 수 있는 기계어로 변환하여 실행합니다.

2. 바이트 코드 (Bytecode)

 

  • 정의: 자바 소스 파일(.java)을 Java 컴파일러에 의해 변환한 코드로, .class 파일로 저장됩니다.
  • 특징:
    • 운영체제나 하드웨어에 종속되지 않는 중간 코드.
    • JVM이 이해할 수 있는 코드 형식.
    • 플랫폼 독립성을 제공하는 핵심 요소 중 하나.

3. Java 컴파일러(Java Compiler)

  • 역할: 자바 소스 파일(.java)을 바이트 코드(.class)로 변환.
    • 컴파일 후 생성된 .class 파일은 JVM에 의해 실행됩니다.
  • 특징:
    • 프로그램 실행 전에 컴파일 과정을 거쳐 오류를 미리 확인할 수 있음.

4. 인터프리터(Interpreter)

  • 역할 : 운영체제가 읽은 바이트 코드 (class 파일)를 기계가 실행할 수있는 기계어로 변경

5. JIT 컴파일러(Just-In-Time Compiler)

  • 역할 : 인터프리터의 효율을 높혀준다

6. 메모리 영역

  • 메모리 영역 : Java 데이터를 저장하는 영역, JVM이 할당받은 메모리 영역
    • Stack 영역 : 기본형 변수의 원본 값 , 참조형 변수의 주소 값
      • stack은 정적으로 할당된 메모리 영역
    • Heap 영역 : 참조형 변수의 원본 값
      • heap은 동적으로 할당된 메모리 영역

7. 클래스 로더(Class Loader)

  • 역할 : 바이트 코드(class 파일)를 메모리 영역에 로드하는 운반기

8. 가비지 컬렉터(Garbage Collector)

  • 역할 : Java에서 메모리 영역에서 안쓰는 데이터를 주기적으로 지우는 역할
  • 메모리를 효율적으로 관리하며 수동으로 관리하지 않아도 된다.

 

동작 과정

  • Java 소스 파일을 자바 컴파일러가 바이트 코드 (.class)로 변경
  • class Loader가 JVM 영역으로 가져온 뒤
  • Java Interpreter과 JIT Compiler가 바이트 코드를 기계가 이해할 수 있게 해석을 한다
  • Runtime 시스템인 실행되는 시스템으로 이관한다.

JRE ( JAVA  Runtime Environment) 

  • 정의 : 자바 프로그램을 실행하기 위한 환경
  • 역할 : JRE 는 라이브러리와 JVM을 포함

특징

  • JRE는 .class 파일만 실행 가능

JDK (JAVA Development kit)

  • JRE 및 JVM을 모두 포함
  • JDK가 javac 명령을 통해 .java파일을 .class 파일로 변환
  • 디버깅 기능 포함

 

 

 

 

 

wrapper class

  • Wrapper Class 래퍼클래스 : 기본형 변수를 클래스로 한번 랩핑한 변수
  • 클래스로 변수를 관리할 시 객체지향의 많은 기능 등을 사용 가능하다!
기본 타입
래퍼 클래스
byte
Byte
short
Short
int
Integer
long
Long
float
Float
double
Double
char
Character
boolean
Boolean

 

 

아스키 코드

  • A = 65
  • a = 97

 

형변환

  • 작은 타입에서 큰타입으로 형 변환 시
    • 자동으로 형변환 되며 값의 손실 x
  • 큰 타입에서 작은타입으로 형 변환 시
    • 값의 손실이 생길 수 있음
    • 개발자가 선택

'Today I Learned' 카테고리의 다른 글

객체지향 프로그래밍 이란?  (1) 2025.01.02
컬랙션이란?  (0) 2025.01.02
온보딩 프로젝트를 마치며  (0) 2024.12.30
241227 TIL (DFS를 이용한 중복 순열, 순열, 조합구하기)  (1) 2024.12.27
241226 TIL  (0) 2024.12.26