data란?
사실을 나타내는 수치입니다. 기온, 습도, 날씨, 문자, 문자열 등등 각각의 수치들이 데이터가 됩니다.
컴퓨터의 주요 부품
CPU (central processing unit)
RAM (Random Access Memory)
HDD ( Hard disk drive)
컴퓨터의 자료 표현 방식
컴퓨터는 0과 1로만 데이터를 저장함
bit(1비트) : 컴퓨터가 표현하는 데이터의 최소 단위로 2진수 하나의 값을 저장할 수 있는 크기
byte(바이트) : 1byte = 8bit
2진수와 10진수
1byte(8비트)로 5를 나를 표현해 봅시다.
변수(Variable)란?
● 값(Value)을 저장할 수 있는 메모리의 공간을 의미합니다.
● 이름에서 유추할 수 있듯이 변수는 말 그대로 '변하는 수' 입니다.
변수는 언제 쓰나요?
● 프로그램에서는 항상 변하는 값을 나타낼 필요가 있음 ( ex. 학생의 성적, 합계, 게임의 레벨, 회원 주소 등등...)
● 표현하려는 수에 맞는 데이타 타입(자료형)을 이용하여 변수를 선언
public class Variable {
public static void main(String[] args) {
// 선언
int age;
int count;
// 초기화
age = 20;
// 선언과 동시에 초기화
int level = 10;
// 화면에 출력
System.out.println(age);
System.out.println(level);
//System.out.println(count);
}
}
변수의 이름 규칙
1. 대소문자가 구분되며 길이에 제한이 없다.
- Name과 name은 서로 다른 것으로 간주된다.
2. 자바에서 사용하는 예약어는 사용할 수 없다.
- while, break, for, if
3. 숫자로 시작해서는 안 된다.
- top10은 허용하지만, 7up은 허용되지 않는다.
4. 특수문자는 '_', '$'만을 허용한다.
자료형(data type)
변수를 선언하면 해당되는 자료형의 크기 만큼 메모리가 할당
변수는 할당된 메모리를 가리키는 이름 int level = 10;
// 4바이트 정수형 메모리가 level 이라는 이름으로 할당 됨
기본 자료형(primitive data type)의 종류
정수 자료형의 종류와 크기
● 32 비트를 초과하는 숫자는 long 자료형으로 처리 (+,- 약 21억)
long
8바이트 자료형
숫자의 뒤에 알파벳 L 또는 l 을 써서 long 형임을 표시 함
예) int num = 12345678900; // 오류
long lnum = 12345678900; //오류
long lnumber = 12345678900L; // ok
실수 자료형의 종류와 크기
public class DoubleTest {
public static void main(String[] args) {
double dnum = 3.14;
float fnum = 3.14F;
System.out.println(dnum);
System.out.println(fnum);
}
}
문자 자료형
문자를 저장하기 위한 변수를 선언할 때 사용.
char 타입의 변수는 단 하나의 문자만을 저장할 수 있다.
char ch = 'A'; // 문자 'A'를 char 타입의 변수 ch에 저장
사실은 문자의 유니코드(정수)가 저장된다.
어떤 문자를 컴퓨터 내부에서 표현하기 위해 특정 정수 값을 정의해 둔다.
A 는 65
문자세트 : 각 문자를 얼마로 표현할 것인지 코드 값을 모아둔 것을 문자세트(charater set)라 함
(ex. ASKII, euc-kr, utf-8, utf-16)
자바는 문자를 나타내기 위해 전세계 표준인 UNICODE를 사용
utf-16 인코딩을 사용 (모든 문자를 2바이트로 표시)
문자형 변수 선언과 사용하기
문자를 위한 데이터 타입 char ch1 = 'A'; ( 문자와 문자열은 완전 다른 타입 입니다 "ABCD" )
내부적으로 숫자료 표현되므로 숫자를 넣어도 문자가 출력될 수 있음
char ch2 = 65;
public class CharacterTest {
public static void main(String[] args) {
char ch1 = 'A';
System.out.println(ch1);
System.out.println((int) ch1);
char ch2 = 66;
System.out.println(ch2);
System.out.println((int) ch2);
char ch3 = 67;
System.out.println(ch3);
System.out.println((int) ch3);
// char ch4 = -68; 음수는 대입 불가
char ch5 = '한';
System.out.println((int) ch5);
}
}
참고
● character set: 문자를 숫자로 변환한 값의 세트 encoding: 문자가 숫자로 변환되는 것
● decoding: 숫자에서 다시 문자로 변환되는 것
● ASKII code: 알파벳과 숫자 특수 문자등을 1바이트에 표현하는데 사용하는 문자세트
● UNICODE: 전 세계 표준으로 만든 문자 세트
● UTF-8: 1바이트에서 4바이트까지 다양하게 문자를 표현할 수 있음
● UTF-16: 2바이트로 문자를 표현
논리형 자료형
true(참), false(거짓) 두 가지만 나타냄
1바이트를 사용 함
값이 존재하는지, 결과가 참인지 거짓인지등을 표현
public class BooleanTest {
public static void main(String[] args) {
boolean isMarried = true;
System.out.println(isMarried);
}
}