본문 바로가기

Study/개발일지

[백엔드온라인TIL] java 학습 1일차

Java 는 공통 실행환경🗺️이 있어서 여러 기기에서 실행 가능합니다.

Java 는  코드를 이해하기 쉽고 유지 보수가 쉽습니다.

 

JVM : Java Virtual Machine 의 약자로 **“자바 가상 머신”**이라는 뜻을 가지고 있습니다.

가상 머신이란 가상의 기기를 만들어주는 것을 의미합니다.

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

 

 

  • java 의 놀이터인 JVM 을 설치하는 방법은 JRE를 설치하는 것 입니다.
    • JRE 는 Java Runtime Environment 즉, 자바 실행 환경 이라는 뜻을 가지고 있습니다.
    • 하지만, JRE(JVM) 만 있다면 Java 프로그램을 실행만 시킬 수 있습니다.
    • JRE 는 .class 파일만 실행 가능합니다.

 

  • Java 의 놀이터기능과 함께 Java 프로그램을 개발할 수 있는 JDK 라는것이 있습니다.
    • JDK 는 Java Development Kit 즉, 자바 개발 키트 라는 뜻을 가지고 있습니다.
    • 우리는 Java 프로그램을 개발할 것 이기 때문에 JDK 를 설치하겠습니다.
    • JDK 는 아래 그림처럼 JRE(JVM)의 기능을 포함하고 있습니다.
    • JDK는 .java 파일들을 .class 파일들로 변환해주는 Java Compiler(javac) 기능이 있습니다.
    • JDK는 코드를 디버깅하는 jdb 등의 기능이 있습니다.
  • 변수 : 변하는 저장공간
    • Java 프로그램에서 저장하는 대부분의 값들은 변하는 것. 즉, 변수 입니다.
    • **‘수’**로 끝나지만 숫자만 말하는것은 아니고 하나의 값을 저장할 수 있는 저장공간을 의미 합니다.
    • “저장공간” 이라고 표현한 이유는 **“변하는 것”**이라는 의미에 맞게 저장하고있는 값이 달라질 수 있기 때문입니다.
    • 우리는 이 저장공간에 이름(변수명)을 붙여서 필요한 값을 저장해둡니다.
    •  
  •  접시라는 공간에서 내가 먹을 음식을 자유롭게 담았다가 먹어 치우고 다시 다른 음식을 담는걸 반복하는 것과 비슷하다고 보시면 됩니다.

 

 

 

저장공간의 종류 (변수 타입)

 

 

  • 논리형 변수 : boolean
    • True/False 값만 저장합니다.
  • 정수형 변수 : byte, short, int, long
    • 0,1,2,99 와 같은 정수형 숫자값을 저장합니다.
    • 정수형 변수 표현 범위
  • 실수형 변수 : float, double
    • 0.123, 0.99999 와 같은 소수점 실수값을 저장합니다.
    • float (4byte) : 3.4 * -10^38 ~ 3.4 * 10^38(long 보다 큼)범위의 숫자 저장이 가능합니다.
    • double (8byte) : 1.7 * -10^308 ~ 1.7 * 10^308(long 보다 큼)범위의 숫자 저장이 가능합니다.
  • 문자열 변수 : String
  • 참조형
    • 참조형 변수 = 주소형 변수?
      • 다른 기본형 변수가 실제 값을 저장하는 저장공간 이라면 참조형 변수는 실제 값이 아닌 원본값의 주소값을 저장합니다.
      • 다시말해 참조형 변수는 주소값을 저장하는 주소형 변수라고 불러도 됩니다.
    • 저장 관점에서 차이점
      • 기본형 변수 : 원본값이 Stack 영역에 있습니다.
      • 참조형 변수 : 원본값이 Heap 영역에 있습니다.
        • Stack 영역에는 따로 저장 해둔 원본값의 Heap 영역주소를 저장합니다.

 

  • Java 프로그래밍을 하다보면 문자열로 입력받은 변수를 숫자로 변환해서 계산을 하고싶은 경우, 문자열에 숫자값을 추가하고 싶은 경우 등… 어떤 변수형을 다른 형으로 변환이 필요한 경우가 많습니다.
  • 형변환은 주로 기본형 변수인 정수 ↔ 실수 ↔ 문자 들 사이에서 일어나며 방법은 아래와 같습니다.

 

double doubleNumber = 10.101010;

float floatNumber = 10.1010

int intNumber; intNumber = (int)doubleNumber; //

double -> int 형변환 intNumber = (int)floatNumber; // float -> int 형변환

 

 

  • Java 프로그래밍에서 형변환을 직접적으로 캐스팅하지 않아도 자동으로 형변환 되는 케이스가 있습니다.
  • 프로그램 실행 도중에 값을 저장하거나 계산할때 자동으로 타입변환이 일어납니다.

 

 

 

728x90