자바의 가비지 콜렉터(Gavage Collector)

|

http://qwe1qwe.tistory.com/1476

http://jikime.tistory.com/313

요약설명
가비지 콜렉터는, 더이상 참조하지 않는 오브젝트가 점유하고 있는 메모리를 회수하여, 할당가능한 상태로 만드는 것.
동작방식을 이해하려면 먼저 JVM의 3가지 메모리 영역를 알아야 한다.
1)new/young영역 : 생성된지 얼마 안된 객체가 저장된다.
a) eden : 새롭게 생성된 모든 객체가 저장된다.
b) survivor space 1, survivor space 2 : old 영역으로 넘어가기 전 객체들이 저장.
2)old영역 : 생성된지 오래된 객체가 저장된다.
3)permanent 영역 : jvm클래스와 메서드 객체가 저장된다.

이중에서 new/young영역과 old영역에서 서로 다른 GC(Gavage Collector)가 동작한다.
new/young영역에서는 minor GC가 동작하는 데, 한번 동작할때마다 다른 survivor 영역으로 객체를 이동시킨다. 즉 첫번째 동작에서는 eden영역과 survivor1에서 살아있는 객체들을 survivor2영역으로 이동시키고, 두번째 동작에서는 eden영역과 survivor2영역에서 살아있는 객체들을 survivor1으로 이동시킨다. 그리고 각 동작마다 죽어있는, 사용되지 않는 객체들은 clear시킨다.
new/young영역에서는 이런식으로 동작을 하다가, 생성된지 오래된 객체들은 old영역으로 이동하게 된다. old영역에서는 full GC가 객체들을 관리하는데, 객체들의 reference를 따라가면서 연결이 끊긴 객체들을 마크하고 이것들을 삭제한다. 이 작업은 상당히 오래 걸리기 때문에, full gc가 동작하는 동안 사용자들의 요청이 쌓이게 되면 장애발생의 원인이 될수 있다..

'작업노트 > JAVA' 카테고리의 다른 글

Java TimeZone 관련 링크  (0) 2009.07.17
CSV파일  (0) 2009.03.02
자바 5 에서의 반복자와 컬렉션(for/in 반복문)  (0) 2008.02.28
Java API Map  (0) 2008.01.05
JVM 메모리구조와 스택 - 참조 ^^  (0) 2007.11.19
And

자바개발환경 구축

|

JDK(Java Development Kit)
말그대로 자바로 개발을 하기위해 필요한 것들이 들어있는 도구이다.
jvm과 자바 클래스 라이브러리 등이 포함되어 있다.
다운로드 : http://java.sun.com/javase/downloads/index.jsp

* JVM(Java Virtual Machine)
C, C++로 컴파일된 코드는 CPU에서 바로 실행이 가능하지만, 자바로 컴파일 된 .class 파일은 바로 실행이 불가능하다. 그래서 CPU역할을 하는 가상의 장치가 필요한데 그게 바로 JVM이다. 가상의 장치이므로 HW가 아니라 SW이다.


Java API 문서
자바 프로그래밍을 하다보면 자바에서 기본적으로 제공하는 클래스 라이브러리(API)에 대한 정보를 검색하게 되는 경우가 많다. 웹서핑을 통해서도 왠만한 정보는 습득이 가능하지만, Java API Docs를 통해 공부하는 습관을 기르자. 안나와있는 클래스가 없다.. (기초적인 영어공부도 해두자.. 한글 번역기로 돌린 것들이 존재하는데 표현이 정확하지 않아 그리 볼만한게 못된다..)
다운로드 : http://java.sun.com/javase/downloads/index.jsp#docs


이클립스 설치
이클립스는 자바개발을 할 때 사용하는 통합개발환경(IDE;Integrated development environment) 이다.(Visual C++ 같은..) IDE로는 SUN사에서 내놓은 Netbeans 도 있긴한데, 우니라나에서는 많이 안쓰이고, 이클립스가 더 좋다(다른 부분은 모르겠고,, 다양한 플러그인들 때문에). 이 두개 아니면 상용 IDE들도 많이 쓰는 듯 하다.

다운로드 : 
http://www.eclipse.org/downloads/
위 사이트로 가보면 여러가지 다른 버전이 있는데, "for Java developer"버전으로도 입문공부는 문제없지만 나중을 생각해서 "for Java EE developer"버전을 받자.


*참고
나중에 웹프로그래밍을 하게 될 경우를 생각해서 브라우저는 파이어폭스를 사용하자
익스플로러도 좋지만 파이어폭스에서는 개발할 때 필요한 여러 플러그인들이 제공되고 있기 때문에 여러모로 편리한 점이 많다.
다운로드 : http://www.mozilla.or.kr/ko/
And

JTidy (HTML Parser)

|
And
prev | 1 | 2 | 3 | 4 | 5 | 6 | 7 | ··· | 41 | next