[자바 문법 #1] JVM, 변수

김지현·2023년 10월 16일
1

JAVA

목록 보기
1/14
post-thumbnail

Java

Java 언어

  • 핵심 기능 : C언어 기능 + 공통 실행환경, 클래스, 객체
  1. 자바는 공통 실행환경이 있어 여러 기기에서 실행 가능
  2. 코드를 이해하기 쉽고 유지 보수가 쉬움
  3. 안정성이 높아 프로그램이 오류를 방지하고 보안상 안전
  4. 대규모 앱 개발 가능
  5. 다양한 개발 도구와 라이브러리 사용 가능

JVM

  • Java Virtual Machine (자바 가상 머신)
  • 여러 기기위에 자바 프로그램을 실행시킬 수 있는 가상의 기기를 만들어줌

JVM 구성

  • 바이트 코드 : 운영체제가 읽을 수 있는 코드로 컴파일러가 변환한 코드
  • 인터프리터 : Java.class 코드 해석기, 바이트 코드를 기계어로 번역
  • JIT 컴파일러 : 인터프리터의 효율을 높여주는 서포터 해석기
  • 메모리 영역 : 데이터를 저장하는 영역, 운영체제로부터 JVM이 할당받은 영역
  • 클래스 로더 : Java.class 바이트코드를 메모리 영역에 담는 운반기, JVM으로 class를 불러와서 메모리에 저장
  • 가비지 컬렉터 : 쓰레기 청소기, 메모리 영역에서 안쓰는 데이터를 주기적으로 청소

개발환경 구성

JRE

  • Java Runtime Environment (자바 실행 환경)
  • JVM 설치 방법 : JRE 설치
  • .class 파일만 실행 가능 → JDK가 변환

JDK

  • Java Development Kit (자바 개발 키드)
  • JRE(JVM)의 기능 포함
  • .java 파일들을 .class 파일들로 변환해주는 Java Compiler(javac) 기능이 있음
  • Jdb 기능을 통해 디버깅 가능

변수

변수와 상수

저장공간의 선언

  • 값의 타입 : 저장공간의 종류
  • 값의 이름 : 저장공간의 이름

값의 저장

  • 초기화 : 선언과 동시에 저장
  • 덮어쓰기 : 선언 이후 값 저장
int number = 10;
String name;
name = "zo_meong:;

변수 : 변하는 저장공간
상수 : 변하지 않는 저장공간, final로 선언

변수 타입

기본형 변수

  1. 논리형 : boolean

  2. 문자형 : char

  3. 정수형

  • byte : -128 ~ 127
  • short(2byte) : -32,768 ~ 32,767
  • int(4byte) : -21억 ~ 21억
  • long(8byte) : 약 9백경, 접미사 L
  1. 실수형
  • float(4byte) : 3.4 -10^38 ~ 3.4 10^38, 접미사 f, 부동 소수점 방식(기수와 지수를 구분해서 저장하고 이값들을 곱한 값을 저장 → long보다 넓은 범위 표현)
  • double(8byte) : 1.7 -10^308 ~ 1.7 10^308

참조형 변수

  1. 문자열 : String ← 문장의 끝에 널문자(\0)가 함께 저장됨 (길이가 가변적이기 때문)
  2. 자료구조 : Object, Array, List 등

기본형과 참조형

기본형 변수 : 원본값이 Stack 영역에 있음
참조형 변수 : 주소값을 저장하는 주소형 변수, 원본값은 Heap 영역에 있고 Stack 영역에는 주소값이 있음

Stack 영역 : 정적으로 할당된 메모리 영역, 크기가 정해진 변수와 주소 값
Heap 영역 : 동적으로 할당된 메모리 영역, 크기가 가변적인 참조형 변수의 원본 저장

래퍼 클래스 변수

  • Wrapper Class : 기본형 변수를 클래스로 한 번 감싸는 변수
  • Boxing : 기본 타입에서 래퍼 클래스 변수로 감싸는 것
  • Unboxing : 래퍼 클래스 변수를 기본 타입 변수로 가져오는 것
  • 기본형 변수 타입명에서 첫글자를 대문자로 변경
  • 클래스로 변수 관리시 객체 지향의 많은 기능 활용 가능
  • EX) int(기본 타입) ↔ Integer(래퍼 클래스)
// Boxing
int number = 21;
Integer num = new Integet(number);

// Unboxing
int n = num.intValue();

Bit와 Byte
Bit(비트) : 0,1 형태의 2진수 데이터, 컴퓨터가 저장할 수 있는 최소 단위
Byte(바이트) : 8개의 bit로 구성 / 숫자는 10진수, 문자는 16진수로 저장

형변환

변수 타입 변경
주로 기본형 변수인 정수 ↔ 실수 ↔ 문자 사이에서 일어남
크기 순서 : byte(1) → short(2) → int(4) → long(8) → float(4) → double(8)

  • 자동 형변환 : 작은 타입 > 큰 타입 변환시 값의 손실 없이 자동 변환
  • 강제 형변환(캐스팅) : 큰 타입 > 작은 타입 변환시 값의 손실이 생김
profile
Server Developer

0개의 댓글