[Java] 1_3_변수와 자료형(2)

Haeun Noh·2022년 7월 27일
0

0727


저번주에 배우는 줄 알았던 변수를 오늘 배웁니다.
더불어 자료형도 살짝식 맛보며 프로그램을 짤 준비를 탄탄히 다져가는 날입니다.
뭐든지 기본기가 중요하다고 아는 것 같았던 내용들도 사이사이에 새로이 배우는 내용들이 있었습니다.
그런 것들에 집중하며 정리를 시작해보도록 하겠습니다!



변수

: 프로그래밍에서 값(Data)를 사용하기 위해 선언하는 것
: 프로그래밍에서 사용되는 자료를 저장하기 위한 공간
: 할당 받은 메모리의 주소 대신 부르는 이름

  • 프로그램 실행 중에 변경이 가능하다.
  • 사용되기 이전에 선언되어야 한다.
  • variable 이라고 한다.

변수는 이름 그대로 변할 수 있는 값입니다. 이러한 변수는 일상생활에서도 익숙하게 접하고 있는데요, 예시를 한 번 볼까요?

- 사람의 나이는 해가 바뀌면 변한다. (age)
- 두 수를 이용하여 사칙 연산을 하면 그 결과 값은 연산자에 따라 달라진다. (result)
- 게임을 하면 게임 레벨이 점점 올라간다. (level)

이러한 경우의 자료를 관리하기 위해서 프로그램에서는 변수라는 것을 사용합니다. 변수는 프로그래밍에 없어서는 안 될 굉장히 중요한 요소입니다.



변수의 선언과 초기화

변수를 사용하기 위해서는 선언과 초기화의 과정을 반드시 거쳐야 합니다. 선언을 하지 않으면 변수를 사용할 수 없고 초기화를 하지 않으면 변수는 이름만 있는 껍데기일 뿐입니다.

int level;		//level이라는 이름의 변수 선언
int level = 0; 	//level 변수 선언과 동시에 0으로 초기화
  • int의 역할 : level 변수의 데이터 타입을 정의
  • int의 의미 : level은 정수이며 4바이트의 메모리 공간을 사용


변수 선언 시 유의점

변수의 선언은 꼭 필요하지만 변수 선언에도 규칙이 있습니다.

  1. 변수의 이름은 알파벳, 숫자, _ , $ 로 구성된다.
  2. 대소문자를 구분한다.
  3. 변수의 이름은 숫자로 시작할 수 없고, 키워드도 변수의 이름으로 사용할 수 없다.
  4. 이름 사이에 공백이 있을 수 없다.

또한 변수의 이름을 정할 때는 변수의 역할에 어울리는, 의미있는 이름을 지어야 합니다. 그저 a b로 변수명을 지정하기보다는 시간time, 숫자num, 평균avg(average) 등등 의미있는 변수명을 사용해야 나중에 나 또는 다른 사람이 내가 짠 프로그램을 볼 때 이해가 쉽습니다.



변수가 저장되는 공간의 특성 - 자료형

변수가 사용할 공간, 즉 메모리의 크기와 특성에 따라 자료형을 사용하여 변수를 선언합니다.
ex) int num;

메모리의 특성

  • 정수형
  • 문자형
  • 실수형
  • 논리형

메모리의 크기

  • 1byte
  • 2byte
  • 4byte
  • 8byte


자료형

종류데이터형바이트 수설명
논리형boolean1byte논리값 true(참), false(거짓)을 표현하는 자료형
문자형char2byte컴퓨터에서는 문자도 내부적으로는 비트의 조합으로 표현
정수형byte1byte동영상, 음악 파일 등 실행 파일의 자료를 처리할 때 사용하기 좋은 자료형
short2byte주로 C/C++ 언어와의 호환시 사용
int4byteJava에서 사용하는 정수에 대한 기본 자료형 프로그램에서 사용하는 모든 숫자(리터럴)은 기본적으로 int(4byte)로 저장됨 32비트를 초과하는 숫자는 long형으로 표시해야 함
long8byte가장 큰 정수 자료형
숫자의 뒤에 L 또는 l 을 써서 long형임을 표시해야 함
실수형float4byte값 뒤에 F 또는 f를 붙여줘야 한다.
double8byte기본실수형


문자 세트

: 문자를 위한 코드 값(숫자 값)들을 정해 놓은 세트

  • 아스키코드(ASCII) : 1byte로 영문자, 숫자, 특수문자 등을 표현
  • 유니코드(Unicode) : 한글과 같은 복잡한 언어를 표현하기 위한 표준 인코딩 UTF-8, UTF-16이 대표적

문자를 변수에 저장하면 문자에 해당하는 코드값이 저장됩니다. 예를 들면 A는 아스키코드값 65가 저장되고 a는 아스키코드값 97이 저장됩니다. 이는 char ch = 65를 입력하면 실행결과가 A가 출력된다는 말과 동일합니다.
JAVA는 유니코드 UTF-16 인코딩을 사용하고 있습니다.

  • 혹시나 메모장으로 JAVA를 사용하고 계신 분들은 JAVA파일을 저장할 때 꼭 ANSI로 바꿔주어야 합니다. 그렇지 않으면 한글을 표현할 수 없으니까요.


자료형 없이 변수 사용하기 (자바10)

본디 자료형은 변수를 선언할 때 변수가 사용할 메모리 크기와 타입을 구분하기 위해 필요했습니다. 즉 변수를 사용하기 위해서는 자료형이 필연적으로 따라와야 하는 존재인 것이었습니다. 하지만 자바10부터는 지역 변수 자료형 추론을 제공하고 있습니다.

  • 지역 변수 자료형 추론 (local variable type inference) : 변수에 대입되는 값을 보고 컴파일러가 추론하는 것
var num = 10; -> int num = 10;
var dNum = 10.0; -> double dNum = 10.0;
var str = "hello"; -> String str = "hello";


이 블로그에 작성된 정보를 더 자세히 알고 싶다면?
Do it! 자바 프로그래밍 입문_자바 프로그래밍 시작하기 강의를 클릭하세요!


profile
기록의 힘을 믿는 개발자, 노하은입니다!

0개의 댓글