자바의 정석 Chapter02 변수

Eunkyung·2021년 10월 11일
0

Java

목록 보기
2/21

1. 변수

1.1 변수(variable)

단 하나의 값을 저장할 수 있는 메모리 공간

1.2 변수의 선언과 초기화

int age = 25; 정수(int)값을 저장할 수 있는 age 변수를 선언하고 25로 초기화

  • 변수 선언 시 메모리의 빈 공간에 변수타입에 알맞은 크기의 저장공간이 확보되고, 변수이름을 통해 사용가능
  • 변수의 초기화란, 변수를 사용하기 전에 처음으로 값을 저장하는 것
  • 지역변수는 사용되기 전에 반드시 초기화를 해야 하지만, 클래스변수와 인스턴스변수는 초기화 생략 가능

메모리는 여러 프로그램이 공유하는 자원이기 때문에 전에 다른 프로그램에 의해 저장된 쓰레기값이 남아있을 수 있기 때문에 초기화를 해줘야한다.

두 변수의 값 교환하기

public class Main {
    public static void main(String[] args) {
        int x = 10;
        int y = 20;
        int tmp = 0; // x값을 임시로 저장할 변수 선언

        System.out.println("x = " + x + " y = " + y);

        tmp = x;
        x = y;
        y = tmp;

        System.out.println("x = " + x +  " y = " + y);
    }
}

1.3 변수의 명명규칙

  1. 대소문자가 구분되며 길이에 제한이 없다.
  2. 예약어를 사용해서는 안 된다.
  3. 숫자로 시작해서는 안 된다.
  4. 특수문자는 '_'와 '$'만을 허용한다.

2. 변수의 타입

자료형(data type) : 값(data)의 종류(type)에 따라 값이 저장될 공간의 크기와 저장형식을 정의한 것

기본형(primitive type)

논리형(boolean), 문자형(char), 정수형(byte,short,int,long), 실수형(float,double) 총 8개로 실제 값 저장

참조형(reference type)

객체의 주소 저장, 8개의 기본형을 제외한 나머지 타입

2.1 상수와 리터럴(constatnt & literal)

상수

변수와 마찬가지로 값을 저장할 수 있는 공간이지만, 변수와 달리 한 번 값을 저장하면 다른 값으로 변경할 수 없음
final int MAX_SPEED = 10; 상수 MAX_SPEED를 선언하고 초기화
반드시 선언과 동시에 초기화해야 한다.

리터럴

그 자체로 값을 의미
long 타입의 리터럴에 접미사 L, float 타입의 리터널에 접미사 f 생략 불가

  • 문자 리터럴과 문자열 리터럴
    • 문자 리터럴 : 작은 따옴표로 문자 하나를 감싼 것
      반드시 ''안에 하나의 문자가 있어야 한다.
    • 문자열 리터럴 : 큰 따옴표로 두 문자 이상을 감싼 것
      ""안에 아무런 문자도 넣지 않은 것(빈 문자열)을 허용한다.
      어떤 타입의 변수와 문자열과 덧셈연산 수행 시 문자열을 반환한다.

3. 형변환

3.1 형변환(casting)

변수 또는 상수의 타입을 다른 타입으로 변환하는 것

  • 자동 형변환 : float f = 1234;
    int -> float : 좁은 범위에서 넓은 범위로 형변환
  • 명시적 형변환 : char ch = (char) 1000;
    int -> char : 넓은 범위에서 좁은 범위로 형변환, 값 손실 발생
  1. boolean을 제외한 나머지 7개의 기본형은 서로 형변환이 가능하다.
  2. 기본형과 참조형은 서로 형변환할 수 없다.
  3. 서로 다른 타입의 변수간의 연산은 형변환을 하는 것이 원칙이지만, 값의 범위가 작은 타입에서 큰 타입으로의 형변환은 생략할 수 있다.

출처

  • 자바의 정석 - 남궁성 지음
profile
꾸준히 하자

0개의 댓글