Java & Spring으로 시작하는 웹 프로그래밍 : 패스트캠퍼스 자바 강의 패스트캠퍼스 Spring 강의 03주차

shuz·2022년 9월 29일
0

객체 배열을 System.arrayCopy하면 주소 값 그대로 참조하는 다른 변수를 만들어 준다.
따라서 같은 인스턴스의 배열이다.

같은 값들을 가지는 다른 인스턴스의 배열을 만들기 위해서는 새로운 객체를 생성해서 일일히 넣어줘야 한다.

====================================================================

인터페이스를 사용하는 쪽을 클라이언트라고 한다.
인터페이스는 일종의 클라이언트 코드와의 약속이며 클래스나 프로그램이 제공하는 명세(specification)

====================================================================

자바는 다중상속을 허용하지 않는다.(오버라이드 하는 메서드의 모호성)
다른 언어의 경우 오버라이드를 허용하는 키워드로 virtual 키워드를 사용하는데,
자바의 모든 메서드는 virtual 메서드라고 한다.

====================================================================

상속 받은 클래스의 생성자 호출시 반드시 상위 클래스의 생성자를 호출한다.

====================================================================

상속이나 구현한 클래스는 상위의 클래스 타입으로 업캐스팅이 가능한데,
이 때 상위 클래스의 멤버만 사용이 가능하다.
메서드를 재정의 하는 것을 오버라이딩이라고 하고, 오버라이딩 한 경우 상위 클래스의 타입이라도 생성된 인스턴스의 클래스에 재정의된 메서드가 호출된다.

====================================================================

다른 인스턴스라도 메서드의 이름은 주소값을 나타내기에 같은 메서드가 호출되며,
인스턴스 생성시 해당 변수는 힙 메모리에 따로 저장되지만, 메서드는 맨 처음에 한 번 로드된다.
그래서 모든 쓰레드가 공유하는 영역을 메서드 영역이라고 이름지엇나 보다.

====================================================================


프로젝트 구조에 대한 이해가 부족했는데, 이런 naive한 형태가 도움이 될 수도 있을 것 같다.
같은 프로젝트에 있어서 그런지 경로가 없는데 잘 잡는다.

====================================================================

자바 8버전 이후 부터는 default 키워드를 사용하면 인터페이스에서도 메서드를 정의할 수 있다.(오버라이딩 가능)
static 메서드도 있으며, 9버전 이후부터는 private 메서드도 있다.
인터페이스의 모든 멤버 변수는 상수화 된다?(public static final)

profile
미비한 시작만큼 창대해지리라는 것을 믿지 언제나

0개의 댓글