
https://journaldev.nyc3.digitaloceanspaces.com/2014/05/Java-Memory-Model.png
GC는 주기적으로 수행되므로 성능에 좋지않은 영향을 끼칠 수 있다.
GC가 수행되면 stop-the-world가 발생하고 GC수행이외의 쓰레드는 모두 멈추게 된다. (=어플리케이션 실행을 멈추는것)
어떤 GC알고리즘을 사용하더라도 stop-the-world가 발생한다. 보통의 GC튜닝을 하는 궁극적인 목표는 stop-the-world시 발생하는 어플리케이션이 멈추는 시간을 줄이는것을 뜻한다. stop-the-world가 발생하면 gc가 작동하는 이외의 쓰레드는 모든 작업을 멈추기 때문에 실시간 처리 및 분산처리 어플리케이션에서는 큰 사이드 이펙트를 발생 시킬 수 있다.
heap에 저장되는 참조 자료형은 동적생성(→ 효율관리는 gc)하며, 객체생성으로 여러곳에서 참조할 수 있다. 하지만 스택에 저장되는 기본자료형의 경우 정적인 생명주기를 가지며 스코프가 종료되면 사라지기 때문에 스택에 쌓인 순서로 사라지기 적합해서 스택에 쌓인다.
public class JavaLangNumber {
public static void main(String[] args) {
JavaLangNumber javaLangNumber = new JavaLangNumber();
javaLangNumber.numberTypeCheck();
}
private void numberTypeCheck() {
String value1 = "3";
String value2 = "5";
Integer refInt1 = Integer.valueOf(value1);
Integer refInt2 = Integer.valueOf(value2);
System.out.println(refInt1 + refInt2 + "7");//87
}
}
같은 패키지에 있는 클래스를 제외하고, 별도로 import 하지 않아도 되는 패키지는 무엇인가요?
자바의 메모리가 부족해서 발생하는 에러는 무엇인가요?*
메소드 호출관계가 너무 많아서 발생하는 에러는 무엇인가요?*
java.lang 패키지에 선언되어 있는 3개의 어노테이션에는 어떤 것들이 있고, 각각의 역할은?*
Double과 Integer 같은 숫자 타입에서 처리할 수 있는 최대, 최소값을 알 수 있는 상수의 이름은?*
Integer값을 2진법으로 표현하려면 어떤 메소드를 사용해야 하나요?*
Integer값을 16진법으로 표현하려면 어떤 메소드를 사용해야 하나요?*
속성(Properties)과 환경(Environment) 값의 차이는 무엇인가요?*
System.out과 System.err 에서 사용할 수 있는 메소드들은 어떤 클래스의 API를 봐야 하나요?*
System 클래스에서 현재 시간을 조회하는 용도로 사용하는 메소드 이름은 무엇인가요?*
System 클래스에서 시간 측정 용도로 사용하는 메소드 이름은 무엇인가요?*
System.out.print() 메소드와 System.out.println() 메소드의 차이는 무엇인가요?*
System.out.println() 메소드에 객체가 매개변수로 넘어 왔을 때 String의 어떤 메소드가 호출되어 결과를 출력하나요? 그리고, 그 메소드를 사용하는 이유는 무엇인가요?*
숫자 계산을 위해서 필요한 메소드들을 모아 놓은 클래스는 무엇인가요?*
위의 문제의 답인 클래스에 있는 메소드는 객체를 생성해서 사용해야 하나요?*
숫자의 절대값을 구하는 메소드는 무엇인가요?*
숫자의 반올림을 하는 메소드는 무엇인가요?*
각도를 라디안으로 변환하는 메소드와 라디안을 각도로 변환하는 메소드는 각각 무엇인가요?*
5의 4 제곱 값을 구하려고 하면 어떤 메소드를 사용해야 하나요?
[참고]
https://www.baeldung.com/java-string-constant-pool-heap-stack
https://sematext.com/blog/java-garbage-collection-tuning/#why-is-garbage-collection-tuning-important
https://d2.naver.com/helloworld/1329
https://stackoverflow.com/questions/22779145/java-primitive-data-type-on-stack-or-heap
https://www.scaler.com/topics/which-package-is-imported-by-default-in-java/