[Java] 변수와 자료형

hyem·2021년 7월 29일
0

Java

목록 보기
1/3
post-thumbnail

1. 변수와 자료형

1) 변수 선언

: 선언한 변수 이름으로 어떤 위치에 있는 메모리를 얼마만큼 사용하겠다는 뜻

  • 변수의 자료형 선택
  • 변수 이름 정하기
  • 값 대입
int level = 10;
// 메모리의 int형 크기(4바이트) 공간이 level이라는 이름으로 할당된다.

변수 이름 정할 때 제약사항

  • 영문자(대소문자)나 숫자 사용 가능, 특수문자는 $, _만 사용 가능
  • 변수 이름은 숫자로 시작할 수 없음
  • 자바에서 사용하는 예약어는 사용할 수 없음 (while, int, break ..등)
    🐫 카멜 표기법 따름
    : 소문자로 시작, 중간에 다른 뜻의 단어가 시작할 때 첫글자를 대문자로 사용 (예: numberOfStudent)

2) 변수의 자료형

(1) 기본 자료형

: 자바 라이브러리에서 기본으로 제공. 얼마만큼의 메모리를 어떻게 사용할 것인지 이미 정해져있음.

크기/형태정수형문자형실수형논리형
1바이트byte--boolean
2바이트shortchar--
4바이트int-float-
8바이트long-double-
  • 정수 자료형
    • 자바는 모든 정수값을 기본으로 int형으로 처리.
    • long형 변수 선언시 int형 범위 내의 숫자를 대입하면 자바가 자동으로 int형으로 처리함. 그러나 int형 범위를 넘어서는 숫자의 경우 long형으로 처리하라고 컴파일러에게 알려주기 위해 숫자 뒤에 L/l 붙임
      예) long num = 12345678900L;
  • 문자 자료형
    • 문자(char)를 사용할 때는 작은따옴표 사용 (문자열(String)을 사용할 때는 큰따옴표 사용)
    • 문자를 변수에 대입하면 그 문자에 해당하는 정수값(아스키코드값)이 저장됨 / char형 변수에 정수 대입도 가능(음수는 불가)
  • 실수 자료형
    • 자바에서 실수는 기본적으로 double형 사용
    • float형으로 사용하려면 숫자 뒤에 F/f붙임
      예) float num = 3.14F;

(2) 참조 자료형

= 클래스형 (다음 포스팅에서 자세히)

2. 형 변환 (Casting)

1) 묵시적 형 변환 (Upcasting)

  • 변수에 값 대입시나 연산시에 자동으로 이루어짐
    • 크기가 작은 자료형 -> 큰 자료형
    • 덜 정밀한 자료형에서 더 정밀한 자료형
byte b = 10;
int i = b;  // byte형 변수 b가 int형으로 자동 형변환

int i2 = 20;
float f = i2;  // 같은 4바이트지만 int형 변수가 덜 정밀하므로 float형으로 자동 형변환

int i2 = 20;
float f = i2;
double d = i2 + f;  // 1) i2 + f 에서 int형이 float형으로 변환
		    // 2) 더한 결과값이 d에 대입되면서 double형으로 변환

2) 명시적 형 변환 (Downcasting)

  • 묵시적 형 변환과 반대 방향으로 형 변환하는 경우, 자료형을 명시적으로 써주어야 함.
  • 값이 바꿀 자료형의 범위를 넘는 경우 자료 손실이 발생할 수 있음
int i = 10;
byte b = (byte) i;   // int형을 강제로 byte형으로 형변환

3. 상수와 리터럴

상수(constant)

  • 항상 변하지 않는 값
  • final 예약어를 사용해 선언
    • 상수로 선언한 변수 이름은 다 대문자로 적는게 일반적임
final int MAX_NUM = 100;

리터럴(literal)

  • 프로그램에서 사용하는 모든 숫자, 문자, 논리값(true, false)
  • 프로그램이 시작할 때 같이 로딩되어 특정 메모리 공간인 상수 풀(constant pool)에 놓임
  • 변수에 대입될 때 다시 변수 메모리에 복사됨
char ch = 'A';
int num = 10;
final double PI = 3.14;
// 여기서 'A', 10, 3.14 가 모두 리터럴이다

0개의 댓글