본문 바로가기

Java3

Call by Value와 Call by Reference 란? 개요 메소드에 전달되는 변수의 데이터 타입에 따라서 메소드 호출 방식이 달라집니다. 메소드를 호출하는 방식으로는 Call By Value와 Call By Reference 2가지가 있습니다. Call by Value 란? - 메소드에 값을 전달할 때, 변수의 값을 복사해서 메소드에 전달하는 방식 특징 - 저장소를 공유하지 않음 - 기본 자료형 (int, short, long, float, double, char, boolean) - 값을 복사해서 전달했으므로 받은 인자의 값을 변경하더라도 변경되지 않음. 장점 - 복사하여 처리하기 때문에 안전하다. 원래의 값이 보존이 된다. 단점 - 복사를 하기 때문에 메모리가 사용량이 늘어난다. 예시 class TestValue { int x; } public clas.. 2021. 6. 29.
GC(Garbage Collector) 란? 개요 시스템 엔지니어 일을 할 당시 자주 이슈가 되었던 GC에 대해서 공부한 후 정리하겠습니다. GC(Garbage Collector)란? JVM의 Heap 영역에서 사용하지 않는 객체를 제거하여 메모리 공간을 확보하는 데몬 스레드를 말합니다. * 가비지: 사용하지 않는 객체 GC의 종류 Serial GC - 싱글 스레드로 GC를 처리함 - 다른 GC에 비해 Stop-the-world 시간이 김 - JVM 옵션 -XX:+UseSerialGC - 순차적인 GC - Mark-Compact(Sweep 포함) 알고리즘 사용 Parallel GC - Java 8의 defailt GC - Young 영역의 GC를 멀티 스레드로 수행 - Serial GC에 비해 stop-the-world 시간 감소 Parallel .. 2021. 6. 19.
[Java] 자바 설치 및 환경 설정하기 소개글 최종적으로 Spring 서버를 구축하기 위한 목적으로 제일 먼저 자바 설치 및 환경설정부터 진행해볼까 합니다. Java 버전이 여러 종류가 있지만, Spring 공식 홈페이지에서 JDK 8 및 11을 권장하고 있었습니다. 그래서 그나마 최신 버전인 JDK 11 버전 설치 및 환경설정을 진행하겠습니다. OracleJDK VS OpenJDK 라이선스 이슈 OpenJDK 같은 경우 어떤 목적이던지 무료이며, Oracle JDK는 개인적인 목적으로 개발하는 경우에만 무료로 허용하게 되어 있습니다. 어떤 목적을 가지고 프로젝트를 개발하는지에 따라서 라이선스는 큰 영향을 주며, 이 부분은 본인의 목적에 따라 어떤 JDK를 사용할지 생각해보면 좋을 거 같습니다. 저는 개인 목적도 있지만 나중에 상업적으로도 고.. 2021. 6. 13.