Java/Java 이론

[JAVA] 변수형과 자료형 - 2

2주녘 2023. 7. 25. 11:43
반응형

변수(Variable)란?

● 값(Value)을 저장할 수 있는 메모리의 공간을 의미합니다.

● 이름에서 유추할 수 있듯이 변수는 말 그대로 '변하는 수' 입니다.

변수는 언제 쓰나요?

● 프로그램에서는 항상 변하는 값을 나타낼 필요가 있음 ( ex. 학생의 성적, 합계, 게임의 레벨, 회원 주소 등등...)

● 표현하려는 수에 맞는 데이타 타입(자료형)을 이용하여 변수를 선언

데이터 타입의 종류는 크게 두가지가 있습니다.

첫번째, 기본데이터 타입(Primitive Type)

두번째, 참조타입(Reference Type)

 

1. 기본데이터 타입

정수 자료형의 크기는 다음과 같습니다.

● 32 비트를 초과하는 숫자는 long 자료형으로 처리 (+,- 약 21억)

[long]

8바이트 자료형

숫자의 뒤에 알파벳 L or l을 써서 long 형임을 표시해야합니다.

l = 21000000000L;

예) 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);

 

}

 

}

출력값

false

true

반응형