똑같은 기능의 객체를 매번 생성하기보다는 객체하나를 재사용하는 편이 나을 때가 많다. 재사용은 빠르고 세련되다. 특히 불변 객체는 언제든 재사용할 수 있다. 불변 객체 객체 내부의 변수값을 변경할 수 없는 객체 아래 코드를 보자. String s = new String("jordy"); 이 문장을 실행될 때마다 String 인스턴스를 새로 만든다. 이를 대신하여 직접 문자열을 할당할 경우에 기존 메모리에 저장되어있던 데이터를 재사용이 할 수 있다. hashcode(객체가 저장된 메모리 주소) 메서드를 사용하여 아래와 같이 비교해보면 확인 가능하다. String jordy = "niniz"; String scappy = "niniz"; System.out.println(jordy.hashCode() == ..

GeeksforGeek 사이트의 Java Memory Management란 글을 번역했습니다. 일부 내용을 의역했기 때문에 어색하거나 틀린 내용이 있으면 댓글에 남겨주시거나 위 링크에 접속해서 확인하세요. 번역 과정에서 일부 제가 강조하고 싶은 단어(몰랐던 단어)는 괄호로 표시 합니다. 번역이 힘들었던 부분은 아래에 원문을 별도로 기재합니다. JVM 메모리 구조: JVM을 프로그램이 실행되는 동안 사용되는 다양한 런타임 데이터 영역을 정의합니다. 몇몇 영역은 JVM에 의해 생성되는 반면 몇몇은 프로그램에서 사용되어지는 쓰레드에 의해 생성됩니다. 그러나 JVM에의해 생성된 메모리영역은 JVM이 종료될 때만 회수됩니다. 쓰레드의 데이터영역은 인스턴트화(instantiation)되는 동안 생성되고 쓰레드가 종..
클래스 내 특정 객체에 고정적으로 객체를 할당하는 것이 아닌 동적으로 필요에 따라 해야 할 때 유용하다. 인스턴스를 생성할 때 생성자에 필요한 자원을 넘겨주는 방식이다. 또한 불변을 보장하여 여러 클라이언트가 의존 객체들을 안심하고 공유할 수 있기도 하다. 의존 객체 주립이 유연성과 테스트 용이성을 개선해주기는 하지만, 의존성이 수 천개나 되는 큰 프로젝트에서는 코드를 어지럽게 만들기도 한다.
- Total
- Today
- Yesterday
- Delete
- Replication Controller
- JMM
- kubernetes
- Java
- POD
- Effective Java
- Java Memory Structure
- k8s
- JVM
- 자바 메모리 구조
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |