✍ Today I Learned
[타입 변환 Type Conversion]
- Casting이란? 데이터 타입을 변환하는 것이다. 형식과 크기가 다르기 때문에 변환이 필요할 때가 있다. 자바에는 2가지 유형의 Casting이 있다.
- Widening Casting (automatically) - 더 작은 유형을 더 큰 유형 크기로 변환(묵시적 형 변환)
byte -> short -> (char) -> int -> long -> float -> double - Narrowing Casting (manually) - 큰 유형을 작은 크기 유형으로 변환(명시적 형 변환)
double -> float -> long -> int -> char -> short -> byte
- Widening Casting (automatically) - 더 작은 유형을 더 큰 유형 크기로 변환(묵시적 형 변환)
int num1 = 1, num2 = 4;
double result1 = num1 / num2;
double result2 = (double) num1 / num2;
System.out.println(result1); // 0.0
System.out.println(result2); // 0.25
- 자바에서 산술 연산을 수행하고 얻는 결괏값의 타입은 언제나 피연산자의 타입과 일치해야 한다. 따라서 정확한 결괏값을 얻기 위해서는 피연산자 중 하나의 타입을 double형으로 강제 타입 변환해야 한다.
- 문자열 -> 숫자, 숫자 -> 문자열의 타입 변환은 다음과 같은 메서드를 사용한다.
// 문자를 숫자로
String str = "1234567";
int num = Integer.parseInt(str);
// 숫자를 문자로
int num = 1231567;
String str2 = String.valueOf(num2);
String str3 = Integer.toString(num2);
[연산자 Operator]
- 한글로도 클래스명과 변수를 선언할 수 있으나 컴파일 과정에서 한번 더 인코딩해야 하므로 사용하지 않는다.
- 자바스크립트와 대부분 비슷하나 === 연산자, ** 연산자는 존재하지 않는다.
- 비교 연산자와 논리 연산자의 리턴 타입은 boolean이다.
- &&, || 연산자는 연산의 방식을 잘 고려해야 한다.
- 자바에서는 char형 문자끼리도 크기를 비교할 수 있다.
- 삼항 연산자는 반드시 리턴을 받아주는 변수나 표현식이 필요하다.
instanceof
연산자는 참조 변수가 참조하고 있는 인스턴스의 실제 타입을 반환한다. 왼쪽 피연산자인 인스턴스가 오른쪽 피연산자인 클래스나 인터페이스로부터 생성되었으면 true를 반환하고, 그렇지 않으면 false를 반환한다.
[문자열 메서드 Stirng Method]
equals()
- 특정 문자 값과 동일 여부를 비교한다. String은 참조자료형으로 서로 다른 주소 값을 갖고 있기 때문에 문자 값을 비교할 때에는 반드시equlas()
메서드를 사용해야 한다.isEmpty()
- 비어있는 값인지 판단한다.compareTo()
- 문자 값을 비교하여 일치하지 않는 첫 번째 값의 아스키코드 차이 값을 리턴한다. (int 타입)
[조건문&반복문 Quiz]
- 정수 L 안에서 a, b의 배수를 구할 때에는 if/else문이 아닌 각각의 if문으로 연결해주어야 알맞게 카운트할 수 있다.
- 나눗셈의 결과를 리턴할 때는 언제나 데이터 타입에 유의하자.
- for문의 조건식에도 여러 데이터 타입을 적용할 수 있다! (char 등)
- 문제를 해결하는 데는 다양한 방법이 있다. 더 넓은 시야를 가지고 여러 방법을 시도해볼 것!
[배열 Array]
- 배열은 생성될 때 타입과 크기가 정의되어야 한다.
- 대괄호는 변수 명보다 타입 쪽에 작성하는 것이 좋다.
- 배열의 인덱스 번호는 0번부터 시작한다.
- 배열의 마지막 인덱스 번호는 항상 배열의 길이에서 -1을 한 값이다.
- 자바에서는 한 번 선언된 배열은 크기를 변경할 수 없다. (고정 배열)
boolean[] boolArr; // 배열 선언
boolArr = new boolean[5]; // 초기화 할 때 반드시 크기를 정의할 것!
String[] strs = new String[7]; // 배열인 변수의 이름은 복수형 사용을 권장
- 배열을 바로 출력하면 자바에서 표현하는 객체의 주소 값 형태가 리턴된다. 반복문을 이용하여 출력해야 한다.
- 다차원 배열이란? 2차원 이상의 배열을 의미하며, 배열 요소로 또 다른 배열을 가지는 배열을 의미한다.
// 2차원 배열의 선언 및 초기화
int[][] intArr2D = new int[2][3];
// 3차원 배열의 선언 및 초기화
int[][][] intArr3D = new int[2][3][1];
// 2차원 배열의 선언 및 초기화 with value
String[][] strArr = {{"a","b","c"},{"D","E","F"}};
'📝 TIL' 카테고리의 다른 글
[TIL] Java 메서드, 오버로딩, 재귀호출, 클래스 (0) | 2022.05.12 |
---|---|
[TIL] Java 버블정렬, 선택정렬, 퀴즈파티 (0) | 2022.05.11 |
[TIL] Java 개발 환경 설정, 데이터 타입, 입출력 (0) | 2022.05.09 |
[TIL] JS 제이쿼리 기본 문법 (0) | 2022.05.02 |
[TIL] JS 숫자 야구 게임 with 서버 (0) | 2022.05.01 |