본문 바로가기
반응형

전체 글28

Class Loader Class Loader 클래스 로더는 상위로 부터 순서대로 부트스트랩(Bootstrap), 확장(Extensions), 시스템(System) 클래스로더가 순서대로 올라간다. 즉, 동일한 클래스가 여러 곳에 존재할 때 로딩되는 우선순위는 Bootstrap>Extensions>System Class Loader가 된다. 부트스트랩 클래스 로더까지 확인해도 없으면 요청받은 클래스 로더가 파일 시스템(CLASSPATH 등 기준)에서 해당 클래스를 찾는다. - 부트스트랩(Bootstrap) Class Loader : 자바 가상 머신이 실행될때 가장 먼저 실행되는 클래스 로더로, JAVA 실행에 필요한 기본적인 클래스들($JAVA_HOME/jre/lib/rt.jar)을 로딩한다. 다른 클래스 로더와 달리 자바가 아.. 2022. 8. 30.
Java Thread Thread? 하나의 프로세스 내부에서 독립적으로 실행되는 하나의 작업 단위를 말한다. 두개 이상의 스레드가 같은 자원을 이용할 때는 필연적으로 경합이 발생하고 경우에 따라서 DEADLOCK이 발생할 수도 있다. 스레드 상태 NEW: 스레드가 생성되었지만 아직 실행되지 않은 상태 RUNNABLE: 현재 CPU를 점유하고 작업을 수행 중인 상태. 운영체제의 자원 분배로 인해 WAITING 상태가 될 수도 있다. BLOCKED: CPU를 점유하기 위해 다른 스레드가 락을 해제하기를 기다리는 상태 WAITING: wait() 메서드, join() 메서드, park() 메서드 등를 이용해 대기하고 있는 상태 TIMED_WAITING: sleep() 메서드, wait() 메서드, join() 메서드, park().. 2022. 8. 30.
JAVA Memory Option -X Option -Xss : 각 Thread별 Stack size (Thread의 Native Stack Size) -Xms : 초기 Heap size (Young + Old) -Xmx : 최대 Heap size (Young + Old) -Xmn : Young(New) 영역 크기 -XX Option -XX:PermSize : 초기 Permanent size -XX:MaxPermSize : 최대 Permanent size -XX:MaxPermSize : 최대 Permanent size -XX:SurvivorRatio= : Eden 영역의 크기를 SS1 또는 SS2의 크기로 나눈값 -XX:NewRatio : Old/New Size 값이다. (전체 Heasp Size가 768m일때 NewRatio=2이면, .. 2022. 8. 30.
ParallelGCThreads, ParallelCMSThreads 계산법 GC Threads There are two JVM flags/options that control how many GC threads are used in the JVM: ParallelGCThreads and ParallelCMSThreads. ParallelGCThreads This flag controls the number of threads used in the parallel garbage collector. This includes the young generation collector used by default. If the parallel GC is used (-XX:+UseParallelGC) or turned on by default on a 'server-class' machin.. 2022. 8. 30.
Garbage Collection Algorithm(가비지 컬렉션 알고리즘) (Sun) GC 우리가 GC를 Application에 맞도록 최적화 한다는 것은 결국 GC가 어떠한 방식으로 동작하고 어떤 성격을 지니고 있는지를 이해하는 것이 가장 중요하다. Serial Collection은 가장 기본적인 GC이며 Default이다. 하지만 메모리의 용량이 점점 커지게 되면서, Heap의 크기도 자연스레 점점 크게 설정할 수 있게 되었다. 그러면서 Serial Collector의 한계가 나타나면서 GC를 수행하던 중 멈춤현상이 나타났다. - heap이 커짐에 따라-recycle 우리가 GC를 Application에 맞도록그래서 나온것이 모든 리소스를 투입하여 gc를 빨리 끝내자는 parallel gc이다. Serial GC (-XX:+UseSerialGC) mark-sweep-comp.. 2022. 8. 30.
JAVA란? 자바의 역사 JAVA는 1991년 썬 마이크로시스템즈(Sun Microsystems)사의 제임스 고슬링(James Gosling,) 패트릭 노튼(Patrick Naughton), 크리스 와츠(Chris Warth), 에드 프랭크(Ed Frank), 그리고 마이크 쉐리든(Mike Sheridan)에 의해 '오크(Oak)'라는 언어에서 시작되었다. 오크는 처음에 가전제품에서 사용될 목적이었으나, 인터넷의 등장과 함께 인터넷에서 실행되는 프로그래밍 언어로 사용되었고, 이름을 커피 콩 원두이름을 딴 '자바'로 변경하였다. 자바의 특징 "Write Once Run Anywhere!" (한번 쓰고 어느 곳에서도 실행) 이것은 자바의 가장 큰 특징이며, 그들이 만들고자한 목적이 담긴 슬로건이다. 이식성이 높은 언어 .. 2022. 8. 30.
반응형