반응형
13. 유용한 클래스들
13.1 Object
Class
자바의 최상위 클래스. 11개의 메서드가 지원됨
https://docs.oracle.com/javase/8/docs/api
13.2 String
Class
13.2.1 문자열은 문자 배열(char[]
)로 처리됨
13.2.2 String
은 객체 자료형이지만 자주 사용되므로 new
키워드를 생략할 수 있음
// String str = new String("hello");
String str = "hello";
13.2.3 String
의 내용 비교
a.equals(b);
// 주솟값을 비교하므로 부정확한 결과가 나올 수 있음
a == b
(image)
13.2.4 String
의 사용 방법
13.2.4.1 new
연산자를 사용하지 않을 경우 Heap 내부의 String Constant Pool 에 생성되어 공유됨
String str = "java";
13.2.4.2 new
연산자를 사용하면 항상 새로운 문자열 인스턴스를 생성함
String str = new String("java");
13.2.4.3 Heap memory 의 구조
13.2.5 String
의 불변성(immutable)
문자열의 내용은 final 문자 배열에 저장되며 수정할 수 없음
/*
* 참조변수 a 는 String 의 내용을 가리킴
* String 내용은 final char[] value = { 'h', 'e', 'l', 'l', 'o' }; 형식으로 저장됨
*/
String a = "hello";
// 새로운 String 이 만들어지고 a 는 기존의 "hello" 가 아닌 "java" 문자열을 가리키게 됨
a = "java";
13.2.6 String
의 초기화
13.2.6.1 빈 문자열(""
) null
String a = "";
String a = null;
13.2.6.2 null
가리키는 내용(참조하는 내용)이 없음, 값이 미정인 상태
참조변수가 가리키는 내용이 없는 상태에서 연산을 하게 되면 NullPointerException
이 발생함
13.2.7 문자열과 기본형간의 변환
13.2.7.1 기본형 값을 문자열로 바꾸는 방법
// 100을 "100"으로 변환하는 방법1
String str1 = 100 + "";
// 100을 "100"으로 변환하는 방법2
String str2 = String.valueOf(100);
13.2.7.2 문자열을 기본형 값으로 변환하는 방법
// "100" 을 100 으로 변환하는 방법 1
int i = Integer.parseInt("100");
// "100" 을 100 으로 변환하는 방법 2 (JDK 1.5 이후)
int i2 = Integer.valueOf("100");
// 문자열 "A" 를 문자 'A' 로 변환하는 방법
char c = "A".charAt(0);
기본형 -> 문자열 | 문자열 -> 기본형 |
String valueOf(boolean b) | boolean Boolean.getBoolean(String s) |
String valueOf(char c) | byte Byte.parseByte(String s) |
short Short.parseShort(String s) | |
String valueOf(int i) | int Integer.parseInt(String s) |
String valueOf(long l) | long Long.parseLong(String s) |
String valueOf(float f) | float Float.parseFloat(String s) |
String valueOf(double d) | double Double.parseDouble(String s) |
13.2.8 String
클래스의 메서드
public class Replace {
public static void main(String[] args) {
String a = "java program";
// System.out.println(a.replace("a", "A"));
// System.out.println(a);
a = a.replace("a", "A");
System.out.println(a);
}
}
13.3 StringBuffer
, StringBuilder
13.3.1 String
처럼 문자형 배열(char[])을 내부적으로 가지고 있다.
13.3.2 String
클래스와 달리 내용을 변경할 수 있음(mutable)
StringBuffer sb = new StringBuffer("abc");
sb.append("123");
public class Append {
public static void main(String[] args) {
String a = "hello";
a = a + "java";
System.out.println(a);
StringBuilder b = new StringBuilder("hello");
b.append("java");
System.out.println();
}
}
13.4 Math
클래스
수학 계산에 유용한 변수들과 메서드로 구성됨
메서드 및 상숫값 | 예시 |
절대값 | Math.abs(-2); |
버림 | Math.floor(3.15); |
반올림 | Math.round(8.2); |
올림 | Math.ceil(3.1); |
제곱근 | Math.sqrt(100); |
큰값 | Math.max(10, 20); |
작은값 | Math.min(10, 20); |
원주율 | Math.PI; |
제곱 | Math.pow(10, 3); |
난수 | Math.random(); |
13.5 래퍼(wrapper) 클래스
13.5.1 기본 자료형을 클래스로 정의한 것. 기본형 값을 객체로 변환하여 다양한 기능 제공
Integer i = 10;
System.out.println(i);
13.5.2 내부적으로 기본형(primitive type) 변수를 가지고 있음
13.6 실습 예제
13.6.1 Obj.java
13.6.2 ToStr.java
13.6.3 ObjCast.java
13.6.5 Clone.java
13.6.8 StrBuilder.java
13.6.9 StrToken.java
13.6.11 LeapYear.java
13.6.12 Arr.java
13.6.13 ArrEqual.java
13.6.15 Rand.java
13.6.16 Wrapper.java
13.6.17 WrapChar.java
반응형