형변환=> 연산중간에 형이 변환이 일어나는 경우
=>객체형변환과 연관
**형변환 종류**
1.자동형변환(=묵시적형변환) (적은데이터가 큰데이터일어날때 변환)
①값을 저장할때 일어남
②계산중간에(연산할때) 자동으로 바뀌는 경우
byte -> short -> int -> long -> float -> double
char
boolen은 형변환 x(배제)
-피연산자 중 하나라 double형이면 다른 피연산자도 double형으로 변환
-피연산자 중 하나라 float형이면 다른 피연산자도 float형으로 변환
-피연산자 중 하나라 long형이면 다른 피연산자도 long형으로 변환
-그렇지 않으면 모든 피연산 자는 int 형으로 변환
2.강제형변환(=명시적인 형변환) +(++) (적은데이터방향으로 큰데이터가 들어가는것)
=>명확하게 형변환을 표시해줘야 한다
형식) (변환시킬 자료형)변수명
ex) float f=3.5; // (x) double(8) 형이다.
ex) float f=(float)3.5; -> 강제형변환
int+double = >double+double
3+5.7====>30.+5.7 = 8.7
ㄴ 더블형으로 바뀜
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("작은형변환");
//1.적은데이터가 큰 데이터공간에 저장 -> 자동으로 형변환(메모리낭비심하다)
//1 4 8 16 32 64 128 256
//byte s=12; 00001100
short s=12; //00000000 00001100
int n=s; // 00000000 00000000 00000000 00001100
//2.계산중간에 자료형이 변환
char c='A'; //65
int n2=c+1; //char(2byte)+int(4byte)=>int(65)+int(1)=66
System.out.println("n2=>"+n2);
// int(4byte) -> char(2byte)
System.out.println("(char)n2=>"+(char)n2); //명시적인형변환
//명시적인 형변환=>단점=>데이터 손실이 일어날수있다.
int su=(int)3.5;
System.out.println("su=>"+su); //.5는 뺴고나옴
int x=123;
float y=x+12.3f; //int+float => float+float=>123.0f로바뀜
//123.0f+12.3f
System.out.println("y=>"+y);
byte s2=12; short s3=45;
System.out.println("형변환주의할점");
int re=s2+s3; //byte+short=>short+short=short (x)
//short+short=>int(연산의 기본자료형은 int)
//int+float or double => float,double로 변환
//byte,short ==> int 범위내에 존재 =>int
short re2=(short)(s2+s3); //수식의 경우에는 ( )괄호로 묶어줘야한다.
System.out.println("rt=>"+re);
System.out.println("rt=>"+re2);
'JAVA' 카테고리의 다른 글
6.[JAVA] 제어문 (2)반복문 (while문, do while문) (0) | 2021.11.07 |
---|---|
5. [JAVA]제어문 (0) | 2021.11.05 |
3.[JAVA]기초,변수와 자료형, 연산자 (0) | 2021.11.04 |
2.[JAVA]자바의 기초 (0) | 2021.11.04 |
1.자바프로그램의 설치 및 환경설정 (0) | 2021.11.04 |