Language/Java

Language/Java

해시 충돌 횟수에 따라 달라지는 데이터 저장 방식 (cf. HashMap)

https://thin-azimuth-2a9.notion.site/106f4ee21c00807a958ecc9619df6e60?pvs=4

Language/Java

[Java] 제네릭 타입(Generic Type)으로 기본형(Primitive) 배열 타입 사용 & 람다(Lambda) 표현식과 'effective final' 변수

▼ Why ? What ?1일 1알고리즘 스터디에서 "데이터 분석"이라는 문제를 풀었는데, 해결 과정에서 제네렉 타입으로 기본형 타입을 무의식적으로 사용하지 않고 있었던 부분을 회고하고, 람다 표현식에서 외부 변수를 사용할 때 주의해야 할 점을 알게 되어 따로 정리해봤다.[ 해당 문제 ][ 1 Day - 1 Algo ] 알고리즘 문제 : "데이터 분석"▼ 제네릭 타입으로 기본형(Primitive) 배열 타입 사용 배열이 참조형 타입인 이유 ?일관된 메모리 관리: 참조형 타입(Reference Type)은 힙(Heap) 메모리에 저장되며, 배열도 마찬가지로 힙 메모리에 저장되기 때문에, 기본형 배열도 힙 메모리에 객체로 저장되어 일관된 메모리 관리가 가능해진다.다형성(Polymorphism): 배열이 객체..

Language/Java

[Java] Collection Framework, `Comparable` 인터페이스vs `Comparator` 인터페이스 (cf. 람다함수, 익명객체)

▼ Why ? What ?1일 1알고리즘 스터디에서 "스테이지 별 실패율"을 구해서 "실패율"을 기준으로 "스테이지 번호"를 "내림차순으로 정렬"하는 문제를 풀다가, Collection Framework의 구조, 익명객체와 람다함수의 사용, 그리고 `Comparator` 인터페이스와  `Comparable` 인터페이스의 차이점을 다시 헷갈려하는 것 같아서 따로 공부하며 정리해보았다.▼ Collection Framework Hierarchy of Colleciton Framework  Collection 인터페이스, Collections 클래스 ? `Collection` 인터페이스를 상속받는 인터페이스 : `List`, `Map`, `Set`, ...`Collections` 클래스 : 컬렉션들을 다루기 위..

Language/Java

[Java] 자바 스터디

[Tools] Java 스터디 시작 : "자바의 정석" & Variable (변수) [Tools] Java 스터디 시작 : "자바의 정석" & Variable (변수) ▼ Why ? 이번에 복학하면서 백엔드에 관심이 생겼고 Spring이라는 프레임워크를 다루기 전에 Java에 대한 개념을 잡고자 동아리에서 진행하는 자바 스터디에 참여하게 되었다. 스터디의 목표는 Spri ukym-tistory.tistory.com [Tools] Java 스터디 2주차 : Operator (연산자) [Tools] Java 스터디 2주차 : Operator (연산자) 🌑 연산자 (Operator) : 연산을 수행하는 기호 ✔️ 산술 연산자 ( + , - , * , / , % , > ) ✔️ 비교 연산자 ( > , ..

Language/Java

[JVM] (미완) 클래스 로더(Class Loader)의 클래스 로딩 및 초기화 과정

▼ Why ?이번에 '싱글톤 패턴' 에 대해 공부하다가 싱글톤 패턴을 구현하는 기법들에 대해서도 공부하게 됐는데, 여러 기법들 중 'LazyHolder' 기법은 중요한 기법이기도 하고 클래스 로더 매커니즘과 클래스가 로드되는 시점을 이용한 기법이기 때문에 그 부분들을 이해할 필요성을 느껴서 공부하게 되었다.▼ What ?우선 JVM(Java Virtual Machine)의 클래스 로더(Class Loader)가 어떤 방식으로 작업을 수행하는지를 공부해보고, 이를 통해 자바(Java)의 클래스들이 어떻게 메모리에 올라가고 클래스 멤버들이 언제 초기화되는지를 알아보려고 한다. ☕ 클래스는 언제 메모리에 로딩 & 초기화 되는가 ❓ (tistory.com)

Language/Java

[JVM] 내부 클래스를 static으로 선언해주는 이유

▼ Why ?이번에 '싱글톤 패턴' 에 대해 공부하다가 싱글톤 패턴을 구현하는 기법들에 대해서도 공부하게 됐다. 그 여러 기법들 중 'LazyHolder' 기법은 워낙 중요한 기법이기도 하고 클래스 로더 매커니즘과 클래스가 로드되는 시점을 활용한 기법이기 때문에, 그 부분들을 이해할 필요성을 느껴서 공부하게 되었다.▼ What ?우선 JVM(Java Virtual Machine)의 클래스 로더(Class Loader)가 어떤 방식으로 작업을 수행하는지를 공부해보고, 이를 통해 자바(Java)의 클래스들이 어떻게 메모리에 올라가고 클래스 멤버들이 언제 초기화되는지를 알아보려고 한다. ▼ 내부(Inner) 클래스를 static으로 선언해주는 이유 내부 클래스를 static으로 선언해주는 이유는 ?결론을 먼저..