5/22일, [Java 문법 종합반] 1주차 : JVM, 변수

2023. 5. 22. 20:54개발자 공부/Java

● Java 언어의 기능

   - 핵심기능 : C언어 기능 + 공통 실행환경🗺️(놀이터), 클래스🗑️(바구니 틀), 객체🪣(바구니)

   - Java 는 A언어의 기능 + B언어의 기능 + C언어의 기능에 JAVA언어의 기능을 추가한 언어 입니다.

      * 기능은 포함하지만, 각 언어별로 기능을 구현한 방법은 각기 다릅니다.

● JVM 이란?

  : Java Virtual Machine 의 약자로 “자바 가상 머신”이라는 뜻으로 가상의 기기를 만들어주는 것을 의미합니다.

    다시 말해서, 여러가지의 기기위에 Java 프로그램을 실행시킬 수 있는 가상의 기기를 만들어주는것을 의미합니다.

- 바이트 코드 : Java 프로그램 변환코드

                            내가 작성한 코드가 운영체제가 읽을 수 있는 코드(바이트 코드)로 Java 컴파일러가 변환한 코드

     * Java 컴파일러란? : 내가 작성한 Java 코드들(.java 파일)을 운영체제가 읽을 수 있는 바이트 코드💬(.class 파일)로
                                      변환하는 변환기

- 인터프리터 (Java .class 코드 해석기)

  : 운영체제가 읽은 바이트 코드를 기기가 실행할 수 있는 기계어로 번역

 

- JIT 컴파일러 (빠른 Java .class 코드 해석기)

  : 인터프리터의 효율을 높여주는 서포터 해석기

 

- 메모리 영역 (Java 데이터를 저장하는 영역)

  : 운영체제로 부터 JVM이 할당받은 메모리 영역

- 클래스 로더 (Java .class 바이트 코드를 메모리 영역에 담는 운반기)

  : JVM으로 class(바이트 코드)를 불러와서 메모리에 저장함

- 가비지 컬렉터 (Java 쓰레기 청소기)

  : 메모리 영역에서 안쓰는 데이터를 주기적으로 흡수해가는 청소기

 

● 변수의 종류와 범위

 - 변수 (variable) : 변수(variable)란 데이터(data)를 저장하기 위해 프로그램에 의해 이름을 할당받은 메모리 공간을 의미                                 합니다.

- 변수의 종류 : 자바에서 변수는 타입에 따라 크게 다음과 같이 구분할 수 있습니다.

 

1. 기본형(primitive type) 변수

2. 참조형(reference type) 변수

 

기본형(primitive type) 변수는 실제 연산에 사용되는 변수입니다.

자바에서는 다음과 같이 8가지 종류의 기본형 변수를 제공하고 있습니다. 

 

- 정수형 : byte, short, int, long

- 실수형 : float, double

- 문자형 : char

- 논리형 : boolean

 

참조형 변수는 8개의 기본형 변수를 사용하여 사용자가 직접 만들어 사용하는 변수를 의미합니다.

 

- 변수 타입 바꾸기 (형변환)

  자동 형변환 : 프로그램 실행 도중에 값을 저장하거나 계산할때 자동으로 타입변환이 일어납니다.

  1) 자동 타입변환은 작은 크기의 타입에서 큰 크기의 타입으로 저장될때 큰 크기로 형변환이 발생합니다.

     * 변수 타입별 크기 순서 : byte(1) → short(2) → int(4) → long(8) → float(4) → double(8)

  2) 작은 크기의 타입이 큰 크기의 타입과 계산될때 자동으로 큰 크기의 타입으로 형변환이 발생합니다.

 

자동 형변환 vs 강제 형변

  - 작은 타입 > 큰 타입 형변환시 (자동 형변환)

    : 더 큰 표현범위를 가진 타입으로 변환되는것이라 값의 손실이 없습니다.

    : 값의 손실없이 변환이 가능하기 때문에 컴파일러가 자동으로 형변환을 해줍니다.

  - 큰 타입 > 작은 타입 형변환시 (강제 형변환 = 캐스팅)

     : 더 작은 표현범위를 가진 타입으로 변환된는것이라 값의 손실이 생깁니다.

     : 값의 손실이 생기기 때문에 자동으로 형변환을 해주지 않고 개발자가 선택하여 형변환을 합니다. 

● 1주차 숙제