T_era

[JAVA] 스코프와 형변환 본문

Programing/Java

[JAVA] 스코프와 형변환

블스뜸 2025. 3. 28. 16:57

스코프 : 변수가 존재하는 범위

  • 스코프 ← 이것을 굳이 신경쓰면서 코딩을 하는 건 비추천
  • 차라리 신경쓰기보단 변수를 그때 그때 필요한 영역에 작성하고 바깥에도 필요하면 점점 범위를 넓혀가는 것이 낫다
  • 물론 프로그램을 작성하기 전에 설계를 해놓고 위치를 정할 수 있으면 그게 좋긴하

형변환

//출력 값이 어떻게 될까

        int a = 40, b = 60;
        double c = a/b;
        System.out.println(c);

        c = (double) (a/b);
        System.out.println(c);

        c = (double) a/b;
        System.out.println(c);

        c = a / (double)b;
        System.out.println(c);

수의 관한 형변환은 알겠는데 문자나 문자열의 형변환은 존재하지 않는가

char[] c = {'a', 'b', 'c'};
        String str = "";

        str = c.toString();
        System.out.println(str);
        
        str = Arrays.toString(c);
        System.out.println(str);
        
        str = String.valueOf(c);
        System.out.println(str);
  • 문자열 형변환을 사용하는 예시들이다. 각자 결과가 다른데 어떻게 나올까

.toString()

  • toString은 최상위 클래스 Object에 정의된 메서드이다.
  • 인스턴스의 대한 정보를 문자열로 출력해 주는 것
  • 그래서 재대로 사용할려면 메소드를 재정의해서 사용해야 한다(이게 오버라이딩의 개념)

Array.toString(배열)

  • 배열의 내용을 문자열로 바꾸어 주는 메서드
  • 배열 전체의 내용을 변환해주기 때문에 ,나 []같은 구분을 같이해준다
  • 그래서 보통 배열 전체 내용을 ‘확인’하는 용도로 많이 사용
  • 다차원 배열(list[][])와 같은 배열은 Array.deepToString(배열)을 사용할 수 있다

String.valueOf(변환할 값)

  • 이 메서드는 굳이 문자가 아니여도 어떤 값이든 문자열로 변환해준다
  • 출력을 위해 문자열로 형변환을 해야하는 경우 이 메서드를 자주 쓴다
  • 값이 Null일 경우 똑같이 Null을 리턴해주기 때문에 예외처리를 사용할 수 있다

String, StringBuilder, StringBuffer

  • 셋다 문자열을 위한 클래스

String

  • String은 처음 선언을하면 해당 객체는 내용을 변경할 수 없다
  • 만약 값을 변경한다고 해도 프로그램 내부에서는 새로운 String을 선언한 것과 같은 동작을 한다
  • 그래서 파일경로, 네트워크 연결정보같은 보안이 중요한 문자열에 사용된다

StringBuilder 및 StringBuffer

  • 둘은 유사하지만 동기화 여부에 따라 사용처가 갈린다
  • 동기화란 서로 다른 스레드에서 해당 값을 접근할 수 있냐 없냐의 차이
  • 그래서 멀티 스레드에선 buffer, 단일 스레드에선 builder를 사용하는 것이 좋다

'Programing > Java' 카테고리의 다른 글

[JAVA] Comparator 구현하기  (0) 2025.03.29
[JAVA] HashSet이란???  (0) 2025.03.28
[JAVA] 반복문  (0) 2025.03.28
[JAVA] 조건문  (0) 2025.03.28
[JAVA] 연산자  (0) 2025.03.28