java.lang패키지와 유용한 클래스
- Object클래스: 모든클래스의 최고 조상. 오직 11개의 메서드만 가지고 있다.
- equals(Object obj): 객체 자신(this)과 주어진 객체(obj)를 비교한다. 같으면 true, 다르면 false
Object클래스의 equals()는 객체의 주소를 비교(참조변수 값 비교)
- hashCode(): 객체의 해시코드를 반환하는 메서드
객체의 주소를 int로 변환해서 반환
equals()를오버라이딩하면, hashCode()도 오버라이딩해야한다
equals()의 결과가 true인 두객체의 해시코드는 같아야 하기 때문*
- toString(): 객체를 문자열로 변환하기 위한 메서드
- String 클래스: 데이터(char[])+메서드(문자열 관련)
내용을 변경할 수 없는 불변 클래스
덧셈 연산자를 이용한 문자열 결합은 성능이 떨어짐-> 스트링버퍼사용
String str="abc"; 공유함
String str=new String("abc"); 항상 새로운 객체 생성
문자열 리터럴은 프로그램 실행시 자동으로 생성됨(constant pool에 저장)
- 빈문자열"" 내용이 없는 문자열. 크기가 0인 char형 배열을 저장하는 문자열
- join() 여러 문자열 사이에 구분자를 넣어서 결합
String animals= "dog,cat,bear";
String[] arr = animals.split(",");
String str = String.join("-",arr);
- 숫자를 문자열로: 숫자+""; / String.valueOf(i)
- 문자열을 숫자로: Integer.parseInt("100");/Integer.valueOf("100");
- 배열은 길이 변경불가 공간이 부족하면 새로운 배열 생성해야
- StringBuilder 동기화 안됨
- StringBuffer 동기화 되어있음 데이터 보호 멀티쓰레드에 안전
- 래퍼 클래스: 8개의 기본형을 객체로 다뤄야할 때 사용하는 클래스