object는 모든 클래스의 조상이다.
equals는 함수 오버라이딩을 통해서 자료값을 비교할 수 있는 기능이다.
toString은 함수 오버라이딩을 통해서 멤버변수들을 확인하는 등의 여러가지 용도로 쓸 수 있다.
String은 쌍따옴표로 넣는 다이렉트로 상수풀에 넣는 방법과, new로 객체를 생성해서 넣는 방법이 있다.
split(토큰)은 토큰을 기준으로 문자열을 나눠서 배열에 담는다.
valueOf는 문자열로 변환하는 용도다.
Stringbuffer와 StringBuilder
.concat()은 문자열을 이어붙인다.
데이터타입이 다른 연산을 하는 경우 컴퓨터는 형변환(casting)으로 한쪽으로 데이터타입을 맞추려한다.
String타입의 연산을 하는 경우, 연산을 할 때마다 계속 새로운 객체가 생성되어 값을 제어한다.
Hello World를 출력하려고 했는데, Hell World가 되어버렸다.
짜 여러분드을~? 원본보존의 법칙. immutable. 아시겠쬬오? 딱 이건데 여러분들?
append()는 추가하는 것이고, delete(n1, n2)는 인자부터 인자까지 삭제하는 것이다.
replace(n1, n2, str)은 인자부터 인자까지를 문자열로 대체하는 것이다.
reverse()는 문자열의 배열을 뒤집는 것이다.
substring(n1, n2)은 문자열을 인자부터 인자까지 추출하는 것이다.
String클래스를 배운 후 Math클래스를 배워보자.
Math클래스에는 수많은 메소드들이 있다.
.sin .cos .tan .pow .log .random .PI .sqrt등 기본적인 기능들이 있다.
다음으로 calendar클래스가 있다.
date클래스와 마찬가지로 날짜와 시간을 다룬다.
추상클래스이기 때문에 new로 인스턴스 생성이 불가하다.
calendar클래스는 .getInstance() 로 인스턴스를 생성한다.
YEAR, MONTH, HOUR, HOUR_OF_DAY, ZONE_OFFSET등 여러 값이 있다.
래퍼클래스와 제너릭에 대한 이해가 필요하다.
C언어에서의 포인터가 벽이라면 자바에서는 래퍼클래스와 제너릭이 있다.
래퍼클래스란 것은 Boolean, Character, Byte, Short, Integer, Long, Float, Double이 있다.
박싱과 언박싱, 그리고 .max() .min() .sum() .toBinaryString()
BigInteger라는 것이 있다.
java.math패키지에 있으며, 문자열을 담을 수 있는 클래스이다.
문자열을 담고 있기에 사칙연산이 안되서 내장 메소드를 사용해서 연산을 해야한다.
제네릭은 클래스나 인터페이스에 미리 타입을 인자로 설정해줌으로써 컴파일러가 컴파일 단계에서 좀 더 강하게 타입에 대한 검토를 거침으로써 실행시 에러가 발생하지 않도록 해주는 일종의 안전장치
인스턴스 객체 생성시에 타입을 국한하기에 값을 찾아올 때 형변환해주지 않아도 됌