Java에 대해 설명해주세요. Java는 객체지향 프로그래밍 언어이며, 기본 자료형을 제외한 모든 요소들이 객체로 표현되고, 객체지향 개념의 특징인 캡슐화, 상속, 다형성이 잘 적용된 언어입니다. JVM위에서 동작하기 때문에 운영체제에 독립적이며 GC를 통한 자동적인 메모리 관리가 가능합니다. 그러나, JVM 위에서 동작하기 때문에 상대적으로 실행속도가 느리며 다중상속이나 타입에 엄격하고 제약이 많다는 단점이 있습니다. 오버로딩과 오버 라이딩에 대하여 설명해주세요 오버라이딩(Overriding)은 상위 클래스에 있는 메소드를 하위 클래스에서 재정의하는 것을 말하고, 오버로딩(Overloading)은 매개변수의 개수나 타입을 다르게 하여 같은 이름의 메소드를 여러개 정의하는 것을 말합니다. 객체지향 프로그..