본문 바로가기

Java7

[Java] Day 9 - JVM Memory ⭐⭐⭐ Java 개발을 하다 보면 다음과 같은 질문을 자주 만나게 됩니다.객체는 메모리 어디에 생성될까?new로 객체를 생성하면 내부적으로 어떤 일이 일어날까?Stack과 Heap은 어떤 차이가 있을까?user = null을 하면 객체는 바로 삭제될까?Garbage Collector는 어떤 기준으로 객체를 삭제할까?GC Root는 무엇일까?이번 Day 9에서는 JVM의 메모리 구조를 이해하고, Java 객체와 Reference가 실제 메모리에서 어떤 관계를 가지는지 학습했습니다.1. JVM Memory 구조JVM의 메모리 구조를 개념적으로 보면 다음과 같습니다.JVM ├── Heap ├── Stack ├── Metaspace └── PC Register각 영역의 역할은 다음과 같습니다.영역주요 역할Heap객체와.. 2026. 9. 15.
[Java] Day 8 - Exception Java 스터디 2주 차를 시작하면서 오늘은 Exception(예외 처리)에 대해 학습했습니다.백엔드 개발에서는 잘못된 요청, 존재하지 않는 데이터, 재고 부족, 인증 실패 등 다양한 예외 상황이 발생합니다.따라서 단순히 오류가 발생했을 때 프로그램을 종료시키는 것이 아니라, 예외를 적절하게 발생시키고 처리하는 방법을 이해하는 것이 중요합니다.오늘은 Java의 예외 구조부터 try/catch, finally, throw, throws, 그리고 실무에서 자주 사용하는 Custom Exception까지 정리했습니다.1. Exception이란?프로그램을 실행하다 보면 정상적인 흐름에서 벗어나는 상황이 발생할 수 있습니다.예를 들어 다음 코드를 실행하면:int result = 10 / 0;다음과 같은 예외가 발.. 2026. 9. 14.
[Java] Day 7 - Stream API 정리 Java Stream API 정리Java 학습 7일차.이번에는 실무 Java 코드에서 자주 사용하는 Stream API를 학습했다.Stream은 단순히 데이터를 반복 처리하는 문법이 아니라, 여러 데이터 처리 작업을 하나의 파이프라인으로 연결해서 표현할 수 있도록 해준다.오늘은 filter, map, flatMap, sorted, distinct, limit, groupingBy, toMap, reduce 등을 학습하고 상품 데이터를 대상으로 실습해 보았다.1. Stream이란?Stream은 Collection 등의 데이터를 처리하기 위한 API다.데이터를 직접 저장하는 자료구조가 아니라, 데이터를 원하는 형태로 가공하기 위한 처리 흐름이라고 이해하면 쉽다.List numbers = List.of(1, .. 2026. 9. 12.
[Java] Day 6 - Lambda + Functional Interface Java 학습 6일 차.이번에는 Java에서 함수형 프로그래밍을 지원하기 위해 제공하는 Lambda(람다)와 Functional Interface(함수형 인터페이스)를 학습했다.특히 Predicate, Function, Consumer, Supplier의 차이와 익명 클래스와 Lambda의 차이, Method Reference까지 정리했다.🎯 학습 목표Lambda의 개념을 이해한다.Functional Interface가 무엇인지 이해한다.Predicate / Function / Consumer / Supplier의 차이를 이해한다.익명 클래스와 Lambda의 차이를 이해한다.Method Reference를 사용할 수 있다.1. LambdaLambda란?Lambda는 메서드를 하나의 값처럼 표현할 수 있.. 2026. 9. 11.
[Java] Day 5 - HashMap + equals/hashCode Java/Spring 백엔드 개발자라면 반드시 이해해야 하는 주제 중 하나가 HashMap과 HashSet이다.특히 면접에서 다음과 같은 질문이 자주 등장한다.HashMap은 어떻게 데이터를 저장하는가?Hash collision이란 무엇인가?equals()와 hashCode()는 왜 같이 구현해야 하는가?HashSet은 어떻게 중복을 판단하는가?hashCode()가 같으면 같은 객체인가?HashMap의 Key를 수정하면 왜 문제가 발생하는가?이번 학습에서는 단순히 HashMap을 사용하는 방법이 아니라 HashMap 내부에서 데이터가 어떻게 저장되고 검색되는지를 이해하는 것을 목표로 했다.1. hashCode()란?hashCode()는 객체를 식별하기 위해 사용되는 정수값을 반환하는 메서드다.모든 Jav.. 2026. 9. 10.
[Java] Day 4 - Collection Framework Collection FrameworkJava에서 여러 개의 데이터를 관리할 때 사용하는 Collection Framework를 학습했다.이번 학습의 핵심은 단순히 ArrayList, HashMap 등의 사용법을 익히는 것이 아니라,"어떤 상황에서 어떤 Collection을 선택해야 하는가?"를 이해하는 것이다.🎯 학습 목표Java Collection Framework의 구조를 이해한다.List, Set, Map의 차이를 이해한다.ArrayList, LinkedList의 특징을 이해한다.HashSet, TreeSet의 차이를 이해한다.HashMap, TreeMap, LinkedHashMap의 차이를 이해한다.데이터의 특성에 따라 적절한 Collection을 선택할 수 있다.1. Collection Fra.. 2026. 9. 9.
[Java] Day 3 - Generic, Enum, Record 정리 1. Generic이란?Generic(제네릭)은 클래스나 메서드에서 사용할 타입을 미리 정해놓지 않고, 사용하는 시점에 타입을 지정할 수 있도록 하는 기능이다.쉽게 말하면,"이 클래스는 String을 사용할 수도 있고 Integer를 사용할 수도 있는데, 실제 어떤 타입을 사용할지는 사용하는 쪽에서 결정하자."라는 개념이다. Generic을 사용하지 않는 경우public class Box { private Object value; public void setValue(Object value) { this.value = value; } public Object getValue() { return value; }} 사용할 때는 다음과 같다. Box box .. 2026. 9. 7.
반응형