본문 바로가기

웹 프로그래밍/JAVA

[JAVA] 변수란?

728x90
반응형

해당 글은 남궁성님의 자바의 정석을 학습 후에 작성되었습니다.

변수(variable)란?

  • 하나의 값을 저장할 수 있는 메모리 공간이다.
    (특정 메모리 공간에 이름을 지정하고, 주소 대신 이름을 통해 메모리에 값을 저장하고 읽을 수 있게 한 것이다)

 

변수의 선언

  1. 변수 선언 이유
    • 값을 저장할 공간을 마련하기 위해서
  2. 변수 선언 방법
    // 변수타입 변수이름; 
    int age; // 정수(int) 타입의 변수 age를 선언​
  3. 변수에 값 저장
    • 변수에 값 저장하기
      int age; age = 25; // 변수 age에 25 저장 
      ------ 
      int age = 25;​
    • 변수의 초기화
      • 변수에 처음으로 값을 저장하는 것
      • 변수의 종류는 클래스 변수, 인스턴스 변수, 지역 변수가 있다.
        지역 변수는 읽기 전에 꼭!!!초기화를 해야 한다.
        int x = 0;
  4. 변수의 값 읽기
    • 변수의 값이 필요한 곳에 변수의 이름을 적는다
      int year = 0, age = 14; 
      year = age + 2000; 
      age = age + 1;​

 

변수의 타입

  • 변수의 타입은 저장할 값의 타입에 의해 결정된다.
  • 저장할 값의 타입과 일치하는 타입으로 변수를 선언해야 한다.
    char ch = '가'; 
    double py = 3.14;​

 

값의 타입 (기본형)

문자 - char

숫자

  • 정수 - byte, short, int, long
  • 실수 - float, double

논리 - boolean (true/false)

 

변수, 상수, 리터럴

변수(variable) : 하나의 값을 저장하기 위한 공간

int score = 100; 
score = 200;     

 

 

상수(constant) : 한 번만 값을 저장 가능한 변수. 한번 저장하고 나면 값을 바꿀 수 없다.

  • 상수 선언 방법은 변수 선언하는 방법과 같고, 앞에 final 이라는 키워드가 붙는다
final int MAX = 100;
MAX = 200; // Error

 

 

리터럴(literal) - 그 자체로 값을 의미하는 것

  • 기존의 상수
    (자바에서 상수를 한 번만 저장 가능한 변수라고 정의하였기 때문에 리터럴이라는 개념이 나온것이다)
char ch = 'A';
String str = "abc";

 

변수와 리터럴의 타입 불일치

  1. 범위가 '변수' > '리터럴' 인 경우 허용된다.
    int i = 'A'; // int > char
    long l = 123; // long > int
    double d = 3.14f // double > float​
     
  2. 범위가 '변수' < '리터럴' 인 경우, 에러가 발생한다.
    long l = 3.14f // long < float
    Float f = 3.14; // float < double
    int i = 30_0000_0000; // int의 범위를 벗어남
     
  3. byte, short 변수에 int 리터럴 저장 가능하다 (단, 변수 타입의 범위 이내여야 한다)
    byte b = 100; // byte 범위(-128~127)에 속함
    byte b = 128; // byte 범위 벗어남. 에러

 

변수의 타입

기본형(Primitive type)

  • 오직 8개 (boolean, char, byte, short, int, long, float, double)
  • 실제 값을 저장

참조형(Reference type)

  • 기본형을 제외한 나머지(String, System 등)
  • 메모리 주소를 저장(4 byte 또는 8 byte)

 

기본형의 종류와 크기

  • 논리형
    • true와 false 중 하나를 값으로 갖는다.
    • 조건식과 논리적 계산에 사용된다.
  • 문자형
    • 문자를 저장하는데 사용되며, 변수 당 하나의 문자만을 저장할 수 있다.
  • 정수형
    • 정수 값을 저장하는데 사용된다.
    • 주로 사용하는 것은 int와 long이며, short는 c언어와의 호환을 위해 추가 되었지만 잘 사용하지 않는다.
  • 실수형
    • 실수 값을 저장하는데 사용된다.
    • float와 double이 있다.
종류/크기 1 2 3 4
논리형 boolean      
문자형   char    
정수형 byte shrot int long
실수형     float double

기본형 표현 범위

  • n비트로 표현할 수 있는 값의 개수 : 2^n개
  • n비트로 표현할 수 있는 부호 없는 정수의 범위 : 0~2^n-1
  • n비트로 표현할 수 있는 부호 있는 정수의 범위 : -2^(n-1) ~ 2^(n-1)-1

 

타입간의 변환

  1. 문자와 숫자간의 변환
    • 숫자 -> 문자 : 숫자 + '0'
    • 문자 -> 숫지 : 문자 - '0'
  2. 문자열로의 변환
    • 숫자 -> 문자열 : 숫자 + ""
    • 문자 -> 문자열 : 문자 + ""
  3. 문자열을 숫자로 변환
    • 문자열 -> 숫자 : Integer.parseInt("3") = 3
    • 문자열 -> 실수 : Double.parseDouble("3.14") = 3.14
  4. 문자열을 문자로 변환
    • 문자열 -> 문자 : "3".charAt(0) = '3'
728x90
반응형

'웹 프로그래밍 > JAVA' 카테고리의 다른 글

[JAVA] 연산자  (0) 2021.11.19
[JAVA] CountDownLatch란?  (0) 2021.10.28
[JAVA] JAVA 특징  (0) 2021.10.18
[JAVA] 정규표현식  (0) 2021.08.28
LocalDate, LocalTime, LocalDateTime  (0) 2021.05.20