형 변환이란 데이터의 타입을 변경하는 것.
int 200과 float 200.0의 이진수값은 다르다!
int 200 - 00000000 00000000 00000000 11001000
float 200 - 01000011 01001000 00000000 00000000
두 개의 이진수 값이 다르기 떄문에 int값과 float 값을 더할 경우 한 쪽의 데이터 타입을 다른쪽의 데이터 타입으로 변환해주어야 하는데 Java에서는 자동으로 변환해줌 -> 이것을 자동 형변환 이라고 부름.
byte 타입은 short가 될 수 있지만 short는 byte 타입이 될 수 없다. long은 float가 될 수 있지만, float는 long이 될 수 없다.
(이건 따로 공부해야할듯? 왜 안되는지 -> 자동 형변환만 자동으로 안되는듯)
상수 연산 형변화 예제
int a = 3;
float b = 1.0F;
double c = a + b;
위의 연산은 두 번의 형 변환이 일어난다.
a+b 에서 int a 가 float a로 형변환이 발생하고, a+b가 double형에 담기면서 float a+b -> double a+b 로 형변환이 발생한다.
float a = 100.0; -> 에러 실수는 기본 double형
int b = 100.0F; -> int형에 float형 상수를 입력하려고 했기때문에 에러
float a = (float)100.0; -> 소스코드는 뒤에서부터 읽기떄문에 다음의 과정을 거침
1.double형 100.0을 확인하고 2. (float)를 만나서 100.0이 float형이됌 3. float 형 100.0이 float a에 저장
int b = (int)100.0F;
float형 100.0을 확인하고, (int) 형병환에 의해 float 100.0이 int형으로 형변환 int b 에 저장
연산자란 특정한 작업을 하기 위해서 사용하는 기호를 의미.
불린(Boolean)은 참과 거짓을 의미하는 데이터 타입으로 bool이라고도 부른다. 불린은 정수나 문자와 같이 하나의 데이터 타입인데, 참을 의미하는 true와 거짓을 의미하는 false 두 가지의 값을 가지고 있다. 아래는 비교 연산자들에 대한 설명이다.
좌항과 우항을 비교해서 서로 값이 같다면 true 다르다면 false가 된다. '='이 두 개인 것을 주의하자. '='이 하나인 것은 대입 연산자로 우항의 값을 좌항의 변수에 대입할 때 사용하는 것으로 의미가 완전히 다르다
중요 - vaule가 들어갈 때는 같은 값인지 비교하는 것 이지만
변수가 들어갈 경우 값이 아니라 변수들이 서로 타입이 동일한 객체인지 알아내기 위해 사용되는 연산자이기 때문에 문제발생가능!
좌항과 우항의 값이 같지 않을경우 true를 반환, == 와 반대되는 결과를 보여줌
좌항이 우항보다 크다면 참, 그렇지 않다면 거짓임을 알려주는 연산자다.
< 는 >와 반대의 의미를 가짐.
좌항이 우항보다 크거나 같다. <= 는 >=와 반대의 의미를 가짐
.equals는 문자열을 비교할 때 사용하는 메소드다.
문자열을 비교할 때는 == 대신 .equals 를 쓰도록하자.
==를 사용할 경우 값이 같더라도 동일한 타입의 객체가 아닐경우 false 반환가능
컴공 전공자 기준에서 헷갈리거나 잊으면 안되는 개념들에 대해서만 작성하고 있기때문에 이미 잘 알고있거나 필요없는 내용을 작성하지 않고있으니 만약 게시글을 보고계신 비전공자분이 있다면 '생활코딩'을 보면서 제 글을 읽으시면 좋을것같습니다.
github 블로그 만들기 너무 어렵다... 일단 velog쓰면서 하는법 찾다가 이사해야겠다