Java 변수 타입

데이터 타입

정수 타입

// byte - 1byte 메모리 사용 (-128 ~ 127)
byte byte1 = -128;
// char - 2byte 메모리 사용 (음수x 0 ~ 2^16 - 1)
char char1 = 'A';		
char char2 = 65;
char char3 = '\u0041';		// char 1, 2, 3 모두 A 저장
// + String - String은 기본 타입이 아닌 클라스 타입 String 은 참조 변수
String string1 = "Name"; 
// short - 2byte 정수 값
short short1 = 0;
// int - 4byte 정수 값 (-2^31 ~ 2^31 - 1)
int int1 = 10;		// 10진수
int int2 = 012;		// 8진수
int int3 = 0xA;		// 16진수
// long - 8byte 정수 값 (-2^63 ~ 2^63 - 1)
long long1 = 10;	// 4 byte
long long2 = 10L;	// 8 byte 사용시 명시

실수 타입

// float - 4byte
// Java는 기본적으로 double을 기본 실수로 보기 때문에 f, F 로 float형임을 명시
float float1 = 3.14F;
// double - 8byte
double double1 = 3000000;	// 3000000
double double2 = 3e6;		// 3000000
double double3 = 2e-3;		// 0.002

논리 타입

// boolean - 1byte
boolean boolean1 = true;
boolean boolean2 = false;

형 변환

// 자동 형변환(크기가 작은 것에서 큰 형으로 변환)
int intValue1 = byte1;		// int <- byte
int intValue2 = char1;		// int <- char
long longValue1 = int1;		// long <- int
double doubleValue1 = int2;	// double <= int
		
// 강제 형변환( 작은 크기 타입 = (작은 크기 타입)큰 크기 타입 )
byte byteValue1 = (byte)int1;	// 강제 타입 변환(캐스팅)

강제 형변환으로 데이터 손실을 막기위해선 예외처리 사용

    if((i < Byte.MIN_VALUE) || (i > Byte.MAX_VALUE)) {
		System.out.println("Error");
	}else {
		byte byteValue1 = (byte) i;
	}

참조 변수

  • String
    String string2 = "name";
    String string3 = "name";
    String string4 = new String("name");
    

    string2, string3 는 동일한 문자열 리터럴로 생성된 객체를 참조해 == true 가 됨 string4 는 String 객체를 새로 생성했기 때문에 == 시 false가 된다. 서로 다른 객체사이에서 리터럴 검사 시 string2.equals(string4)

  • 배열
    • 배열의 선언
      // 타입[] 변수
      int[] intArray;
    
      // 타입 변수[]
      int intArray[];
    
      // 배열 초기화
      String[] names = {"name1", "name2", "name3"};
      names = new String[] {"name1", "name2", "name3"};
      int[] intArray = new int[5]
    
      // 배열의 길이
      intArray.length