본문 바로가기

코딩 공부/Java

[Java] 03_변수

변수

  • 수학에서의 정의 : 수식에 따라서 변하는 값
  • 프로그램에서의 정의 : 메모리에 저장되는 데이터들의 총칭

메모리

데이터를 저장할 수 있는 물리적 장치

휘발성 메모리

전원을 OFF하면 저장되어 있는 데이터가 모두 삭제된다.

ex) RAM 카드드

비휘발성 메모리

전원을 OFF 하더라도 데이터가 삭제되지 않는다.

ex) 하드 디스크, USB

#01. 컴퓨터의 데이터 단위

컴퓨터에 저장될 수 있는 데이터는 이진수 형태이므로 0 아니면 1 로만 구성된다.

bit

이진수 값 하나를 의미.

  • 1bit는 두 개의 정보를 표현할 수 있다. (0 혹은 1)
  • 2bit는 네 개의 정보를 표현할 수 있다. (00 , 01 , 10, 11)
  • nbit는 2의 n제곱 개의 정보를 표현할 수 있다.
    • 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024 ...

알파벳 a는 이진수로 표현했을 때 01100001가 된다.

인코딩

글자를 부호화 하기 위한 규격.

ex) 모스부호

ANSI

이진수를 사용해서 알파벳을 부호화하기 위한 미국 표준 규격

7bit로 알파벳 한 글자를 표현한다.

미국 전용.

확장 ANSI

ANSI에서 다른 언어를 표현하기 위한 1bit를 추가하여 8bit로 한 글자를 표현하는 방식

영어 + 1개국어 표현이 가능하기 때문에 언어별로 종류가 나누어진다.

ex) euc-kr, euc-jp, euc-ch ....

확장 ANSI가 국제표준으로 정해진 후 컴퓨터에서 데이터의 크기의 최소 단위를 8bit로 정하고 이를 1byte라고 부르기 시작함.

영어는 1byte로 한 글자를 표현 가능함.

한국어로 같은 조합형 글자는 두 개 이상의 byte가 모여야 한 글자를 구성할 수 있다.

UTF-8

확장 ANSI가 영어+1개국어 밖에 표현하는 한계를 개선하여 언어 종류에 상관 없이 3byte로 한 글자를 표현하는 방식.

한번에 모든 언어를 표현할 수 있다.

현재 사실상 산업 표준으로 사용되고 있다.

컴퓨터의 용량 단위

  • byte : 최소단위 (이진수 8개)
  • kbyte : 1kb = 1024b
  • mbyte : 1mb = 1024kb
  • gbyte : 1gb = 1024mb
  • tbyte : 1tb = 1024gb

16gb의 RAM을 장착한 경우 16 * 1024 * 1024 * 1024 * 8 개의 이진수를 저장할 수 있는 공간이 존재한다는 의미

#02. 변수

메모리에 저장된 데이터.

쉽게 생각하면 값을 대입하기 위한 메모리 영역이라고 할 수 있다.

데이터 타입 (Data Type)

메모리에 저장되어 있는 이진수들을 해석하기 위한 규칙들.

종류 설명 크기 값 형태
byte -128~127 까지의 범위를 갖는 정수 1byte ex) 1
short byte 보다 큰 범위를 저장할 수 있는 정수 2byte ex) 200
int short 보다 큰 범위를 저장할 수 있는 정수 4byte ex) 1234567
long int 보다 큰 범위를 저장할 수 있는 정수 8byte ex) 생략
float 실수 4byte ex) 3.14
double float 보다 더 정밀하게 소주점 자리를 표현할 수 있는 실수 8byte ex) 3.141592 ...
boolean 참/거짓을 표현하는 논리값 2byte true / false
char 한 글자. 홑따옴표로 감싼다. 1byte 'a'

2) 변수 사용하기

변수의 선언

데이터 타입을 명시하고 그 옆에 변수의 이름을 정의한 다음 세미콜론으로 명령을 종료한다.

int num;

메모리에서 4byte의 공간을 선점하여 num이라는 이름표를 적용한다는 의미

값의 할당

대입 연산자 =을 사용해서 선언한 변수에 데이터를 저장하는 것.

항상 오른쪽에서 왼쪽으로 대입된다.

num = 100;

변수의 이름 규칙

  1. 언더바(_), 숫자, 영어, $기호만 사용 가능하다.
  2. 첫 글자는 숫자가 될 수 없다.
  3. 자바에서 사용하는 예약어를 사용할 수 없다.
  4. 첫 글자는 대부분, 소문자로 시작한다.

소스코드가 UTF-8인 경우 한글도 변수 이름에 사용할 수 있습니다.

두 개 이상의 단어를 조합하여 이름을 정의하는 경우
  1. 스네이크 표기법 : 띄어 쓰기를 언더바('_')로 표현
0.
int my_age;
  1. 카멜 표기법 : 띄어쓰기가 시작되는 단어의 첫 글자를 대문자로 변경
int myAge;

자바의 경우 대부분 카멜표기법을 따릅니다.

선언과 할당의 일괄 처리

int num = 100;

####같은 데이터 타입을 갖는 변수 여러 개를 한 번에 선언하기

int num1, num2;
num1 = 100;
num2 = 200;

변수 값 활용하기

이미 값이 할당된 변수는 다른 값으로 변경 가능
int pay = 100;
pay = 200;
변수 값을 다른 변수에 복사 가능
int x, y;
x = 50;
y = x;

int z = y;

문자열

쌍따옴표로 감싸진 문장을 저장할 수 있는 데이터 백업

String welcomeMessage = "Hello World";

데이터 타입 첫 글자가 대문자로 시작하는 것에 주의!!!

변수의 제약

선언되지 않은 변수는 사용할 수 없다.

int x;
x = 100;    // 선언된 변수를 사용하므로 ok
y = 200;    // 선언되지 않은 변수에 값을 대입하므로 에러

이미 선언된 변수를 중복 선언할 수 없다.

int z;
z = 200;

int z = 300;    // 중복선언 에러

변수 값 출력하기

int myAge = 100;

System.out.println(myAge);    // 100이 출력된다.
System.out.println("myAge");    // myAge라는 문자열이 출력된다.

#03. 변수 활용 예제

제시된 소스 파일들을 추가하고 다음의 결과값을 출력하시오.

Value1.java

논리형 변수 isMan과 isWoman이라는 값을 한 줄로 선언하고 자신의 성별을 의미하는 변수에 참, 반대쪽 성별을 의미하는 변수에 false를 할당한 뒤 출력하세요

boolean isMan, isWoman;

isMan = true;
isWoman = false;

System.out.println(isMan);
System.out.println(isWoman);

Value2.java

정수형 변수 peopleCount를 선언하고 다른 라인에서 0이라는 값을 할당 한 후 출력하세요.

int peopleCount;

peopleCount = 0;

System.out.println(peopleCount);

Value3.java

실수형 변수 pi라는 값을 선언하면서 원주율값 3.141592를 한 라인에서 할당하고 출력하세요.

double pi = 3.141592;

System.out.println(pi);

float 타입 사용시 주의사항

double 타입과의 구분을 위해 대입시 'F'를 적용해야 한다. (필수)

float k = 12.345F;

Java는 변수에 대입되는 모든 실수형 값을 double로 기본 인식합니다.

long 타입 사용시 주의사항

int 타입과의 구분을 위해 대입시 'L'을 적용해야 한다. (권장)

long k = 12345678L;

Java는 변수에 대입되는 모든 정수형 값을 int로 기본 인식합니다.

'코딩 공부 > Java' 카테고리의 다른 글

[Java] 06_조건문  (0) 2020.05.08
[Java] 05_기본입출력  (0) 2020.05.08
[Java] 04_연산자  (0) 2020.05.08
[JAVA] 02_HelloWorld  (0) 2020.05.08
[Java] 01_자바 시작  (0) 2020.05.08