변수(Variable)란?
● 값(Value)을 저장할 수 있는 메모리의 공간을 의미합니다.
● 이름에서 유추할 수 있듯이 변수는 말 그대로 '변하는 수' 입니다.
변수는 언제 쓰나요?
● 프로그램에서는 항상 변하는 값을 나타낼 필요가 있음 ( ex. 학생의 성적, 합계, 게임의 레벨, 회원 주소 등등...)
● 표현하려는 수에 맞는 데이타 타입(자료형)을 이용하여 변수를 선언
데이터 타입의 종류는 크게 두가지가 있습니다.
첫번째, 기본데이터 타입(Primitive Type)
두번째, 참조타입(Reference Type)
1. 기본데이터 타입
정수 자료형의 크기는 다음과 같습니다.
● 32 비트를 초과하는 숫자는 long 자료형으로 처리 (+,- 약 21억)
[long]
8바이트 자료형
숫자의 뒤에 알파벳 L or l을 써서 long 형임을 표시해야합니다.
예) int num = 12345678900; // 오류
long lnum = 12345678900; //오류
long lnumber = 12345678900L; // ok
float형과 double형이 있습니다.
float 형은 4바이트
double 은 8바이트 입니다.
package ex_01 ;
public class DataType1 {
public static void main ( String [] args ) {
// 실수형을 표현할 때는 기본단위는 double이 적용됨.
double dou = 11.0 ;
// float fot = 18.0; <-오류발생
float fot = 18.0F ; // 접미사 f(F)를 사용해야 한다. 기본단위가 double로 적용되기 때문.
System . out . println ( "double의 값 : " + dou ) ;
System . out . println ( "float의 값 : " + fot ) ;
} // end of main
} // end of class
출력값
double의 값 : 11.0
float의 값 : 18.0
문자 자료형
문자를 저장하기 위한 변수를 선언할 때 사용됩니다.
char 타입의 변수는 단 하나의 문자만을 저장할 수 있습니다.
문자세트 : 각 문자를 얼마로 표현할 것인지 코드 값을 모아둔 것을 문자세트(charater set)라 한다.
ex ) ASKII, euc-kr, utf-8, utf-16
자바는 문자를 나타내기 위해 전세계 표준인 유니코드를 사용
문자형 변수 선언과 사용하기
문자를 위한 데이터 타입 char ch1 = 'A';
내부적으로 숫자로 표현되므로 숫자를 넣어도 문자가 출력될 수 있음.
[참고]
● character set: 문자를 숫자로 변환한 값의 세트 encoding: 문자가 숫자로 변환되는 것
● decoding: 숫자에서 다시 문자로 변환되는 것
● ASKII code: 알파벳과 숫자 특수 문자등을 1바이트에 표현하는데 사용하는 문자세트
● UNICODE: 전 세계 표준으로 만든 문자 세트
● UTF-8: 1바이트에서 4바이트까지 다양하게 문자를 표현할 수 있음
● UTF-16: 2바이트로 문자를 표현
package ch01 ;
public class DataType2 {
public static void main ( String [] args ) {
// 변수의 선언
char name ; // 2byte 공간에 하나의 문자를 담아 둘 수 있다.
char a ;
char initial ;
// 값을 넣어보자.
name = 'A' ; // 홑 따옴표를 사용해야 한다. 하나의 문자만 담을 수 있다.
// name = 'AB'; 는 사용불가
} // end of main
} // end of class
package ch01 ;
public class CharacterTest {
public static void main ( String [] args ) {
char ch1 = '가' ;
System . out . println ( ch1 ) ;
System . out . println (( int ) ch1 ) ;
System . out . println (( int ) '가' ) ;
System . out . println ( "========================" ) ;
// 문제 1
// 대문자 A는 정수값 얼마인가? 출력하시오.
// 소문자 a는 정수값 얼마인가? 출력하시오.
System . out . println (( int ) 'A' ) ;
System . out . println (( int ) 'a' ) ;
System . out . println ( "========================" ) ;
// 주의 char 데이터 타입에는 음수값을 대입할 수 없다. (양수만 사용가능)
char ch2 = 97 ;
char ch3 = 44032 ;
System . out . println ( ch2 ) ;
System . out . println ( ch3 ) ;
System . out . println ( "========================" ) ;
// 문제 2
// 개발자라는 단어는 한글자 한글자 정수값 얼마, 얼마 인지 알아보자.
System . out . println (( int ) '개' ) ;
System . out . println (( int ) '발' ) ;
System . out . println (( int ) '자' ) ;
System . out . println ( "========================" ) ;
System . out . println (( char ) 44060 ) ;
System . out . println (( char ) 48156 ) ;
System . out . println (( char ) 51088 ) ;
System . out . println ( "========================" ) ;
// 본인이 알고 싶은 단어의 정수 값이 얼마인지 알아보자.
System . out . println (( int ) '이' ) ;
System . out . println (( int ) '준' ) ;
System . out . println (( int ) '혁' ) ;
System . out . println ( "========================" ) ;
}
}
출력값
가
44032
44032
========================
65
97
========================
a
가
========================
44060
48156
51088
========================
개
발
자
========================
51060
51456
54785
========================
논리형 자료형
true(참) / false(거짓) 두가지만 나타내고, 1바이트를 사용한다. 값이 존재하는지, 결과가 참인지 거짓인지등을 표현.
package ch01 ;
public class DataType3 {
public static void main ( String [] args ) {
// 기본 자료형 --> 논리형 (사실을 관찰하고 결과값이 참, 거짓인지 판별할 때)
boolean isMarried = false ; // 변수의 선언과 동시에 초기화 함.
System . out . println ( isMarried ) ;
isMarried = true ; // 변수의 값을 변경함.
System . out . println ( isMarried ) ;
}
}
출력값