728x90
반응형
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 | package zon; //Variable , Constant, literal 구분할줄 알아야함. //기본형(primitiveType) //byte<short<int<long (이까지 정수) <float<double (이까지 실수) //char 0 ~ 65535 public class Test { public static void main(String[] args) { int variable; // variable은 지역 변수이다. 쓰레기 값이다. // variable += 10; 이렇게하면 에러난다. final int constantValue; // 더이상 변하지마, 즉, 상수이다. byte byteValue1= 127; byte byteValue2= 5; byte byteResult = (byteValue1 + byteValue2) > Byte.MAX_VALUE ?0:(byte)(byteValue1 + byteValue2); System.out.println("byteResult = " + byteResult); System.out.println(Byte.MAX_VALUE); //int 4바이트 long 8바이트 int intValue=Integer.MAX_VALUE ; // 여기서 +1 하면 Integer범위에서 벗어나기 때문에 쓰레기값이 된다. System.out.println("intValue = " + intValue ); long intValue2=Integer.MAX_VALUE + 1l ; // 자료형 int + long 하면 long으로 바뀌면서 계산하기 때문에 1l 을통해 long으로 계산된다. System.out.println("intValue2 = " + intValue2 ); for(int i='a'; i<='z'; i++) { System.out.printf("%c=%d\t", (char)i,i); } System.out.println(); float f = 20.5f; double d =f; f=(float)(d*f); System.out.println(f); //boolean booleanValue = (boolean)88; // boolean은 논리형, 88은 자료형이다. 그래서 형변환도 안먹는다. //boolean booleanValue = 88==9; 이건 된다. //boolean booleanValue = !88==9; 얘는 연산 우선순위 때문에 안된다. 따라서 //boolean booleanValue = !(88==9); 이렇게 바꿔주면 된다. } } | cs |
byte (1byte) < short (2byte) < int (4byte) < long (8byte) < float (4byte) < double (8byte)
1. byte 형변환
byte의 크기(Byte.MAX_VALUE)는 127까지이다. 따라서 byteValue1과 byteValue2를 더했을때 128 이상이 되면 쓰레기 값으로 0이 나오게 된다. 연산을 할때도 ( ) 안에 넣어서 연산을 하게 되면 자료형이 맞지 않으므로, 형변환을 해서 연산해주어야한다.
2. 자료형 Int와 Long
int는 4바이트, long은 8바이트 이므로, intValue2에서 연산을 할 때 1l 을 써준다면, 연산은 크기가 큰 long의 형태로 하기 때문에 int의 크기를 벗어나 연산이 가능한 것이다.
1. 자동(묵시적) 타입 변환
- 프로그램 실행 도중에 자동적으로 타입 변환이 일어나는 것
- 작은 크기를 가지는 타입이 큰 크기를 가지는 타입에 저장될 때 발생.
구분 : 메모리 크기
byte byteValue = 10;
int intValue = byteValue; // 이 경우 byte는 1바이트, int는 4바이트이므로, 자동 타입 변환 발생.
2. 강제(명시적) 타입 변환
- 큰 크기의 타입은 작은 크기의 타입으로 자동 타입 변환 불가.
- 캐스팅(Casting)을 통해 타입 변환이 이루어짐.
캐스팅(Casting)이란?
: 강제적으로 큰 데이터 타입을 작은 데이터 타입으로 쪼개어서 저장하는 것.
int intValue = 1030;
byte byteValue = (byte)intValue; // 강제 타입 변환(캐스팅)
728x90
반응형
'✨ Java > etc' 카테고리의 다른 글
자바(JAVA) - 가변인자 (variable arguments) 란 무엇인가? (0) | 2023.07.07 |
---|---|
자바(JAVA) - static(클래스)변수와 instance변수, local(지역)변수 (0) | 2023.07.06 |
자바(JAVA) - 제네릭(Generic) (0) | 2023.07.06 |
자바(JAVA) - 자바의 특징 (0) | 2023.07.06 |
자바(JAVA) - 상수(final)의 의미 (0) | 2023.07.05 |
댓글