📝 TIL

[TIL] Java 타입 변환, 연산자, 조건문, 반복문, 배열

오늘 ONEUL 2022. 5. 10. 22:40

✍ 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
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"}};