변수
- 수학에서의 정의 : 수식에 따라서 변하는 값
- 프로그램에서의 정의 : 메모리에 저장되는 데이터들의 총칭
메모리
데이터를 저장할 수 있는 물리적 장치
휘발성 메모리
전원을 OFF하면 저장되어 있는 데이터가 모두 삭제된다.
ex) RAM카드
비휘발성 메모리
전원을 OFF하더라도 데이터가 삭제되지 않는다.
ex) 하드 디스크, USB
#02. 컴퓨터의 데이터 단위
컴퓨터에 저장될 수 있는 데이터는 이진수 형태이므로 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개의 이진수를 저장할 수있는 공간이 존재한다는 의미
UTF 한글자당 3byte, 정수는 4byte
#03. 변수
메모리에 저장된 데이터
쉽게 생각하면 값을 대입하기 위한 메모리 영역이라고 할 수 있다.
1) 데이터 타입 (Data Type)
메모리에 저장되어 있는 이진수들을 해석하기 위한 규칙들.
종류 | 설명 | 크기 | 값 형태 |
---|---|---|---|
byte | -128~127 가지의 범위를 갖는 정수 | 1byte | ex) 1 |
short | byte 보다 큰 범위를 저장할 수 있는 정수 | 2byte | ex) 200 |
int | short보다 큰 범위를 저장할 수 있는 정수 | 4byte | ex) 1234567 |
long | int 보다 큰 범위를 저장할 수 있는 정수 | 8byte | |
float | 실수 | 4byte | ex) 3.14 |
double | flaot 보다 더 정밀하게 소수점 자리를 표현할 수 있는 실수 | 8byte | ex) 3.141592... |
boolean | 참/거짓을 표현하는 논리값 | 2byte | true / false |
char | 한 글자. 홑따옴표로 감싼다. | 1byte | 'a' |
### 2) 변수 사용하기 |
변수의 선언
데이터 타입을 명시하고 그 옆에 변수의 이름을 정의한 다음 세미콜론으로 명령을 종료한다.
int num;
메모리에서 4byte의 공간을 선점하여
num
이라는 이름표를 적용한다는 의미
값의 할당
대입 연산자 =
을 사용해서 선언한 변수에 데이터를 저장하는 것
항상 오른쪽에서 왼쪽으로 대입된다.
num = 100;
변수의 이름 규칙
- 언더바(
_
), 숫자, 영어,$
기호만 사용 가능하다. - 첫 글자는 숫자가 될 수 없다.
- 자바에서 사용하는 예약어를 사용할 수 없다.
- 첫 글자는 대부분 소문자로 시작한다.
소스코드가 UTF-8인 경우 한글도 변수 이름에 사용할 수 있습니다.
두 개 이상의 단어를 조합하여 이름을 정의하는 경우
-
스네이크 표기법 : 띄어 쓰기를 언더바(
_
)로 표현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 x = y;
문자열
쌍따옴표로 감싸진 문장을 저장할 수 있는 데이터 타입
String welcomMwssage = "Hello World";
데이터 타입 첫 글자가 대문자로 시
작하는 것에 주의
변수의 제약
선언되지 않은 변수는 사용할 수 없다.
int x;
x = 100; // 선언된 변수를 사용하므로 ok
y = 200; // 선언되지 않은 변수에 값을 대입하므로 에러
이미 선언된 변수를 중복 선언할 수 없다.
int z;
z = 200;
int z = 300; // 중복선언 에러
변수 값 출력하기
int myAg
e = 100;
System.out.println(myAge); // 100이 출력된다.
System.out.println("myAge"); // myAge라는 문자열이 출력된다.
#03. 변수 활용 예제
제시된 소스 파일들을 추가하고 다음의 결과값을 출력하시오
Value1.java
논리형 변수 isMan과 isWoman이라는 값을 한 줄로 선언하고 자신의 성별을 의미하는 변수에 참, 반대쪽 성별을 의미하는 변수에 false를 할당한 뒤 출력하세요
public class Value1{
public static void main(String [] args){
boolean isMan, isWoman;
isMan = true;
isWoman = false;
System.out.println(isMan);
System.out.println(isWoman);
}
}
Value2.java
정수형 변수 poepleCount를 선언하고 다음 라인에서 0이라는 값을 할당 한 후 출력하세요.
public class Value2{
public static void main(String [] args){
int peopleCount;
// byte, short, int, long 모두 사용 가능
peopleCount = 0;
System.out.println(peopleCount);
}
}
Value3.java
실수형 변수 pi라는 값을 선언하면서 원주율값 3.141592를 한 라인에서 할당하고 선언하세요.
public class Value3{
public static void main(String [] args){
// 실수형 변수 pi라는 값을 선언하면서 원주율값 3.141592를 한라인레서 할당하고 출력
// -> float, double 모두 사용가능
// -> float 사용시 'f'적용
double pi;
pi = 3.141592;
System.out.println(pi);
}
}
float 타입 사용시 주의사항
double 타입과 구분을 위해 대입시 F
를 적용해야 한다.(필수)
float k = 12.345F;
Java는 변수에 대입되는 모든 실수형을 값을 double로 기본 인식합니다.
long 타입 사용시 주의사항
int 타입과 구분을 위해 대입시 L
을 적용해야 한다.(권장)
long k = 12345678L;
Java는 변수에 대입되는 모든 정수형 값을 int로 기본 인식합니다.