static 3

Java 객체지향 프로그래밍 static (class 변수, instance변수)

우리는 객체를 생성할 클래스 내의 필드에 변수들, 그리고 메서드를 지정해 줄 수 있는데 그 변수를 어떤식으로 활용하게 만들지를 static이라는 키워드를 통해 정할 수 있습니다. 그렇다면 static은 어떤 역할을 하는 키워드일까요? 먼저 static은 클래스의 멤버(필드,메서드,이너 클래스)에 사용하는 키워드입니다. 필드에는 클래스의 속성을 나타내는 변수들을 지정하는데 static을 붙이지 않은 변수인 경우 instance 변수라고 부르고, 그 변수를 사용하기 위해서는 객체를 생성해서 참조변수를 통해 이용해야 합니다(참조변수 이름. 필드변수이름). 반면에 static을 붙인 변수 , 즉 class 변수는 객체를 생성하지 않고 바로 (클래스의 이름.필드변수이름)를 통해 이용할 수 있습니다. # class..

Java/Java 2023.01.15

추상 클래스와 인터페이스의 차이는 무엇인가요

추상 클래스는 메서드 시그니처만 존재하고 바디가 선언되어있지 않은 추상 메서드를 포함하는 클래스이기에 바로 객체를 생성하는 것이 불가능합니다. 이는 , 상속관계에 있어 유연하게 대응하기 위해 사용될 수 있다는 장점이 있습니다. 또한 클래스 내에 추상 메소드가 하나 이상 포함되거나 abstract로 정의된 경우를 말하는데 반면에 인터페이스는 상수(static final)와 추상 메서드(abstract method)의 집합입니다 인터페이스는 추상 클래스보다 추상화 정도가 높으며 추상클래스와는 다르게 구현부가 있는 일반 메서드,일반 멤버 변수를 가질 수 없다는 특징이 있으며 모든 메소드가 추상 메소드로 구성되어져 있습니다. 즉, 추상클래스에는 추상 메소드가 아닌 일반 메소드도 포함 될 수 있다는 차이가 존재합..

기술면접 2023.01.11

자바의 메모리 영역에 대해 설명하시오

자바의 메모리 영역은 (Method, Heap, Stack)area / PC Register Native Method Stack 이렇게 5가지로 구성되어져 있습니다. 먼저 Method 영역은static, class 영역이라고도 불리는데 전역변수나 static으로 선언되는 것들을 메모리에 상주시킵니다. 주로 클래스 정보, static변수, 변수 정보, 메소드 정보 등을 저장합니다. 그래서 우리가 클래스를 만들면 클래스에 대한 정보가 Method Area에 들어가게 됩니다. Heap 영역은 인스턴스를 생성할 때 생성되는 메모리 형식인데 new를 사용하여 객체를 만들 때 저장되고 참조형인 class,interface,enum,Array 등 자료형도 같이 저장됩니다. 힙의 참조 주소는 Stack Area 에서 ..

기술면접 2023.01.11