백엔드/JAVA(8)
-
인터페이스와 추상클래스의 차이
자바에서 다형성을 구성하는 데 사용되는 것이 바로 인터페이스와 추상클래스인데요 비슷한 것 같은 인터페이스와 추상클래스! 어떤 점이 다르기에 구분해서 사용하는지에 대하여 알아보겠습니다. ✏️ # 추상클래스 abstract 키워드를 이용하여 선언된 클래스나 내부에 추상 메서드를 한 개 이상 포함한 클래스 (일반메서드도 포함을 할 수 있음) 실체클래스들의 공통적인 특성을 추출해서 선언한 클래스 추상클래스의 추상메소드는 실체클래스에서 무조건 상속을 받아 재정의 해야 한다.(오버라이딩 필수) 직접 인스턴스를 생성 할 수 없음 단일 상속만 허용 클래스간의 연관 관계를 구축하는 것에 초점 인스턴스화할 수 없음 예시 코드 abstract class Shape { abstract void draw(); void disp..
2024.02.04 -
오버로딩(Overloading)과 오버라이딩(Overriding)
# 오버로딩 (Overloading) 클래스 내 이미 같은 이름의 메소드가 존재 하는 경우 매개변수의 개수 또는 타입이 다른 경우 같은 메소드명을 가진 메소드를 정의하는 것 메소드명, 매개변수 조건이 같고 리턴 값이 다른 경우 오버로딩 불가능 class Calculator { // 정수형 두 개를 더하는 메서드 int add(int a, int b) { return a + b; } // 실수형 두 개를 더하는 메서드 double add(double a, double b) { return a + b; } } # 오버라이딩 (Overriding) 상위(부모)클래스로부터 정의되고, 상속받은 메소드를 하위(자식) 클래스에서 동일한 시그니처(메소드명, 매개변수, 리턴값)를 가지고 재정의 하는것 class Anim..
2024.02.03 -
JVM 그리고 코드를 실행하는 과정에 대하여
자바 소스를 실행시킬 때 문조건 거치는 곳이 바로 JVM이죠? JVM 내부에서는 과연 무슨 일이 일어날까요?! 오늘은 JVM에 대하여 정리해보겠습니다. 👀 # JVM Java Virtual Machine : 자바 프로그램이 실행되는 가상 머신 운영 체제에 독립적이기 때문에 어느 OS에서든 실행이 가능하다. 자바 컴파일러에 의해 생성된 바이트 코드(. class파일)를 실행 가비지 컬렉션을 통하여 메모리 관리를 자동화 JVM이 관리하는 메모리 영역 : 힙(Heap), 스택(Stack), 메서드 영역(Method area) 가비지 컬렉션 : 사용하지 않는 객체들을 자동으로 식별하여 메모리에서 제거하는 프로세스 # 자바 코드 실행 과정 1. 자바 소스 컴파일 . java 확장자를 가진 소스 코드 파일을 자바 ..
2024.02.03 -
멀티모듈 적용하기
프로젝트에서 모든 서비스를 특성에 따라 분리하지 않는다면, 추후 이슈 발생 시 코드 복잡성으로 인한 유지 보수가 어려워집니다. 이런 상황을 방지하기 위해 우리가 사용할 수 있는 해결책은 멀티모듈, 즉 모듈화입니다. 멀티모듈을 도입하면 각 모듈은 특정 기능을 수행하며 독립적으로 빌드, 테스트, 배포할 수 있어 코드의 복잡성을 낮추고 유지 보수성도 향상됩니다. 수정사항을 배포할 때 모든 서비스를 전체적으로 배포할 필요 없이 필요한 모듈만 업데이트할 수 있어 효율적인 개발 및 배포가 가능하다죠? 그래서 오늘은 멀티모듈의 개념과 적용 방법에 대하여 알아보도록 하겠습니다😎 # Module(모듈) 프로그램을 구성하는 요소로 관련된 데이터나 함수를 하나로 묶은 단위 Ex. 함수, 클래스, 패키지, 라이브러리, 프레임..
2024.01.18 -
repeat() : 문자열 반복
프로그래머스 Lv0 문제를 풀다가 문자열을 반복하는 문제를 발견했다. 나는 당연하게도 for 문을 이용하여 문제를 제출 했는데 다른 사람들의 풀이에서 repeat 메서드를 이용한 풀이를 발견했다. repeat() 메서드가 무엇인지 알아보자. repeat() : 지정된 횟수만큼 문자열을 반복하여 리턴한다. // n의 값이 0인 경우 빈 문자열이 반환된다. // n의 값이 0이 아닌 경우 n만큼 반복된 문자열이 반환된다. loopStr = "string".repeat(n);
2023.12.02 -
오버라이딩을 구현할 때 @Override 어노테이션을 사용하는 이유
오버라이딩 (overriding) 오버라이딩이란 부모 클래스에서 사용되고 있는 메서드를 자식 클래스에서 같은 메서드명, 같은 매개변수의 개수와 타입으로 재정의한 것을 의미 어노테이션 (Annotation) 어노테이션이란 사전적 의미로는 주석, 자바에서는 코드 사이에 @ 기호를 앞에 부여 의미를 부여하는 메타데이터 종류에는 표준 어노테이션 / 메타 어노테이션 / 사용자정의 어노테이션이 있다. * 메타데이터 : 애리케이션이 처리해야 할 데이터가 아닌 컴파일 과정과 실행 과정에서 코드를 어떻게 컴파일하고 처리할 것인지 알려주는 정보. @Override 어노테이션 @Override 어노테이션이란 자바에서 메서드 오버라이딩을 명시적으로 표시하고 검사하는데 사용되는 어노테이션으로 메서드 선언 코드 위에 추가되며 컴..
2023.10.24