변수
- 수학에서의 정의 : 수식에 따라서 변하는 값
- 프로그램에서의 정의 : 메모리에 저장되는 데이터들의 총칭
메모리
데이터를 저장할 수 있는 물리적 장치
휘발성 메모리
전원을 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 생략 flaot 실수 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로 기본 인식합니다.