오늘은 금요일이다!
게다가 청주에서 부모님이 올라오시는 날이니 깔끔하게 끝내고 가족끼리 오붓하게 지내야겠다.
오늘 저녁은 괜찮은 레스토랑을 예약해야겠다.
어디로 가야하지..
오라클 공식 Java API 문서
- https://docs.oracle.com/en/java/javase/17/docs/api/index.html
- API(Application Programming Interface):
프로그래밍 언어가 이미 가지고 있는 클래스, 기능 등을
사용자가 쉽게 사용할 수 있도록 제공하는 것
Object 관련 클래스
- Object.equals():
현재 객체와 다른 객체가 동등한지 비교하는 클래스- Object.hashCode():
객체의 해시코드를 출력하는 클래스- 해시(hash):
입력받은 문자열, 숫자를 특정한 문자열, 숫자로 반환- 해시코드(hashCode)
- 객체의 필드 값을 이용해서 일정한 길이의 숫자를 만드는 함수
- 주소가 "서울시 영등포구 의사당대로 1"이라면 해시코드는 "국회의사당"과 같은 개념
- 프로그램이 해시코드를 이용하기 때문에 객체의 검색 속도가 대폭 증가한다.
String 객체 생성 원리
- String은 불변성이 있어서 String 값을 변경할 경우 기존 객체가 변경되는 것이 아니라
새로운 객체를 생성해서 참조하게 됨- s1 방법으로 만들면 기존의 객체 생성 원리와 같은 원리로 메모리 할당
- s2 방법으로 만들면 Constant Pool 안의 String Pool에 객체가 생성됨
- 이때 Constant Pool 안의 값은 바꿀 수 없기 때문에
기존 객체를 변경하지 않고 새로운 객체를 만드는 것- garbage collector는 Constant Pool의 참조가 끊어지면 그때서야 지울 수 있게 됨
String s1 = new String("abc"); // 정석 String s2 = "abc"; // String만의 별도의 리터럴 표기법 부여
String 관련 메서드
- split: 각 입력값 사이에 구분자를 추가하여 배열로 만듦
String[] names = input.split("/");
- join: 배열의 요소를 하나의 문자열로 반환
String.join("/", String[]);