문제 1: 추상 클래스에서 static 메서드?abstract class Parent { static void show() { System.out.println("Parent 클래스"); } abstract void display();}class Child extends Parent { void display() { System.out.println("Child 클래스"); }}public class Test { public static void main(String[] args) { Parent.show(); }} Q1: 실행 결과는?"Parent 클래스""Child 클래스"컴파일 에러 발생런타임 예외 발생더보기✅ 정답:..
문제 1: 접근제어자 & 상속class Parent { private void show() { System.out.println("Parent 클래스"); }}class Child extends Parent { public void show() { System.out.println("Child 클래스"); }}public class Test { public static void main(String[] args) { Parent obj = new Child(); obj.show(); }} Q1: 위 코드의 실행 결과는 무엇인가?Child 클래스 출력Parent 클래스 출력컴파일 에러 발생런타임 에러 발생더보기✅ 정답: 3) 컴파일 에러 발생💡 설명:Parent의 show..
개요싱글턴이 잘 와닿지 않는 개발자를 위한 포스팅 왜 우리는 자바를 배우고 있는 와중에 싱글턴 패턴을 배울까? 많은 디자인 패턴이 있지만 왜 싱글턴부터 배우게 될까?이건 추후에 자바로 쓰인 프레임워크인 스프링을 공부하기 때문에도 있습니다. 싱글턴 패턴은 한 번만 생성되는 객체를 보장하는 기법으로 많은 자바 개발자들이 싱글턴을 직접 구현하는 것보다 더 자주 접하는 경우가 있습니다.바로 스프링에서 제공하는 "싱글턴 빈" 개념입니다.스프링을 처음 접하는 주니어 개발자들은 "@Component, @Service, @Bean으로 등록하면 알아서 객체를 관리해준다!"라는 걸 배우지만, 이게 사실 싱글턴 패턴의 원리와 연결된다는 걸 놓치기 쉽습니다. 이 글에서는 싱글턴 패턴의 기본 원리를 먼저 이해한 후, 마지막에 ..
왜 이런 개념을 배워야할까? 개발을 하다 보면 단순히 코드를 작성하는 것뿐만 아니라, 코드를 수정하고 유지보수하는 과정이 점점 더 중요해진다는 것을 깨닫게 된다. 간단한 프로그램을 만들 때는 크게 상관없지만, 프로젝트가 커지고 팀 단위로 협업하게 되면 코드가 복잡해지고 수정이 어려워진다. 이때 객체 지향 프로그래밍(OOP)의 핵심 원칙과 패턴을 이해하고 활용하면 코드를 더 쉽게 이해하고, 수정할 때 최소한의 영향을 주면서도 확장 가능하게 만들 수 있다. 예를 들어, 단순히 extends 키워드를 사용해서 상속을 적용하는 것만으로는 좋은 OOP 설계를 했다고 할 수 없다. 상속을 왜 해야 하는지, 언제 하면 안 되는지, 그리고 더 좋은 방법은 무엇인지 고민해야 한다.이 글에서는 OOP의 주요 가치(커뮤니..
개요이번 포스팅에서 나오는 주요 키워드 함수 (Function)클래스 (Class)변수 (Variable)메서드 (Method)추상화 (Abstraction)캡슐화 (Encapsulation)JVM (Java Virtual Machine)컴파일 (Compile)런타임 (Runtime)static 키워드 (Static Keyword)this 키워드 (This Keyword)call by value / call by reference다형성 (Polymorphism)상속 (Inheritance)접근 제어자 (Access Modifier)가비지 컬렉션 (Garbage Collection) 본문Q1. 자바에서 함수가 무엇인지 설명하시오.더보기A1. 함수는 입력값을 받아서 출력값을 반환하는 기능을 수행하는 코드의 ..
개요 매운맛은 하단에2024.06.25 - [Java] - 자바가상머신의 메모리 구조: JVM Runtime Data Area 자바가상머신의 메모리 구조: JVM Runtime Data Area개요자바가 제공하는 메모리 관리는 할당과 해제를 하여 관리해야하는 다른 언어들과는 달리 개발자의 편의성 측면에서 많은 이점을 가져온다. 하지만 그 이면으로 내가 직접 관리를 하지 않기nstgic3.tistory.com2024.06.25 - [Java] - JVM스택메모리 구조 이해를 위한 바이트코드 예시 JVM스택메모리 구조 이해를 위한 바이트코드 예시개요JVM의 메모리 영역 구성 요소중 하나인 자바가상머신 스택에 대한 이해를 위해 예제를 통해 각 구역에 데이터가 할당되고 해제되는것을 javap 명령어를 통해 알..