본문 바로가기
공부/JAVA

[JAVA] 변수와 자료형

by yeaseul912 2021. 10. 17.
728x90

자료형 : 변수의 특성을 결정짓는 키워드

유형 설명
기본 자료형
(primitive
data type)
* 자바 컴파일러에 의해서 해석되는 자료형
* 실제 값을 갖는 자료형
* 자바에서 여러 형태의 타입을 미리 정의하여 제공
* 정수, 실수, 문자, 논리를 저장하는 자료형
참조 자료형
(reference
data type)
*값이 아닌 객체의 주소를 가지고 있는 자료형
*자바 라이브러리 API에서 제공되거나 프로그래머에 의해서 만들어진 클래스를 자료형으로 선언하는 경우
*배열, 클래스, 인터페이스 타입 자료형

 

기본자료형

상수(Constant) : 항상 일정한 값을 유지하는 데이터

변수(Variable) : 특정 상황에 따라 값이 변하는 데이터

자료형(Data Type) : 여러 종류의 데이터를 식별하는 분류, 그 종류에 따라서 각각 다른 메모리의 크기를 갖는다.

타입 메모리크기 default 표현범위
논리값 Boolean 1 bit FALSE true, false
문자  Char 2 byte \0 '\u0000' ~ '\uFFFF'
정수 byte 1 byte 0 -128 ~ -127 (-2^7~2^7-1)
Short 2byte 0 -32,768 ~ 32,767 (-2^15~2^15-1)
Int 4 byte 0 -2^31 ~ 2^31-1
Long 8 byte 0 -2^63 ~ 2^63-1
실수 Float 4 byte 0.0 1.4 * 10^-45 ~ 3.4 * 10^38
Double 8 byte 0.0  4.9* 10^-324 ~ 1.8 * 10^308

 

진법 표현

package variable;

public class BinaryTest {
	public static void main(String[] args) {
		
		int num = 10;
		int bNum = 0b1010; // 10, 2진법은 0b를 붙임
		int oNum = 012; // 10, 8진법은 0을 붙임
		int xNum = 0xA; // 10, 16진법은 0x를 붙임
	}
}

 

 

묵시적 형변환 : 표현 범위가 낮은 자료형은 표현 범위가 높은 자료형으로 자동으로 변경 가능.

명시적 형변환 : 표현 범위가 높은 자료형은 표현 범위가 낮은 자료형으로 자동으로 변경 불가능. 데이터 앞에 (자료형) 넣어서 변경.

package variable;

public class Conversion {

	public static void main(String[] args) {
		
		// 1: 묵시적 형 변환 byte(1byte) => int(4byte) 

		byte bNum = 10;
		int iNum = bNum;
        
                // 2 : 명시적 형 변환 
		   
		int i = 1000;
		byte bNum = (byte)i; // -24 : 데이터의 유실 발생 byte = -128~127
		
		// 3 : Truncate 발생
        
		double dNum1 = 1.2;
		float fNum = 0.9F;
		
		int iNum1 = (int)dNum1 + (int)fNum; // 1 + 0
		int iNum2 = (int)(dNum1 + fNum); // 1.2 + 0.9
		
		System.out.println(iNum1); // 1
		System.out.println(iNum2); // 2
    }
}
반응형

댓글