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주차 숙제
'개발자 공부 > Java' 카테고리의 다른 글
5/24일, [Java 문법 종합반] 2주차 : 배열, 켈렛션 (0) | 2023.05.24 |
---|---|
5/23일 [Java 문법 종합반] 2주차 : 연산자, 조건문, 반복문 (0) | 2023.05.23 |
5/11일 사전캠프 4일차 Part 4. 배열 (0) | 2023.05.11 |
5/10일 사전캠프 Part 3 ( 조건문과 반복문) (0) | 2023.05.10 |
5/9일 사전캠프 2일차 Part 2 (연산자) (0) | 2023.05.09 |