HashMap - HashTable과 다르게 쓰레드 동기화를 하지 않음(single-thread에서 유용) - 기본적으로 해쉬값을 반환하는 해쉬함스로써 hashCode()를 사용함 - hashCode()의 반환형은 int임 - int는 32비트(4Byte)이고 2^32개로 완벽한 해쉬값을 만들 수 없음(표현해야 할 key가 2^32개 보다 많을 경우) - HashMap은 O(1)을 보장하기 위해 random access가 가능하게 하려면 HashMap의 크기는 2^32개 여야 함 - 그래서 보통 2^32보다 작은 숫자 M을 이용해 해쉬값을 다음과 같이 다시 정의함 (int index = X.hashCode() % M) - 여기서 M은 2의 지수승 형태임. 즉, M이 2^a 형태라면 hashCode()의 ..
Garbage Collection 이란?가비지 컬렉션은 메모리 관리 기법 중의 하나로, 프로그램이 동적으로 할당했던 메모리 영역 중에서 필요 없게 된 영역을 해제하는 기능이다. JVM에서 제공하는(JVM 중에서도 Execution Engine) 주요 기능 중 하나이다. 참고로 가비지 컬렉션은 JVM만의 기능은 아니다. Unreachable ObjectStack frame이 Stack에서 pop되면 해당 메소드가 참조하던 레퍼런스도 사라진다. 이때 heap에는 객체 데이터가 그대로 남게 되는데, 이를 unreachable object라 한다. 이러한 unreachable object는 가비지 컬렉터의 대상이 된다. 가비지 컬렉션 주요 과정가비지 컬렉터가 스택의 모든 변수를 스캔하면서 각각 어떤 객체를 참..
자바는 OS와 독립적으로 실행시킬 수 있다. 그 이유는 JVM이 OS에 의존적이기 때문인데, 즉, OS마다 다른 JVM이 존재하기 때문이다. C/C++는 링커, 로더를 포함한 운영체제 바로 위에서 직접적으로 실행되므로, 빠르고 가볍다. 하지만 개발에 있어서 그만큼 메모리 회수 등 개발자가 신경써야 할 부분이 많다. 또한 C/C++ 등의 전통적인 언어는 컴파일 플랫폼(CPU 아키텍처 16bit, 64bit 등 및 OS)에 따라 자료형형의 크기가 변한다. 그래서 윈도우에서 컴파일한 C/C++파일은 리눅스에서 안 돌갈 수도 있다. JVM은 이러한 문제를 근본적으로 해결한다. 자바 소스코드(.java)가 자바 컴파일러(javac.exe)를 거치고 나면, 자바 바이트코드(.class)를 생성하는데, 이 자바 바..
1. Java의 Call by Reference 자바는 기본적으로, 객체에 대해서는 call-by-reference이지만, 8개의 primitive type에 대해서는 call-by-value가 적용된다고 생각하면 편합니다. [예제1] public class HelloWorld { public static void main(String[] args) { HelloWorld b = new HelloWorld(); int a = 100; b.doSomething(a); // 100이라는 숫자 자체가 넘어간다. System.out.println(a); // 100이 출력된다. } private void doSomething(int a) { a *= 2; } } 위 예제1에서 변수 a를 초기화하면 메모리의 4b..
- Total
- Today
- Yesterday
- kafka
- docker
- github actions
- CICD
- GitOps
- K8s
- Linux
- db
- ci/cd
- 컨트롤러
- Stream
- 우분투
- Non-Blocking
- argocd
- container
- helm
- RDB
- Java
- 쿠버네티스
- golang
- Controller
- 카프카
- go
- Kubernetes
- spring
- jvm
- LFCS
- 코틀린
- rolling update
- ubuntu
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |