[Java] 유용한 클래스들
programming/java

[Java] 유용한 클래스들


13. 유용한 클래스들


13.1 Object class


자바의 최상위 클래스. 11개의 method가 지원됨

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 문자배열에 저장되며 수정할 수 없음

String a = "hello";

참조변수 a는 String의 내용을 가리킴

String 내용은 final char[] value = { 'h', 'e', 'l', 'l', 'o' }; 형식으로 저장됨


a = "java";

새로운 String이 만들어지고 a는 기존의 "hello"가 아닌 "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 기본형 값을 문자열로 바꾸는 방법

String str1 = 100 + "";                   // 100 "100"으로 변환하는 방법1

String str2 = String.valueOf(100);      // 100 "100"으로 변환하는 방법2


13.2.7.2 문자열을 기본형 값으로 변환하는 방법

int i = Integer.parseInt("100");          // "100" 100으로 변환하는 방법1

int i2 = Integer.valueOf("100");         // "100" 100으로 변환하는 방법2(JDK 1.5 이후)

char c = "A".charAt(0);                  // 문자열 "A"를 문자 'A'로 변환하는 방법


기본형 → 문자열

문자열 → 기본형

    String valueOf(boolean b)

    String valueOf(char c)

    String valueOf(int i)

    String valueOf(long l)

    String valueOf(float f)

    String valueOf(double d)


    boolean Boolean.getBoolean(String s)

    byte Byte.parseByte(String s)

    short Short.parseShort(String s)

    int Integer.parseInt(String s)

    long Long.parseLong(String s)

    float Float.parseFloat(String s)

    double Double.parseDouble(String s)



13.2.8 String class의 method



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 클래스


수학계산에 유용한 변수들과 method로 구성됨

절대값 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