[Java] 타입불일치와 형변환

2023. 12. 5. 00:42·Java

[ 변수와 리터럴 타입 불일치 ] 

▸ 범위 변수(그릇)>리터럴(내용물) 경우  → ok(예외 인정)  *자동형변환

-int i = 'a';
 'a'=65(아스키 코드)
 int>char

-long l = 123;
 long>int

 

▸ 범위 변수<리터럴 경우  → error   *수동형변환

-int i = 3000000000;  //error
 20억 넘음

-long l = 3.14f; //error
 long<float
 
*long(8byte), float(4byte) 인데 에러인 이유는 
 정수형<실수형
 실수형이 정수형보다 저장범위 훨씬 넓기때문

-float f = 3.14; //error
float<double

 

 

[ 형변환  ]

-연산은 같은 데이터타입 끼리만 연산 가능

- boolean은 제외, primitive type 끼리만 가능

 

▸ 형식

변수X = (변환할 타입명) 변수Y;

 

▸자동형변환

작은타입에서 큰타입으로 변환(값 변화x)

byte  ←  short  ←  int  ←  long  ←  float  ←  double

 

▸수동(강제)형변환

큰타입에서 작은타입으로 변환(값 변화o)

byte  →  short  →  int  →  long  →  float  →  double

 

ex)

byte b = 1000;  //error (-128~127 벗어남)
byte b = (byte)1000;  //ok but 값손실 발생


byte b = 100;  //ok 자동형변환


int i =100;
byte b = i;  //error 컴파일러 변수i값 뭔지몰라 손실있없 판단못해 수동해줘야함
byte b = (byte) i  //ok

'Java' 카테고리의 다른 글

[Java] Scanner, Math.round(), Math.random()  (0) 2023.12.08
[Java] printf()의 지시자  (0) 2023.12.08
[Java] 문자,문자열 결합과 두 변수 바꾸기  (0) 2023.12.08
[Java] 변수와 데이터타입과 범위  (0) 2023.12.05
[Java] JAVA 개요  (0) 2023.12.04
'Java' 카테고리의 다른 글
  • [Java] printf()의 지시자
  • [Java] 문자,문자열 결합과 두 변수 바꾸기
  • [Java] 변수와 데이터타입과 범위
  • [Java] JAVA 개요
Naah
Naah
  • Naah
    blueprint
    Naah
  • 전체
    오늘
    어제
    • 분류 전체보기 (106)
      • Java (28)
      • Kotlin (0)
      • TypeScript (7)
      • React (22)
      • Next.js (1)
      • Spring (22)
      • JPA (12)
      • Spring Data JPA (6)
      • Querydsl (1)
      • Error (7)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
    • 글쓰기
    • manage
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
Naah
[Java] 타입불일치와 형변환
상단으로

티스토리툴바