2-2 데이터 타입과 타입 변환

2024. 10. 6. 21:28·BackEnd/JAVA

(1) 기본 타입 (primitive type , 비객체 타입)

 

용도 크기   적용되는 값의 허용 범위
정수형 byte 1 byte 8 bit 2의 8승 → 숫자를 256개 저장 -128 ~ 127
short 2 byte 16 bit 2의 16승 -32768 ~ 32767
int (default) 4 byte 32 bit 2의 32승 -2,147,483,648 ~ 2,147,483,647
long 8 byte 64 bit   -9,223,372,036,854,775,808 ~
9,223,372,036,854,775,807
실수형 float 4 byte 32 bit 소수점 이하 7자리  
double (default) 8 byte 64 bit 소수점 이하 15자리  
문자형 char 2 byte 16 bit (ASCII + 8bit = Uni code)  
String 문자열      
논리형 boolean     TRUE or FALSE  

 

 

1) 정수형 데이터 타입

int var1 = 10;

byte var2 = -30;
byte var3 = 30;
//byte var4 = 128; //byte 저장값 허용범위를 벗어났기 때문에 컴파일 에러가 생긴다

long var5 = 10;
long var6 = 1000000000000L; 
//정수 리터럴이 int타입의 허용범위를 벗어날 경우 대문자 L을 붙여 long 타입임을 컴파일러에게 알려주어야한다

 

2) 문자형 데이터 타입

char c1 = 'A'; //문자를 직접 저장
char c2 = 65; //10진수로 저장 -> 'A'의 ASCII CODE 넘버

String name = "홍길동"; // 문자열 식별기호인 큰따옴표 ""로 감싸주어야한다
String job = "프로그래머";

 

[문자열 내부에서 사용할 수 있는 이스케이프 문자(자주 사용하는 문자)]

이스케이프 문자 출력 용도
\t 탭만큼 띄움
\n 줄 바꿈(라인 피드)
\r 캐리지 리턴
\" " 출력
\' ' 출력
\\ \ 출력

 

 

3) 실수형 타입

 // float var1 = 3.14; 
 //자바는 기본적으로 실수 리터럴을 double 타입으로 해석하기 때문에 실수리터럴을 그냥 저장하면 컴파일 에러가 발생
 
 float var2 = 3.14f; // float타입으로 저장하기 위해서는 f를 붙여줘야한다
 
 double var3 = 3.14;
 
 //정밀도 테스트
 float var4 = 0.1234567890123456789f; // 0.12345679 출력
 double var5 = 0.1234567890123456789; // 0.12345678901234568 출력
 
 double var6 = 3e6;
 float var7 = 3e6F;

 

 

4) 논리 타입

boolean stop = true;

if(stop){
	System.out.println("중지합니다");
} else {
	System.out.println("시작합니다");
}

 

 

 

(2) 객체 타입 (object type)

기본 데이터 타입을 여러 개 조합해서 생성한다 (사용자 정의 데이터 타입) , 클래스로 생성

 

 

(3) 타입 변환

 

1) 자동 타입 변환 

자동으로 타입이 변환되는 것을 말합니다. 값의 허용 범위가 작은 타입이 허용 범위가 큰 타입으로 저장될 때 발생 합니다.

허용 범위 크기 순서
byte < short < int < long < float < double

 

byte byteValue = 10;
int intValue = byteValue; 
//위의 코드는 int 타입이 byte타입보다 허용범위가 더 크기 때문에 자동 타입 변환이 일어납니다

 

 

2) 강제 타입 변환

강제로 타입을 변환하는 것을 말합니다. 값의 허용 범위가 큰 타입을 허용 범위가 작은 타입으로 쪼개어서 저장하는 것을 말합니다.

 

int intValue = 10;
byte byteValue = (byte)intValue; //int 타입을 byte타입으로 강제 변환

//연산에서의 타입 변환
int intValue = 10;
double doubleValue = 5.5;
double result = intValue + doubleValue; 
//int타입이 double타입으로 자동변환되어 result에 15.5가 저장됨

//위 연산을 double 타입이 아닌 int 타입으로 저장하고자 한다면
int result = intValue + (int)doubleValue; 
//double 타입을 int타입으로 강제 변환해준다, result에 15가 저장된다

 

 

3) 문자열을 기본 타입으로 강제 타입 변환

변환 타입 사용 예
String ▶ byte String str = "10";
byte value = Byte.parseByte(str);
String ▶ short String str = "200";
short value = Short.parseShort(str);
String ▶ int String str = "30000";
int value = Integer.parseInt(str);
String ▶ long String str = "40000000000";
long value = Long.parseLong(str);
String ▶ float String str = "12.345";
float value = Float.parseFloat(str);
String ▶ double String str = "12.345";
double value = double.parseDouble(str);
String ▶ boolean String str = "true";
boolean value = Boolean.parseBoolean(str);

 

저작자표시 비영리 변경금지 (새창열림)

'BackEnd > JAVA' 카테고리의 다른 글

[MyBatis] MyBatis 란?  (2) 2024.11.08
2-1. 변수  (6) 2024.10.05
1. eclipse & jdk설치 및 환경 설정  (5) 2024.10.05
'BackEnd/JAVA' 카테고리의 다른 글
  • [MyBatis] MyBatis 란?
  • 2-1. 변수
  • 1. eclipse & jdk설치 및 환경 설정
hee-coding
hee-coding
  • hee-coding
    J의 코딩 일기
    hee-coding
  • 전체
    오늘
    어제
    • 분류 전체보기 (26)
      • FrontEnd (3)
        • HTML,CSS,Java Script (0)
        • React (3)
      • BackEnd (11)
        • DataBase (0)
        • JAVA (4)
        • Servlet & JSP (0)
        • Spring (7)
      • Project (1)
      • Error (1)
      • Git (0)
      • Coding Test Practice (4)
      • 일상~ (6)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    it
    Coding
    frontend
    오블완
    코딩
    react
    티스토리챌린지
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
hee-coding
2-2 데이터 타입과 타입 변환
상단으로

티스토리툴바