[Java] 3. 데이터 활용 - 데이터 종류

garam0410·2021년 3월 31일
0

Java

목록 보기
3/4
post-thumbnail

데이터 종류

  • 논리 타입

  • 문자 타입

  • 정수 타입

  • 실수 타입

  • 참조 타입


논리 타입

참/거짓 처럼 둘중 하나의 값을 표현할 때 사용한다.
boolean 타입을 사용
1바이트 메모리 공간 사용

boolean 변수명;
boolean isTest;

논리 타입에는 true 또는 false 값을 저장한다


문자 타입

한 글자의 값만 가지는 데이터를 표현할 때 사용한다.
한글자가 아닐경우, 컴파일 오류가 발생한다.
ex) 성별 정보를 저장할 때, '남자', '여자' 가 아닌 'M' 과 'F' 를 저장해도 충분히 표현 가능하다.

char 타입을 사용
2바이트 메모리 공간 사용

char 변수명;
char gender;

gender = 'F';	// 여자를 의미
//gender = 'Female'; // 오류 발생 : 한글자가 아님
  • 특수 문자

    프로그램 언어마다 이스케이프 시퀸스 라는 것이 있다.

    이스케이프 시퀸스 : 특수문자로 키보드에서 제어의 기능을 담당하는 키들을 문자로 표현한 것이다.

  • 유니코드

    char 데이터 타입을 표현할 때, 유니코드를 직접 지정할 수도 있다.
    유니코드는 모든 나라 언어를 컴퓨터에서 표현하기 위해 언어와 상관없이 문자마다 고유한 코드를 부여한 하나의 방법이다.

    자바에서 유니코드를 직접 지정할때는 \u 다음에 유니코드를 쓰면 된다.

    public class main{
    	public static void main(String[] args){
    		char c = '\u0057';
    		System.out.println(c);
    	}
    }

    실행결과 : W


  • String

    Java에서 char 타입은 문자 한 글자만 표현할 수 있다.
    따라서 문자열을 지정하려면 데이터 타입을 String으로 하고 큰따옴표("") 로 묶어야 한다.

    public class main{
    	public static void main(String[] args){
       		String greet = "Have a good Day";
               System.out.println(greet);
       	}
    }

    실행결과 : Have a good Day


정수 타입

소수점이 없는 정수를 표현할 때 사용한다.
4가지 타입이 존재하며, 사용되는 메모리 공간 또한 다르다.

메모리 크기가 다르다 => 저장할 수 있는 데이터의 양이 다르다

  • byte
    - 1바이트
    - 범위 : -128~127

  • short
    - 2바이트
    - 범위 : -32,768 ~ 32,767

  • int
    - 4바이트
    - 범위 : -2,147,483,648 ~ 2,147,483,647

  • long
    - 4바이트
    - 범위 : -2^63 ~ (2^63 - 1)

    public class main{
    	public static void main(String[] args){
    		byte age;
    		short point;
    		int price;
    		long totalSales;
    		
    		age = 23;
    		point = 32000;
    		price = 3500000;
    		totalSales = 2147483648L;
    		
    		System.out.println(age);
    		System.out.println(point);
    		System.out.println(price);
    		System.out.println(totalSales);
      	}
    }

실수 타입

소수점이 있는 숫자를 표현할 때 사용한다.
2가지 타입이 존재하며, 사용되는 메모리 공간 또한 다르다.

정수는 소수점 이하 값이 없으므로 양수, 음수를 판별하는 부호와 실제데이터만 저장하지만, 실수는 부호와 소수점 자리를 표현하기 위해 가수지수로 분리하여 저장한다.

  • float
    - 4바이트

  • double
    - 8바이트

    public class main{
	public static void main(String[] args){
		float exchangeRate = 1136.50F; //??????
		double USDAmount = 600.50;
		double KRWAmount = 624533.25;
		
		System.out.println(exchangeRate);
		System.out.println(USDAmount);
		System.out.println(KRWAmount);
   	}
}
float exchangeRate = 1136.50F;

왜 실수뒤에 F를 왜 붙여줬을까??
실수는 기본적으로 double 타입으로 저장된다. 즉, 1136.50이 double 타입 임시 저장소에 저장되는데, 이 double 타입 데이터를 float 타입의 변수에 저장하려 할 때, 문제가 발생한다. double 타입 데이터를 4바이트 공간에 저장하려니, 공간이 좁아 저장할 수 없는 것이다.
그래서 위처럼 숫자 끝에 'F' 또는 'f'를 넣어주거나, 값 왼쪽에 (float)를 써준다

float exchangeRate = (float)1136.50;

참조 타입

위에서 언급한 논리, 문자, 정수, 실수 데이터타입을 기본 데이터 타입 이라고 한다.
참조 타입은 참조 데이터 타입 이라고한다.
참조 데이터 타입은 메모리의 위치를 저장하는 타입을 의미한다.

String name;

위와 같은 코드로 변수를 선언 했다면 name은 어떤 타입의 변수 일까?

boolean, char, byte, short, int, long, float, double에 속하지 않는 데이터 타입이므로 참조 데이터 타입이다.

프로그래밍에서 모든 데이터는 메모리에 저장된 다음 처리가 된다. 이때 데이터가 저장되는 메모리에는 모두 주솟값이 있고, 참조 타입 변수에는 데이터 자체가 아니라, 데이터가 저장된 메모리의 주솟값을 저장한다.

0개의 댓글