동시성 프로그래밍이란,
가변 객체내부 상태가 변경 가능한 객체멀티 스레드 환경에서 사용하려면 별도의 동기화 처리가 필요함ex) ArrayList, HashMap, StringBuilder, StringBuffer불변 객체내부 상태를 변경할 수 없는 객체멀티 스레드 환경에서도 안전하게 사용 가
overriding (재정의) 부모의 메소드를 재정의한다. 런타임에 선택된다.overloading (다중정의) 이름은 같지만 매개변수 유형이 다르거나, 이름은 같지만 매개변수 개수가 다른 메소드이다. 매개변수 개수가 같은 경우 어떤 메소드가 호출될지 헷갈린다.