위 자료는 자바 심화 05강 영상을 토대로 작성되었습니다.

C언어에서는 문자열을 chat형 배열로 표현하지만 자바에서는 문자열을 String이라는 클래스를 별도로 제공합니다. String 클래스에서는 문자열과 관련된 작업을 할 때 유용하게 사용 할 수 있는 다양한 메소드가 포함되어 있습니다. 이러한 String 클래스는 java.lang 패키지에 포함되어 제공됩니다.
String 인스턴스는 한번 생성되면 그 값을 읽기만 할 수 있고, 변경할 수는 없는데 이러한 객체를 자바에서는 불변 객체(immutable Object) 라고 합니다. 즉 자바에서는 덧셈(+) 연산자를 이용하여 문자열 결합을 수행하면, 기존 문자열의 내용이 변경되는 것이라 Stack 영역에 새로운 String 인스턴스가 생성됩니다.
자바는 이러한 단점을 보완하기 위해 StringBuffer, StringBuilder 객체를 제공합니다.

String 클래스로 생성자로 생성된 문자열에 덧셈(+) 연산자 이용 시, Stack 영역에 존재한 기존 String 변수는 GC(Garbage Collection) 에 의해 제거되고 새 String 인스턴스가 생성된다.
반면 StringBuffer 클래스로 생성자로 생성된 문자열에 덧셈(+) 연산자 이용 시, 기존 String 변수에 더해진다. 즉 GC에 의해 관리되지도 않으며 기존 변수를 계속 이용한다.


https://docs.oracle.com/javase/8/docs/api/java/lang/Math.html
Math 관련 함수는 훨씬 더 종류가 다양하니 궁금하신 분은 위 링크를 통해 확인하실 수 있습니다. 모든 메소드는 Static 으로 선언되어 Math 객체 생성 없이 Import 시, 바로 메소드명으로 사용 가능합니다.


자바의 기본타입을 객체타입으로 형변환이 필요한 경우 다음 클래스를 통해 변환이 가능합니다. 밑의 예제를 보시면 이해하기 편하실 겁니다.
