본문 바로가기

Java

변수

변수란 값의 저장공간이고, 자료형은 값이 무슨 타입인지를 나타낸다.

 

자바의 기본형에는 c와 마찬가지로 char, int, float, double, long 등등이 있다.

다만, 조금 다른점은 char타입이 c에서는 1byte이지만 자바에서는 2byte라는 차이점이 있다. 

그 이유는 c의 char가 이스키코드를 기반으로 만들어졌기 때문이다. c보다 나중에 나온 언어인 자바는 유니코드 체계를 사용하기

때문에 char가 2byte이다. 

 

자바의 기본형

자료형  값의 범위 크기(byte)
boolean true, false 1
char 0 ~ 25535 (2^16 - 1) 2
byte -128 ~ 127 1
short  -32_768 ~ 32_767 2
int -2^31 ~ 2^31-1                           4
long -2^63 ~ 2^63 8
float 1.4E-45 ~ 3.4E38 4
double 4.9E-324 ~ 1.8E308 8

 

float와 double은 크기 말고도 주의해야 할 점이 있다. float의 정밀도는 7자리까지이고 double의 정밀도는 15자리 정도까지이다.

이러한 문제가 발생하는 이유는 float와 double이 부동 소수점방식을 사용하기 때문이다.

 

리터럴 : 자바에서는 '값'을 리터럴이라고 한다

 

리터럴과 상수의 차이

자바에서 상수는 final 키워드로 선언되는 변수를 의미한다. c나 c++에서는 const로 변수의 값을 변경하지 않겠다는 의미이다.

그에 반면 리터럴은 값 그 자체를 의미한다. 

일반변수나 final변수에 들어가는 '값'

 

참고로 실수형을 사용할 때 default 자료형은 double이므로 float를 사용할 때에는 리터럴에 접미사 f를 붙여줘야 한다.

 

l-value와 r-value

l-value는 read와 write가 가능하지만 r-value는 read만 가능하다.

 

ex)

  • int a = 10;
  • int b = a + b;
  • a + b = 100;

위의 예제에서 read와 write 둘 다 가능한 것은 { {a}, {b} } 두 가지 뿐이댜.

a + b는 연산이 되고 b에 대입될 뿐이지 write가 불가능하다.

 

 

 

 

 

 

 

'Java' 카테고리의 다른 글

arraycopy 메서드를 이용한 배열의 복사  (0) 2023.04.26
for each  (0) 2023.04.25
인코딩과 디코딩  (0) 2023.04.21
scanner 사용법  (0) 2023.04.18
객체지향  (0) 2023.04.03