목록Programing & Coding/JAVA (21)
S E P H ' S
가비지 컬렉션, GC(Garbage Collection) GC는 메모리 관리 기법 중의 하나로, 프로그램이 동적으로 할당했던 메모리 영역 중에서 필요없게 된 영역을 해제하는 기능입니다. Minor GC 새로 생성된 대부분의 객체(Instance)는 Eden 영역에 위치합니다. Eden 영역에서 GC가 한 번 발생한 후 살아남은 객체는 Survivor영역 중 하나로 이동됩니다. 이 과정을 반복하다가 계속해서 살아남아 있는 객체는 일정시간 참조되고 있다는 뜻이고 Old영역으로 이동됩니다. 이를 Promotion이라고 합니다. Major GC Old영역에 있는 모든 객체들을 검사해 참조되지 않은 객체들을 한꺼번에 삭제합니다. 시간이 오래 걸리고 실행 중 프로세스가 정지됩니다. 이것을 'stop the worl..
자바 가상 머신 (Java Virtual Machine: JVM) 이전 포스트에서 자바 가상 머신(이하 JVM)에 대해 짧게 언급이 되었습니다. 자바로 코드를 작성(Test.java)하고 이를 컴파일 하면 바이트 코드(Test.class)가 만들어지는데 이는 실행을 위한 기계어가 아닌 중간 기계어입니다. 이를 실행 시키기 위해 운영체제 마다 자바 가상 머신을 사용해 실행 파일을 만들어 실행을 합니다. 이번 포스팅에서는 JVM에 대해서 자세히 알아보도록 하겠습니다. 자바프로그램 실행과정 개요 1. 프로그램이 실행되면 JVM은 OS로부터 이 프로그램이 필요로 하는 메모리를 할당받고 JVM은 이 메모리를 용도에 따라 여러 영역으로 나누어 관리한다. 2. 자바 컴파일러(javac)가 자바 소스코드(.java)를..
Java를 많이 사용하는 이유 Java를 사용하면서도 Java를 왜 배우지? 왜 사용하지? 라는 의문이 드는 분들이 많을 것이라 생각합니다. 그래서 지금부터 그 이유에 대해 먼저 알아보도록 하겠습니다. 플랫폼에 영향을 받지 않는다 Java는 플랫폼에 영향을 받지 않으므로 다양한 환경에서 사용할 수 있습니다. 윈도우 운영체제에서 C 언어로 개발한 프로그램이 있다고 합시다. 프로그램 이름을 Test라고 만들고 이를 컴파일하면 Test.exe가 만들어집니다. 이 실행파일은 윈도우 운영체제에 맞춰 만들어졌기 때문에 리눅스 운영체제에서는 실행할 수가 없습니다. 그래서 이 Text.exe파일을 리눅스에 맞게 새로 만들어야 합니다. 하지만 Java는 그렇지 않습니다. Java에서 프로그램 이름을 Test라고 만들고 ..
Comparable - 정렬 수행 시 기본적으로 적용되는 정렬 기준이 되는 메소드를 정의하는 인터페이스 - Java에서 제공되는 정렬이 가능한 클래스들은 모두 Comparable 인터페이스를 구현하고 있고, 정렬 시에 이에 맞게 정렬이 수행된다. - 정렬에 쓰이는 compareTo()메소드에는 하나의 파라미터가 주어진다. - 구현 방법 - 정렬할 객체에 Comparable interface를 implements 후, compareTo()메소드를 오버라이드 하여 구현 - compareTo() 메소드 작성법 1. 현재 객체 파라미터로 넘어온 객체 → 양수 return 4. 음수 ..