Development/Java 4

JVM GC

GC(Garbage Collection)란 JVM의 Heap 영역에서 사용하지 않는 객체를 삭제하는 프로세스를 말한다. ※ Java GC를 잘 알아야 하는 이유: 서비스 중에 문제가 생기면 대부분 GC의 메모리 파트에서의 발생 빈도가 높기 때문이다. 하지만 과거엔 서버를 사서 코어, 메모리 사이즈 등에 맞추어 이런 저런 GC 튜닝을 해야했지만 퍼블릭 클라우드로 바뀌면서 환경이 거의 통일 되었기에 요즘엔 GC를 튜닝할 일이 잘 없다고 한다. ※ 왜 자바에서만 특히 GC를 신경쓸까? 러스트 같은 언어도 GC가 있긴한데 아무때나 아무렇게 일어나도 괜찮은 모델이다. A a = new A(); B b = new B(); a = b; 대충 위와 같은 참조를 못하게 막아서 레퍼런스 카운트를 1로 강제하기 때문에 ST..

Development/Java 2023.02.03

JVM 메모리

JVM(Java Virtual Machine): 운영체제의 메모리 영역에 접근하여 메모리를 관리하는 프로그램 (메모리 관리, GC 수행) 자바 가상 머신으로 자바 바이트 코드(.class 파일)를 OS에 특화된 코드로 변환 바이트 코드를 실행하는 표준이자 구현체 JVM 밴더: 오라클, 아마존, Azul, ... JDK는 특정 플랫폼에 종속적 (JDK를 다운받을 때에 mac OS용, Windows용, Linux용이 따로 있다.) 자바는 플랫폼에 독립적이다. JRE(Java Runtime Environment) 자바 애플리케이션을 실행할 수 있도록 구성된 배포판 개발 관련 도구는 포함하지 않는다. (그건 JDK에서 제공) JDK(Java Development Kit) JRE + 개발에 필요한 툴(javac,..

Development/Java 2023.02.03

업 캐스팅 / 다운 캐스팅, 자동 형변환 / 강제 형변환, 오토 박싱 / 언 박싱

마치 스튜어디스, 스튜디어스? 불륜, 볼륨, 불륨처럼 갑자기 생각하려면 헷갈릴때가 있어서 귀찮지만 간단하게라도 짚고 넘어가고 싶었다. 업 캐스팅(자동 형변환) / 다운 캐스팅(강제 형변환) 업 캐스팅(Upcasting): 자식 클래스의 객체가 부모 클래스 타입으로 형변환 되는 것 자동 형변환: 낮은 자료형 -> 높은 자료형 [1] Child child = new Child(); Parent parent = child; // 업 캐스팅(자동 형변환) 자식타입 -> 부모타입 [2] byte smallBowl = 10; // 작은 그릇 int bigBowl = 10000; // 큰그릇 int result = bigBowl - smallBowl; // smallBowl이 int형으로 자동 형변환 되어 int끼..

Development/Java 2023.02.01