https://github.com/JaeYeopHan/Interview_Question_for_Beginner/tree/master/Java
https://mangkyu.tistory.com/94
* Runtime data Area: 프로그램을 수행하기 위해 OS에서 할당받은 메모리 공간
Java에서는 개발자가 프로그램 코드로 메모리를 명시적으로 해제하지 않기 때문에 가비지 컬렉터(Garbage Collector)가 더 이상 필요 없는 (쓰레기) 객체를 찾아 지우는 작업을 한다.
'더이상 참조되지 않는 메모리'인 가비지를 청소해주는 JVM의 실행 엔진의 한 요소입니다. JVM은 new와 같은 연산에 의해 새롭게 생성된 객체들 중에서 더이상 참조되지 않는 객체를 정리해줍니다. 가비지 컬렉터는 Heap 영역을 위주로 탐색하며 메모리를 정리해줍니다.
상위 클래스의 메소드를 하위 클래스에서 재정의하여 사용하는 것
-> 다형성
메소드의 이름은 같지만 서로 다른 매개변수 형식을 가고 있는 메소드를 여러 개 정의하는 것
-> 프로그램의 가독성
public class Person {
public void print() {
System.out.println("나는 사람입니다");
}
}
public class Student extends Person {
// Overriding
public void print() {
System.out.println("나는 학생입니다.");
}
// Overloading
public void print(String name) {
System.out.println(name + "는 학생입니다");
}
}
* 메소드: 클래스 내부에 구현된 함수
// 클래스
public class Person {
private String name;
}
public class Main {
public static void main(String[] args) {
// 객체 = 클래스의 인스턴스
Person person;
// 인스턴스
person = new Person();
}
}
abstract class Animal {
abstract void bark();
void feed() {
.....
}
}
class Dog extends Animal {
Dog() {}
void bark() {
....
}
}
interface Vehicle {
abstract void run ();
abstract void move ();
}
class Car implements Vehicle {
Car() {}
void run() {
....
}
void move() {
....
}
}
참고
https://asfirstalways.tistory.com/158
https://d2.naver.com/helloworld/1329
https://mygumi.tistory.com/257