Java

Java

[JAVA] 추상 클래스와 인터페이스에 대해 알아보자

면접 준비를 하거나 Spring으로 프로젝트를 개발하면서 추상 클래스나 인터페이스에 대한 개념을 많이 보곤 했다. 하지만 정확히 어떤 것을 의미하는지 제대로 알지 못하고 단순히 암기만 하면서 개념을 이해하려고 노력했다.김영한님 강의를 들으면서 해당 개념을 더 정확히 알고 오래 기억하고자 글을 남기게 됐다. 인터페이스를 제대로 알기 전에 추상 클래스 개념을 먼저 알아야 한다. 🔍 추상 클래스란?동물(Animal)은 자식 클래스로 강아지, 고양이, 사자 등을 가질 수 있다.이때 동물은 추상적인 개념이므로 실제로 직접 인스턴스를 생성해 사용할 일이 없다. 따라서 추상적인 개념을 가진 부모 클래스를 직접 사용하여 활용하는 것을 방지하기 위한 목적으로 추상 클래스를 사용한다.정확하게는 다음 두 가지 문제를 방지..

Java

[JAVA] 자바는 다중 상속을 지원하지 않는다!

🔍 자바는 다중 상속을 지원하지 않는다자바는 다중 상속을 지원하지 않는다. 따라서 extend 대상은 하나만 선택할 수 있다.위 그림과 같이 만약 비행기와 자동차를 상속 받아 하늘을 나는 자동차(AirplaneCar)를 만든다고 했을 때, 다중 상속을 사용하게 되면 AirplaneCar 입장에서 move()를 호출할 때 어떤 부모의 move()를 사용해야 할지 애매한 문제가 발생하게 된다. 이 문제를 다이아몬드 문제라고 한다.  또, 다중 상속을 사용하면 클래스 계층 구조가 매우 복잡해질 수 있기 때문에 자바는 클래스의 다중 상속을 허용하지 않는다. 대신 인터페이스의 다중 구현을 허용하여 이런 문제를 피할 수 있다.

Java

[JAVA] main() 메서드는 정적 메서드이다!

현재 자바를 처음부터 자세히 공부를 하면서 static 변수와 메서드에 대해 학습하고 있다.평소에 psvm이라는 명령어는 매우 많이 쳤지만, main에 static이 붙어있는 이유에 대해 크게 신경쓰지 않았고 드디어 의미에 대해 정확히 알게 되어 글을 쓰게 됐다! 🔍 static 메서드란?멤버 메서드에는 다음과 같은 것들이 있다.인스턴스 메서드: static이 붙지 않은 멤버 메서드static이 붙지 않은 멤버 메서드는 인스턴스를 생성해야 사용할 수 있고, 인스턴스에 소속되어 있다. 따라서 인스턴스 메서드라 한다.클래스 메서드: static이 붙은 메서드클래스 메서드, 정적 메서드, static 메서드 등으로 부른다.static이 붙은 멤버 메서드는 인스턴스와 무관하게 클래스에 바로 접근해서 사용할 수..

Java

[JAVA] 자바의 메모리 구조에 대해 알아보자

아예 모르는 내용은 아니지만, JAVA에 대해 다시 공부하면서 정확하고 더욱 오래 기억하고자 기록하게 됐다. 🔍 자바의 메모리 구조메서드 영역(Method Area): 프로그램을 실행하는데 필요한 공통 데이터(클래스 정보, static 영역, 런타임 상수 풀)를 관리한다. 해당 영역은 프로그램의 모든 영역에서 공유한다.클래스 정보: 클래스의 실행 코드(바이트 코드), 필드, 메서드와 생성자 코드 등 모든 실행 코드가 존재static 영역: static 변수들을 보관한다.런타임 상수 풀: 프로그램을 실행하는데 필요한 공통 리터럴 상수를 보관한다.스택 영역(Stack Area): 자바 실행 시, 하나의 실행 스택이 생성된다. 각 스택 프레임은 지역 변수, 파라미터, 중간 연산 결과, 메서드 호출 정보 등을..

당찬 뱁새
'Java' 태그의 글 목록 (2 Page)