본문 바로가기
728x90

개발공부/Java26

[JVM] Metaspace 옵션(MinMetaspaceFreeRatio/MaxMetaspaceFreeRatio) 관련 정리 내용 Metaspace 설정 관련하여 하기 내용에 대하여 어떤 의미인지 알고자함 - MetaspaceSize - MinMetaspaceFreeRatio - MaxMetaspaceFreeRatio ★ MetaspaceSize= (default value는 서버마다 다름) : 처음 초과할 때 가비지 수집을 트리거할 할당된 클래스 메타데이터 공간의 크기를 설정(최초 이값을 넘어가면 GC가 일어남) ★ MinMetaspaceFreeRatio (default 40) : 가비지 수집 후에 사용할 수 있어야 하는 메타스페이스 메모리 영역의 최소 백분율입니다. 남은 메모리 양이 임계값 미만이면 Metaspace 영역의 크기가 조정됩니다. ★ MaxMetaspaceFreeRatio (default 70) : 가비지 수집 후에.. 2022. 9. 14.
[Java] 17. 다형성(polymorphism) 예제 다형성을 활용한 멤버십 프로그램 확장 일반 고객과 VIP 고객 중간 멤버십 만들기 고객이 늘어 일반 고객보다는 많이 구매하고 VIP고객 보다는 적게 구매하는 고객에게도 혜택을 주기로 한다.. GOLD 고객 등급을 만들고 혜택은 다음과 같다. 제품을 살 때는 10프로를 할인해준다. 보너스 포인트는 2%를 적립해준다. - GoldCustomer.java package ch06; public class GoldCustomer extends Customer { double salesRatio; public GoldCustomer(int customerID, String customerName) { super(customerID, customerName); customerGrade = "Gold"; bonusRa.. 2022. 1. 26.
[Java] 17. 다형성의 의미와 다형성을 사용하는 이유 다형성(polymorphism) 이란? 하나의 코드가 여러 자료형으로 구현되어 실행되는 것. 같은 코드에서 여러 다른 실행 결과가 나온다. 정보은닉, 상속과 더불어 객체지향 프로그래밍의 가장 큰 특징 중 하나이다. 다형성을 잘 활용하면 유연하고 확장성있고, 유지보수가 편리한 프로그램을 만들수 있다. 다형성의 예 package ch06; import java.util.ArrayList; // 동물 클래스 정의 class Animal{ public void move() { System.out.println("동물이 움직입니다."); } public void eating() { System.out.println("밥을 먹다."); } } // Animal을 상속 받는 사람 클래스 정의 class Human e.. 2022. 1. 26.
[Java] 16. 메서드 재정의(Overriding)와 가상 메서드 원리 1. 하위 클래스에서 메서드 재정의하기 오버라이딩(overriding): 상위 클래스에 정의된 메서드의 구현 내용이 하위 클래스에서 구현할 내용과 맞지 않는 경우 하위 클래스에서 동일한 이름의 메서드를 정의하여 사용하는 것. VIPCustomer 클래스의 calcPrice()는 할인율이 적용되지 않기 때문에 재정의하여 구현해야 함. - VIPCustomer.java @Override public int calcPrice(int price) { bonusPoint += price * bonusRatio; return price - (int)(price * salesRatio); } > 하위 클래스에서 calcPrice라는 메서드를 재정의한다. *가격에 대한 할인율이 들어간다. > VIPCustomer.ja.. 2022. 1. 24.
[Java] 15. 상속에서 클래스 생성과 형 변환 1. 하위 클래스가 생성되는 과정 - 하위 클래스를 생성하면 상위 클래스가 먼저 생성 됨 - new VIPCustomer()를 호출하면 그 상위 클래스인 Customer()가 먼저 호출 됨 - 클래스가 상속 받은 경우 하위 클래스의 생성자에서는 반드시 상위 클래스의 생성자를 호출한다. 2. Super 키워드 - 하위 클래스에서 가지는 상위 클래스에 대한 참조 값 - super()는 상위 클래스의 기본 생성자를 호출 함. - 하위 클래스에서 명시적으로 상위 클래스의 생성자를 호출하지 않으면 super()가 호출 됨. (*이때 반드시 상위 클래스에 기본 생성자가 존재해야 함*) - 상위 클래스의 기본 생성자가 없는 경우 하위 클래스에서는 생성자에서 super를 이용해 명시적으로 상위 클래스의 생성자를 호출함.. 2022. 1. 24.
[JVM GC] GC 종류와 동작 방식과 G1GC 튜닝 포인트 1. JVM GC 동작 순서 GC를 수행할 때에는 아래와 같이 Three-Step으로 이루어진다. (1) Heap 영역에 존재하는 객체들에 대하여 접근 가능 여부를 확인한다. (2) GC Root에서 시작하여 참조값을 따라가며 접근 가능한 객체들에 Mark 하는 과정을 진행한다. (3) Mark되지 않은 객체들은 제거(Sweep) 대상이 되고 해당 객체들을 제거한다. * 아래는 GC Root에서 접근 가능한 객체를 판단하는 과정에 대한 설명 GC Root에서 참조하고 있는 객체를 찾고 또 그 객체가 참조하는 객체를 찾아가며 Mark 한다. Mark되지 않은 객체는 접근 불가능한 객체(Unreachable Object)로 판단하고 제거(Sweep) 된다. Sweep 과정에 의해 삭제되면 메모리 단편화가 발.. 2022. 1. 5.
728x90