자바

[JAVA] 변수와 자료형

코딩하는둥이 2022. 11. 12. 17:22

변수란?

 

 - 프로그래밍에서 변하는 값

 - 값을 저장하는 공간

 - 변수를 사용하기 위해 자료형(어떤 형태의 자료)를 저장할 것인지 정해야 함.

    ex)

      int level;       int는 자료형, level는 변수이름 

      level = 10;    값 10을 level 변수에 대입

      int level = 10;  level 변수 선언과 동시에 값을 대입 (초기화)

 - 변수 이름을 정할 땐 카멜 표기법(중간에 튀어나온 대문자)이 가장 보기 좋음.

 

 

변수가 저장되는 공간의 특성 

 

 1. 변수의 메모리

     - 변수는 컴퓨터내부의 메모리 공간에 저장

     - 메모리는 프로그램이 실행되는 작업 공간

      ex) int level =10; 4바이트(int형) 크기의 메모리 공간 이름(변수 이름)은 level이고 이 공간에 값 10을 넣음

 

 2. 자료형 종류

  정수형 문자형 실수형 논리형
1바이트 byte     boolean
2바이트 short shar    
4바이트 int   float  
8바이트 long   double  

   - 정수형

      양수, 음수, 0을 나타내는 데 사용하는 자료형

      1) byte

         - 1바이트는 8비트

         - 바이트 단위의 정보를 저장하거나 통신할 떄 주로 사용

         - 표현 할 수 있는 수의 범위는 -128~127

      2) short

         - 2바이트로 정구를 표현함

         - 표현 할 수 있는 수의 범위는 -2,147,483,638~2,147,483,647

      *   byte와 short를 연산할 때 int 형으로 변환된 후 연산   

     3) long

         - 자바에소 정수를 표현하는 가장 큰 단위

         - int 형을 범위를 넘을 때 사용

         - int를 표현할 수 있는 범위를 넘어갔을 때 뒤에 L를 추가해야 함

         ex) long num = 12345678900L;

 

  -  문자 자료형

      1) 아스키코드(영문자, 숫자, 특수문자 둥 나타내는 문자 세트)는 1바이트만 사용      

      2) 유니코드(각 언어의 표준 인코딩을 정의해 놓은 것) 2바이트 이상 사용

           유니코드 표현하는 인코딩 방법 

               - UTF-8 

                  각 문자마다 1바이트에서 4바이트까지 사용하여 문자를 표현

                  메모리 낭비가 적고 전송속도가 빨라 인터넷에서 많이 사용

               - UTF-16 

                   자바의 기본 인코딩 방식은 모든 문자를 2바이트로 표현

           문자형은 작음따옴표

           문자열은 큰 따옴표

           문자열 끝에는 널문자( \0) 붙어있음

            ex) char myChar = 'A';

 

 -  실수 자료형

      1) 부동 소수점 방식 

            - 지수와 기수를 구분해서 표현하는 방식

           - 오차를 감수하고 더 넓은 범위의 실수 값을 표현하기 위해 사용함

          2) float

               - 부호 1비트, 지수부 8비트, 가수부 23비트로 총 32비트(4바이트) 사용

               - 뒤에 f 붙어야 함

                ex) float fnum =3.15F;  

          3) double

              - 부호 1비트, 지수부 11비트, 가수부 52비트 총 64비트(8바이트) 사용

              - 기본으로 사용

              - 정밀하게 실수로 표현  

 

   - 논리 자료형

      어떤 변수의 참, 거짓의 값을 나타내는 데 사용

       1) boolean형 

          - 참과 거짓으로 나타냄

          - 1바이트로 값을 저장

 

   - 자료형 없이 변수 선언하기 (자바 10부터 생긴 문법)

      지역 변수 자료형 추론

         - 변수에 대입되는 자료를 보고 컴파일러가 추측하여 알 수 있음

         - 한번 선언한 자료형 변수를 다른 자료형으로 사용할 수 없음

        - var로 자료형 없이 지역변수(프로그램의 {}내에서 사용할 수 있는 변수)만 가능

          ex) 

var num = 10;
var dNum = 10.0;
var str = "hello";
int num =10;
double dNum = 10.0;
String str = "hello";

  - 상수 자료형

     - 변하지 않는 값 

      ex)  final double PI =3.14;

             final로 선언된 상수는 다른 방식을 대입할 수 없음

 

   - 리터럴

     - 프로그램에서 사용하는 모든 숫자, 값, 논리값 

     - 리터럴에 해당되는 값은 특정 메모리 공간인 상수 풀에 있음

      - 필요한 경우 상수 풀에서 가져와도 됨

      ex)  10, 3.14 , 'A', true

   

 - 형변환

  - 자료형은 각각 사용하는 메모리 크기와 방식 다름

   - 서로 다른 자료형의 값이 대입되는 겨우 형 변환이 일어남

  1) 묵시적 형변환

      작은 수에서 큰 수로 덜 정밀한 수에서 더 정밀한 수로 대입되는 경우

  2) 묵시적 형 변환의 반대의 경우

      변환되는 자료형을 명시해야 함

       자료의 손실이 발생할 수 있음