[자바 java / 상수와 리터럴 / 형변환(casting)]

seulki·2022년 8월 8일
0

[java]

목록 보기
3/11
post-thumbnail

자바(java)



😘 상수(constant)와 리터럴(literal)

  • 상수는 변수와 마찬가지로 값을 저장할 수 있는 공간이지만
    한 번 값을 저장하면 다른 값으로 변경할 수 없다.
  • 상수를 선언하는 방법은 변수와 동일하지만 변수 앞에 final을 붙여주면 된다.
  • 상수는 반드시 선언과 동시에 초기화를 해줘야 하며, 상수의 값을 변경하는 것이 허용되지 않는다. 읽기 전용
1. 리터럴(literal)
 - 리터럴은 단지 우리가 기존에 알고있는 '상수'의 다른 이름일 뿐이다.
   int number = 10;  // 값 하나하나를 리터럴이라고 한다.
   
   * 변수 : 하나의 값을 저장하기 위한 공간
   * 상수 : 값을 한 번만 저장할 수 있는 공간
   * 리터럴 : 그 자체로 값을 의미하는 것
2. 상수가 필요한 이유
int triangleArea = (20 * 10) / 2;  
-> 삼각형 밑변을 구할 때, 어떤게 폭인지, 높이인지 알 수 없다.
final int WIDTH = 20; //폭
final int HEIGHT = 10; //높이
int triangleArea = (WIDTH * HEIGHT) / 2;
-> 상수는 리터럴에 의미있는 이름을 붙여서 코드의 이해와 수정을 쉽게 만든다.

😀 형변환 ( type casting)

  • 형변환이란 변수의 타입을 다른 타입으로 변환하는 것
  • 묵시적형변환(자동형변환)명시적형변환(강제형변환) 2가지가 있다.
  • 형변환하고자 하는 변수나 리터럴 앞에 변환하고자 하는 타입을
    ' ( ) '와 함께 붙여주면 된다.
  • 여기서 사용되는 괄호()는 '캐스트 연산자' 또는 '형변환 연산자'라고 한다.
  1. 묵시적형변환(자동형변환)
    • 서로 다른 자료형을 연산 혹은 대입하는 경우, java컴파일러가 자료형을 통일한다.
      int a = 100;  //정수형
      float b = a;  // 정수형을 실수형에 대입
      -> 묵시적형변환은 어떤 변수가 더 큰 범위의 변수로 대입 가능함을 의미
      -> 묵시적형변환은 데이터의 손실이 발생하지 않는 범위 내에서만 이루어진다.
    short s = 100;
	int i = s;
	long l = i;
	float f = l;
	double d = f;
   -> 작은 타입에서 큰 타입으로 변환 가능하다.

  1. 명시적형변환(강제형변환)

    데이터의 손실을 감수하더라도, 강제로 형변환 시키는 형태

double d = 85.4;
int score = d;  
-> d는 8byte인 double인데, d를 담으려는 int4byte이다.
int score = (int)d;
-> 데이터 손실을 감수하고 강제 형변환 진행 / double -> int
System.out.println(score);
-> 85 출력 / 소숫점 뒤 날라감

profile
웹 개발자 공부 중

0개의 댓글