T_era
[JAVA] 스코프와 형변환 본문
스코프 : 변수가 존재하는 범위
- 스코프 ← 이것을 굳이 신경쓰면서 코딩을 하는 건 비추천
- 차라리 신경쓰기보단 변수를 그때 그때 필요한 영역에 작성하고 바깥에도 필요하면 점점 범위를 넓혀가는 것이 낫다
- 물론 프로그램을 작성하기 전에 설계를 해놓고 위치를 정할 수 있으면 그게 좋긴하
형변환
//출력 값이 어떻게 될까
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 |