본문 바로가기

JAVA

[JAVA의 정석] 변수

변수

변수(Variable)

변수란?

변수란, 단 하나의 값을 저장할 수 있는 메모리 공간이다.

변수를 사용하려면 먼저 변수를 선언해야 하는데, 선언의 방법은 다음과 같다.

int age ;

int 는 변수 타입이다. 변수타입은 int 말고도 double, float, char 등의 다양한 변수형 타입이 있다.

age 는 변수의 이름이다.

; 세미콜론은 해당 작업의 끝을 표현한다.

변수의 이름을 지을때 규칙을 정해야 하는데 규칙은 다음과 같다.

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

변수의 타입

변수에는 크게 기본형과 참조형으로 나눌 수 있다.

 

기본형(primitive type)

  • 논리형 boolean (1byte)

    true 와 false 중 하나를 값으로 갖으며, 조건식과 논리적 계산에 사용된다

  • 문자형 char (2 byte)

    문자를 저장하는데 사용되며, 변수에 하나의 문자만 저장할 수 있다.

  • 정수형byte (1byte), short(2 byte), int (4byte), long(8byte)

    정수를 저장하는데 사용되며, 주로 int 가 사용된다. byte는 이진 데이터를 다룰 때 사용되며, short는 C언어와의 호환을 위해서 추가되었다.

  • 실수형 float(4byte) , double(8byte)

    실수를 저장하는데 사용되며, 주로 double 이 사용된다.

상수와 리터럴

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

  • 상수(Constant) : 값을 한번만 저장할 수 있는 공간

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

printf()

지시자설명
%d10진(decimal)정수의 형식으로 출력
%o8진(octal)정수의 형식으로 출력
%b불리언(boolean) 형식으로 출력
%x , %X16진 정수의 형식으로 출력
%f부동 소수점(floating-point)의 형식으로 출력 [%전체자리.소수점아래자리 f ]
%e, %E지수 표현식의 형식으로 출력
%c문자(character)로 출력
%s문자열(string)로 출력

 

Scanner

Scanner를 사용하려면, 한 문장을 추가시켜야 한다.

 

그 이후 Scanner 클래스의 객체를 생성한다.

 

기본형(primitive type)

논리형 - boolean

논리형에는 'boolean' 한 가지 밖에 없다. boolean은 false 또는 true 만 답해주면 되기 때문에 1 bit만으로 충분하다. 주의 할 접은 자바에서는 대소문자가 구별되기 때문에 False 와 false가 다른 것이란걸 알고 있으면 된다.

문자형 - char

문자형의 타입은 char 이며 문자를 저장한다.

tab 이나 backspace 등의 특수문자를 사용 할 수 있다.

특수문자문자 리터럴
tab\t
backspace\b
form feed\f
new line\n
carriage return\r
역슬래쉬(\)\\
작은따옴표\'
큰따옴표\"
유니코드문자\u

 

정수형 - byte, short, int, long

정수형에는 모두 4개의 자료형이 있으며, 각 자료형이 저장할 수 있는 값의 범위가 서로 다르다.

byte(1 byte) < short(2 byte) < int (4 byte) < long(8 byte)

실수형 - float, double

실수형은 실수를 저장하기 위한 타입으로 float와 double, 두 가지가 있으며 각 타입의 변수에 저장할 수 잇는 값의 범위는

float

타입저장 가능한 값의 범위(양수)정밀도크기
float1.4 X 10^-45 ~ 3.4 X 10^387자리4byte
double4.9 X 10^-324 ~ 1.8 x 10^30815자리8byte

Q실수형도 정수형처럼 저장할 수 있는 범위를 넘게 되면 오버플로우가 발생하나요?

 

A. 앞서 정수형에서 수의 값이 표현범위를 벗어나는 것을 ‘오버플로우 (ove low) ’라고 배웠습니다. 실수형에서도 변수의 값이 표현범위의 최대값을 벗어나먼 오버플로우’가 발생하 는데요.

정수형과 달리 실수형에서는 오버플로우가 발생하면 변수의 값은 무한대 '(infinity) ’ 가됩니다. 그리고 정수형에는 없는 ‘언 더플로우 (und erflow) ’가 있는데, ‘언더플로우 는 실수형으로 표 현할 수 없는 아주 작은 값, 즉 앙의 최소값보다 작은 값이 되는 경우를 말합니다. 이 때 변 의 값은 001 됩니다.

형 변환

형 변환(casting) 이란?

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

형 변환 방법

(타입) 피 연산자

변환수식결과
int -> char(char)65'A'
char -> int(int)'A'65
float -> int(int) 1.6f1
int -> float(float)1010.0f

 

자동 형변환

서로 다른 타입간의 대입이나 연산을 할 때 형변환으로 타입을 일치시키는 것이 원칙이 . 하지만, 경우에 따라 편의상의 이유로 형변환을 생략할 수 있다. 그렇다고 해서 형변 환이 이루어지지 않는 것은 아니고 컴파일러가 생략된 형변환을 자동적으로 추가한다.

 

자동 형변환의 규칙

기존의 값을 최대한 보존할 수 있는 타입으로 자동 형변환한다.

  1. boolean을 제외한 나머지 개의 기본형은 서로 헝변환이 가능하다.
  2. 기본형과 참조형은 서로 헝변환할 수 없다.
  3. 서로 다른 타입의 변수간의 연산은 형변환을 하는 것이 원칙이지만, 값의 범위가 작은 타입에서 큰 타입으로의 형변환은 생략할 수 있다.

'JAVA' 카테고리의 다른 글

[JAVA의 정석] 객체지향프로그래밍  (0) 2021.06.30
[JAVA의 정석] 조건문과 반복문  (0) 2021.06.16
[JAVA의 정석] 연산자  (0) 2021.06.16