자바란?

이동언·2024년 7월 16일

new world

목록 보기
4/62
post-thumbnail

7.4(목)

1. 자바란 어떤 언어인가?

👉 자바는 컴파일, 인터프리터방식을 같이 사용한다. 이러한 이유는 속도 때문인데, 최적화 및 속도 플랫폼 독립성을 가져갈 수 있다.

2. 클래스파일 = ByteCode

👉 ByteCode라는 것은 프로그래밍언어와 인터프리터 언어 그 사이의 언어이기 때문에, 다양한 플랫폼에서 사용이 가능하다. ByteCode는 jvm(Java Virtual Machine)이 이해할 수 있는 언어이고, 클래스 파일은 .class로 파일이 끝나는데 이는 jvm에서 실행할 수 있다.

3. JDK, JRE, JVM이 뭐야?

🌳 JDK(Java Development Kit) : 자바개발을 위한 키트이다.
  ex) 컴파일러, 개발도구, JRE

🌳 JRE(Java Runtime Enviroment) : 자바 개발환경.
  ex) jvm, 필수 라이브러리, class
  -> (JRE = API + JVM + 개발도구)

🌳 JVM(Java Virtual Machine) : ByteCode를 인터프리터로 변경해주는역할, 기계어로 변환
  -> 메모리누수 방지(GC가 포함되어있음)
  -> Virtual Machine(가상머신) : 소프트웨어가 하드웨어를 모방하는 환경


4. GC(가비지 컬렉션)

👉 JAVA는 대부분 메모리 관리를 알아서 하는 언어라고 알고 있지만, 그것이 아님.
GC라는 가비지컬렉션이 사용하지 않는 객체를 자동으로 파악하여 삭제하기 때문에 메모리 누수를 방지하는 것. 이 과정이 JVM에서 주기적으로 진행이 되므로 사용자가 직접 메모리 해제를 할 필요가 없다.

5. 마크앤스위프트

👉 가비지컬렉션의 동작원리로 메모리의 root부터 시작하여 전체 객체를 파악한후 마크앤스위프트를 통하여 사용되지 않는 객체에 마크를 해두고 이후 실제 메모리에서 스위프트(삭제)를 한다.


추가적인 개념

  1. statement / expression : 문장과 수식으로 분리된다.
    🌳 expression은 그냥 값으로 나오는것 ex) 'hello', 42+35, 51등

    🌳 expreesion은 처리과정을 나타냄 ex) if(a==1){return 4;}


  2. UTF-8이 뭘까?
    🌳 유니코드를 위한 가변 길이 인코딩 방식, 유니코드는 세계 문자를 일관되게 표현하기 위한 표준.

0개의 댓글