이미 아는 내용들이 있긴 했지만 중간중간 몰랐던 내용들을 다시 알게되어서 모자란 지식을 채울 수 있었다.
long numL = 1234567890000L;
double numD = 128.4d;
float numF = 3.14f;
그 중 하나가 변수 값의 저렇게 알파벳을 넣는다는 것이였고, 여기에 들어가는 문자는 대문자로 하는것이 약속이라는 것을 알게되었다. 그리고 Final을 사용 시 해당 변수를 대문자로 전부 표기해야 된다는 암묵적인 룰을 알지 못했던 나에게 좋은 경험이 된 거 같다.
연산자를 하면서 각종 결과값들을 출력하기 위해서
int num1 = 12;
int num2 = 8;
char str = '%';
System.out.println(String.format("%d + %d = %d", num1, num2, num1 + num2));
System.out.println(String.format("%d - %d = %d", num1, num2, num1 - num2));
System.out.println(String.format("%d %d = %d", num1, num2, num1 num2));
System.out.println(String.format("%d / %d = %d", num1, num2, num1 / num2));
System.out.println(String.format("%d %s %d = %d", num1, str, num2, num1 % num2));
위의 코드 같은 계산을 하고 출력을 하는 과정을 가지기 위해서 format을 사용하였는데 이 때, 문제가 발생하였다 나머지를 출력할려면 어떻게 해야하는가에 대한 고민에 빠져서 검색을 해보았지만 이해를 하지 못하여서 Char 변수를 만들어 '%'를 문자데이터로 저장하여서 인용을 하는 방식으로 해결을 했다. 이것은 좀 더 검색해서 해결을 해 볼 생각이다.
위에서 연산자는 기존의 알고 있던 연산자들이라서 연산자에 대해서 더 기술할 것이 없다. 오히려 연산자가 아닌 것들에 관심이 가기 시작한다. 수학에서 내가 잘 모르는 공식들이 이미 함수로 존재할 것이기에 그것들의 활용이 더 궁금해진다.
형변환에는 암묵적과 명시적이 존재한다
이것들은 상황에 따라 쓰임이 다른데 문자열과 숫자를 더한다면 이를 문자열로 출력해버리는 것이 암묵적 형변환이다.
String str = "문자열";
int num = 20 ;
System.out.println(str+num);
위의 코드를 실행시킨다면 "문자열20" 이라는 결과를 얻을 수 있게 된다. 이것이 암묵적 형변환이다. 이 암묵적 형변환에는 데이터의 손실이 없다는 것의 중점을 둘 수 있다. 이를 통해 해당 변수는 더 큰 변수에 담길 수 있다는 것을 의미한다.
이 명시적 형변환은 데이터의 손실을 감수하고 사용자가 임의로 바꾸게 지정하는 것이다. 이 때 데이터의 손실을 볼 수 있는 코드는 다음과 같다
double PI = 3.14;
int Pint = (int)PI;
변수 'Pint' 출력한다면 3.14 라는 숫자가 아닌 형변환 과정에서 0.14가 사라지게 되어서 3이라는 숫자를 출력한다. 이처럼 명시적 형변환은 데이터의 손실을 동반할 수 있다. 그리고 형변환에는 이것뿐만 아니라 다양한 방법이 있는데 형을 변환하는 방법중에는 Integer.parseInt와 String.valueOf 같은 다양한 방법이 있는데 이는 프로그래머스 코드 테스트를 하며 알게된 방법들이다.
parseInt와 valueOf의 차이점은 parseInt의 경우 해당 메소드의 리턴 타입은 기본 자료형이고, valueOf의 리턴 타입은 객체이다. 결국 객체를 리턴 받아오냐 자료형을 리턴 받아오냐에 차이다. 상황에 따라 사용되는 것이 다를 것이니 이는 알아두면 좋을 거 같다.