변수
- 수학에서의 정의 : 수식에 따라서 변하는 값
- 프로그램에서의 정의 : 메모리에 저장되는 데이터들의 총칭
메모리
데이터를 저장할 수 있는 물리적 장치
휘발성 메모리
전원을 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;
변수의 이름 규칙
- 언더바(
_
), 숫자, 영어,$
기호만 사용 가능하다. - 첫 글자는 숫자가 될 수 없다.
- 자바에서 사용하는 예약어를 사용할 수 없다.
- 첫 글자는 대부분, 소문자로 시작한다.
소스코드가 UTF-8인 경우 한글도 변수 이름에 사용할 수 있습니다.
두 개 이상의 단어를 조합하여 이름을 정의하는 경우
- 스네이크 표기법 : 띄어 쓰기를 언더바('_')로 표현
0.
int my_age;
- 카멜 표기법 : 띄어쓰기가 시작되는 단어의 첫 글자를 대문자로 변경
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 |