본문 바로가기

Java의 정석/java.lang 패키지 & 유용한 클래스9

문자열과 숫자 변환, 오토박싱 & 언박싱 ch9 - 28 ~ 31 문자열과 숫자 변환, 오토박싱 & 언박싱 ch9 - 28 문자열을 숫자로 변환 하기. - 문자열을 숫자 (or 래퍼클래스) 로 변환 하는 다양한 방법. int i = new Integer("100").intValue(); // floatValue(), longValue(), .. >> 래퍼 클래스인 Integer 100 에 intValue() 메서드를 사용해서 원시타입인 int 형의 데이터로 바꿀 수 있다. int i2 = Integer.parseInt("100"); // 주로 이 방법을 많이 사용 한다. Integer i3 = Integer.valueOf("100"); // parseXxx("str") 메서드가 귀찮으면, valueOf("str") 사용 하면 된다. 대신에, p.. 2023. 9. 2.
래퍼 클래스, Number 클래스 ch9 - 25 ~ 27 래퍼 클래스, Number 클래스 ch9 - 25 래퍼 (wrapper) 클래스 기본형 (원시타입) 을 감싸는 클래스를 의미. - 8개의 기본형을 객체로 다뤄야 할 때 사용 하면 된다. public final class Integer extends Number implements Comparable { .. private int value; // 기본형 (int) 을 감싸고 있다. .. } 대부분은, 기본형 이름에 소문자를 대문자로 바꾸면 래퍼 클래스 이다. boolean -> Boolean char -> Character byte -> Byte short -> Short int -> Integer long -> Long float -> Float double -> Double .. 2023. 9. 2.
StringBuilder, Math 클래스 ch9 - 21 ~ 24 StringBuilder, Math 클래스 ch9 - 21 StringBuilder - StringBuffer 와 완전히 유사 하다. - StringBuffer 는 동기화 되어 있다. 멀티 스레드에 안전 (thread-safe) [ 참고 ] 싱글 스레드와 멀티 스레드가 있다. 싱글 스레드 : 한번에 1개의 작업. 멀티 스레드 : 한번에 n개의 작업. 지금까지 작성했던 코드 작성은 싱글 스레드의 개념 이였다. 카카오톡을 예시로 들어보자. 친구가 파일을 보내주면, 그 파일을 받고, 다운로드를 할 수 있다. 근데, 파일을 다운로드 하는 동안, 채팅을 할 수 없다면 ? 또는, 채팅을 하는 도중에는, 파일을 다운로드를 할 수 없다면 ? 즉, 동시에 작업을 진행 할 수 없다면 ? => 싱글.. 2023. 9. 2.
StringBuffer 클래스의 메서드 ch 9 - 19 ~ 20 StringBuffer 클래스의 메서드 ch9 - 19 StringBuffer의 생성자와 메서드 (1 / 4) 메서드 : StringBuffer() >> 16문자를 담을 수 있는 버퍼를 가진 StringBuffer 인스턴스를 생성. 예제 : StringBuffer sb = new StringBuffer(); 결과 : sb = "" 메서드 : StringBuffer(int length) >> 지정된 개수의 문자를 담을 수 있는 버퍼를 가진 StringBuffer 인스턴스를 생성. 예제 : StringBuffer sb = new StringBuffer(10); 결과 : sb = "" 메서드 : StringBuffer(String str) >> 지정된 문자열 값 (str) 을 갖는 .. 2023. 9. 2.
StringBuffer 클래스 (문자열 저장 & 다루기) ch9 - 15 ~ 18 StringBuffer 클래스 ch9 - 15 StringBuffer 클래스 (문자열을 저장 & 다루기 위한 클래스) - String 처럼 문자형 배열 (char[]) 을 내부적으로 가지고 있다. public final class StringBuffer implements java.io.Serializable { private char[] value; .. } - 그러나 String과 달리 내용을 변경 할 수 있다. (mutable) StringBuffer sb = new StringBuffer("abc"); sb (0x100) ---> 'a' 'b' 'c' .. ( char[] ) sb.append("123"); // sb의 내용 뒤에 "123" 을 추가. (내용 변경 가능) .. 2023. 9. 1.
StringJoiner, 문자열과 기본형 변환 ch9 12 ~ 14 StringJoiner, 문자열과 기본형 변환 ch9 - 12 join() 과 StringJoiner - join() 메서드는 여러 문자열 사이에 구분자를 넣어서 결합 한다. (static 메서드 이다) 예시 ) String animals = "dog,cat,bear"; String[] arr = animal.split(","); // 문자열을 ',' (콤마) 를 구분자로 나눠서 배열에 저장. String str = String.join("-", arr); // 배열의 문자열을 '-' (하이픈) 으로 구분해서 결합. System.out.println(str); // dog-cat-bear // ("dog" + "-" + "cat" + "-" + "bear") 예시 01 ) impor.. 2023. 9. 1.
String 클래스, 문자열 비교, 빈 문자열 ch9 - 7 ~ 10 String 클래스, 문자열 비교, 빈 문자열 ch9-7 String 클래스 문자열을 다루기 위한 클래스 이다. - String 클래스 = 데이터 (char[]) + 메서드 (문자열 관련) (멤버변수로 char[] 을 가진다. (문자 배열) ) - 내용을 변경할 수 없는 불변 (immutable) 클래스. ex) String a = "a"; String b = "b"; a = a + b; >> "ab" (문자열 결합) a --- 0x100 b --- 0x200 ab --- 0x300 결합된 문자열 "ab" 는 새롭게 new 된 아이이고, 얘를 변수 a에 대입 하는 개념. - 덧셈 연산자 (+) 를 이용한 문자열 결합은 성능이 떨어 진다. (계속 새로운 객체를 생성 하는 개념이니까).. 2023. 8. 31.
hashCode() 메서드, toString() 메서드 hashCode(), toString() ch9-4 hashCode() - 객체의 해시코드 (hashcode) 를 반환 하는 메서드. 해시코드는 정수값 이다. (해싱 알고리즘) - Object 클래스의 hashcode() 는 객체의 주소를 int로 변환 해서 반환 한다. - equals()를 오버라이딩 하면, hashCode()도 오버라이딩 해야 한다. ★ equals()의 결과가 true인 두 객체의 해시코드는 반드시 같아야 한다. (당연한 말) 즉, equals() 메서드를 재정의 해서, 두 객체가 같아서 true를 반환 하면, 두 객체의 해시코드가 반드시 같게 된다. ch9-5~6 toString(), toString()의 오버라이딩 - toString() : 객체를 문자열 (String) 으로 변.. 2023. 8. 30.
Object 클래스, equals() 메서드 Object 클래스, equals() ch9-1 Object 클래스 - 모든 클래스의 최고 조상. 오직 11개의 메서드만 가지고 있다. (인스턴스 변수, 클래스 변수가 존재 하지 않는다) - notify(), wait() 등은 스레드와 관련된 메서드 이다. Object 클래스의 메서드는 다음과 같다. protected Object clone() : 객체 자신의 복사본을 반환. (오버라이딩 해서 사용 할 때, 접근제어자는 public으로 변경해줘야 한다) public boolean equals(Object obj) : 객체 자신과 객체 obj가 같은 객체인지 알려 준다. (같으면 true를 반환) protected void finalize() : 객체가 소멸될 때 가비지 컬렉터에 의해 자동 호출 된다. 이.. 2023. 8. 30.