double num1 = 20;
int num2 = 20.5;
소스를 적고 실행해보면 위는 되고 아래는 안될것이다!
이유는 데이터 손실때문인데 그러므로 형변환 규칙을 따라야 한다.
아래는 형변환 규칙이다.
byte - short - int - long - float - double
char -ㄱ
이런 식으로 된다. 쉽게 예를 들어보면
int형 데이터는 long, float, double형으로 형변환이 가능하다는것이다.
long num = 1; 여기서 1은 int형 데이터이지만 num 변수의 자료형은 long형이다.
그래도 데이터 손실없이 형변환이 가능하다는 것이다.
하지만,
int num = 2.5; 여기서 2.5는 double형 데이터이고 num 은 int형 이므로 데이터 손실이 발생한다.
생각해보자 double은 8바이트, int는 4바이트이다 당연히 차이나는 4바이트는 물론이고 그 이외의 손실이 있을수도 있지 않겠습니까!!
요약해보면 형변환규칙에서 한 자료형이 그 자료형의 오른쪽의 자료형의 변수에 인풋값이 가능하다는것.
요약이 안된거 같은데 ㅋㅋㅋ int찍었으면 int는 int의 오른쪽에있는 long, float, double에만 형변환되어 인풋이 가능하다는것!
명시적 형변환도 있습니다. 데이터의 손실이 발생하더라도 문제없이 실행되는 문법입니다.
사용방법은
int num = (int)3.15
소수점이 떨어져 나가고 num에는 3이 저장됩니다.
연산자 굉장히 많죠 비슷한거도 있구.. 순서도 있고,
이렇답니다! 있다는 것만 알아두면 뒤에서 설명드립니다!
연산자 순서도 복잡한 수식 사용하시면 꼭필요합니다.
사칙연산은 쉽죠? 더하기 빼기 곱하기 나누기 .
여기에 %연산만 더해서 이건 나머지를 구하는거에요 5%3 은 결과값으로 2가나옵니다!
복합대입연산자는 a = a*15 이걸 a*=15 이렇게 줄여놓은거에요 a두번써야하니까 지저분해보이고 귀차나! 그래서 줄인듯 ㅋㅋ..
관계연산 <, >, <=, >=, ==, !=
악어입은 아시죠? == 이건 양옆이 같으면 참, 다르면 거짓을 리턴합니다. != 는 ==으로 했을때 나오는 결과의 반대 .
양옆이 같으면 거짓, 다르면 참을 리턴해줍니다!
논리연산 &&, ||, !
&&는 양옆이 모두 true일때, ||는 둘중하나라도 true일때, !는 느낌표 뒤에오는 결과를 뒤집어줍니다. !true 면 false와 똑같은 뜻이죠.
부호 연산 +,-
그냥 앞에 부호붙여주는거에요 +는 수학에서 생략가능하죠? 생략가능하구요~ -는 뜻그대로 마이너스로 바꿔줘요.
int n = 10 이 있으면 -n 을 출력하면 -10이 나옵니다.
증감연산 ++,--
변수 앞에 붙으면 증가가 제일 우선입니다. System.out.println(++n); 이면 11을출력, System.out.println(n++); 이면 10을 출력하고 11이 됩니다.
비트연산 &, |, ^, ~
&는 AND연산, |는 OR연산, ^는 XOR연산, ~는 모든비트를 반전시킵니다.
비트 쉬프트 연산 <<, >>, >>>
<<, >> 는 뒤에오는 숫자만큼 화살표 방향으로 비트를 이동합니다. 빈공간은 0으로 채웁니다. 음수일때 >>는 1로 채웁니다.
>>>는 >>와 똑같지만 음수일때 1로채우는 그런기능은 없습니다.
여기서 거의 안쓰는건 비트쪽 연산인거같아요 깊게 안해봐서그런가... 안쓰게되더라구요ㅋㅋ
그래도 아는게 힘이니까 무슨뜻인지는 알고가는게 좋을거 같습니다!
이번 포스팅은 여기까지 할게요 힘들게 달려왔네요 다음포스팅에서 봅시다!!!
안녕!
'JAVA' 카테고리의 다른 글
| JAVA 5 - 1. 실행 흐름의 컨트롤 (0) | 2018.04.04 |
|---|---|
| JAVA 5. 실행 흐름의 컨트롤 (0) | 2018.04.04 |
| JAVA 3. 변수, 자료형 (0) | 2018.04.03 |
| JAVA 2. system.out.println (0) | 2018.04.03 |
| JAVA 1. 시작 (0) | 2018.04.03 |