전체 글 (15) 썸네일형 리스트형 자바 기초 개념 - 프로세스 영역 / 세션 초기화 ※ 본 글은 Oracle의 java-developers-guide를 참고하였습니다. 자바에 대한 개인적 공부와 정리를 위해 Oracle의 공식적인 자바 개발자를 위한 가이드를 보며 주기적으로 글을 작성하도록 해본다. 1.3.1 프로세스 영역표준 Java 환경에서는 클래스명을 첫 번째로 JVM이 해석하도록 명령줄에서 다음과 같은 명령어를 통해 Java 애플리케이션을 실행한다. java classname Oracle JVM을 사용할 때는 애플리케이션을 DB에 로드하고, 인터페이스를 공개한 후, DB 세션 내에서 애플리케이션을 실행해야 한다. DB 세션은 Oracle JVM이 실행되는 환경으로, 표준 클라이언트 JVM이 실행되는 운영 체제 프로세스와 유사한 역할을 한다. 1.3.2 Java 세션 초기화, .. 자바 기초 개념 - Oracle JVM 개요 ※ 본 글은 Oracle의 java-developers-guide를 참고하였습니다. 자바에 대한 개인적 공부와 정리를 위해 Oracle의 공식적인 자바 개발자를 위한 가이드를 보며 주기적으로 글을 작성하도록 해본다. 1.3 Oracle JVM 개요Oracle JVM은 모든 순수 Java 애플리케이션을 실행할 수 있는 표준 Java 호환 환경이다. 표준 JLS 및 JVM 사양과 호환되며, 표준 Java 바이너리 형식과 표준 Java API를 지원한다. 또한 Oracle DB는 런타임 시 동적 클래스 로딩을 포함한 표준 Java 언어 의미론을 준수한다. Oracle DB의 Java에서는 다음 용어들이 사용된다 :세션Oracle DB Java 환경에서의 세션은 표준 Oracle DB 사용과 동일하다. 세션.. 자바 기초 개념 - 동적 클래스 로딩 ※ 본 글은 Oracle의 java-developers-guide를 참고하였습니다. 자바에 대한 개인적 공부와 정리를 위해 Oracle의 공식적인 자바 개발자를 위한 가이드를 보며 주기적으로 글을 작성하도록 해본다. 1.2.6 동적 클래스 로딩 Java의 또다른 강력한 기능은 동적 클래스 로딩이다. 클래스 로더는 디스크에서 클래스를 로드하여 JVM에서 해석에 필요한 메모리 구조에 배치한다. 클래스 로더는 CLASSPATH에서 클래스를 찾아 프로그램이 실행되는 동안 해당 클래스가 사용될 때만 로드한다. 이 접근 방식은 애플릿에 잘 작동하지만 서버 환경에서는 다음과 같은 문제를 야기할 수 있다. 예측가능성클래스 로딩 작업은 프로그램이 처음 실행될 때 심각한 지연을 초래한다. 간단한 프로그램도 Oracle.. 자바 기초 개념 - Oracle JVM의 성능 ※ 본 글은 Oracle의 java-developers-guide를 참고하였습니다. 자바에 대한 개인적 공부와 정리를 위해 Oracle의 공식적인 자바 개발자를 위한 가이드를 보며 주기적으로 글을 작성하도록 해본다. 1.2.5 Oracle JVM의 성능 Oracle JVM의 성능은 표준 JVM의 HotSpot과 유사한 혁신적인 Just-In-Time 컴파일러를 포함하여 향상되었다. 플랫폼 독립적인 Java 바이트코드는 JVM에서 실행되며, JVM은 특정 하드웨어 플랫폼과 상호작용한다. 소프트웨어 내에 계층을 추가할 때마다 성능은 저하된다. Java는 바이트코드를 해석하는 중간 단계가 필요하기 때문에, C와 같은 플랫폼 종속적인 언어로 개발된 애플리케이션에 비해 어느 정도 비효율적이다. 이 문제를 해결.. 자바 기초 개념 - Footprint ※ 본 글은 Oracle의 java-developers-guide를 참고하였습니다. 자바에 대한 개인적 공부와 정리를 위해 Oracle의 공식적인 자바 개발자를 위한 가이드를 보며 주기적으로 글을 작성하도록 해본다. 1.2.4 Footprint - 메모리 사용량 Java 프로그램의 실행 중인 footprint는 여러 요인에 의해 영향을 받는다. 프로그램의 크기프로그램의 크기는 클래스와 메서드의 수와 이들이 포함하는 코드 양에 따라 달라진다. 프로그램의 복잡성프로그램의 복잡성은 프로그램 자체가 실행될 때 Oracle JVM이 사용하는 핵심 클래스 라이브러리의 수에 따라 달라진다. JVM이 사용하는 공간의 양JVM이 사용하는 공간의 양은 JVM이 할당하는 객체 수, 이러한 객체의 크기, 호출 간에 유지해.. 자바 기초 개념 - 메모리 공간 관리 ※ 본 글은 Oracle의 java-developers-guide를 참고하였습니다. 자바에 대한 개인적 공부와 정리를 위해 Oracle의 공식적인 자바 개발자를 위한 가이드를 보며 주기적으로 글을 작성하도록 해본다. 1.2.3 메모리 공간 관리 가비지 컬레션은 Java의 자동 저장소 관리 기능의 주요 기능으로, Java 개발자가 메모리를 명시적으로 할당하고 해제할 필요를 없애준다. 따라서 C 및 C++ 프로그램에서 흔히 발생하는 메모리 누수를 제거할 수 있다. 그러나 가비지 컬렉션은 프로그램 실행 속도와 메모리 사용량에 대한 오버 헤드를 유발한다. 가비지 컬렉션은 확장성이 높고 빠른 Java 플랫폼을 제공하려는 JVM 개발자에게 주요한 문제다. Oracle JVM은 다음과 같은 방식으로 문제를 해결한.. 자바 기초 개념 - Oracle DB에서 Java 사용 ※ 본 글은 Oracle의 java-developers-guide를 참고하였습니다. 자바에 대한 개인적 공부와 정리를 위해 Oracle의 공식적인 자바 개발자를 위한 가이드를 보며 주기적으로 글을 작성하도록 해본다. 1.2 자바 클래스 계층 구조Java 애플리케이션을 DB 내에서 작성하고 로드할 수 있는 이유는 Java가 많은 보안 기능을 가진 안전한 언어이기 때문이다. Java는 코드가 있는 운영 체제를 조작하지 못하도록 설계되었다. 반면 C와 같은 일부 언어는 DB 내에 보안 문제를 유발할 수 있다. Java는 개발자에게 많은 장점을 제공하지만, 확장 가능한 방식으로 Java 서버 애플리케이션을 지원하는 JVM을 구현하는 것을 도전 과제이다. 이 섹션에서는 아래와 같은 과제를 다룬다. Java와 R.. 자바 기초 개념 - 자바 클래스 계층 구조 ※ 본 글은 Oracle의 java-developers-guide를 참고하였습니다. 자바에 대한 개인적 공부와 정리를 위해 Oracle의 공식적인 자바 개발자를 위한 가이드를 보며 주기적으로 글을 작성하도록 해본다. 1.1.4 자바 클래스 계층 구조 자바는 클래스들을 대규모 계층 구조 내에서 정의한다. 계층 구조의 최상위에는 Object 클래스가 있다.자바의 모든 클래스는 상위 클래스의 상속 체인을 따라 올라가면서 어떤 수준에서든 Object 클래스로부터 상속받는다. 클래스 B가 클래스 A로부터 상속받는다고 할 때, 클래스 B의 각 인스턴스는 클래스 B에 정의된 모든 필드뿐만 아니라 클래스 A에 정의된 모든 필드를 포함한다. 1-4는 일반적인 자바 클래스 계층 구조를 보여준다.FullTimeEmplo.. 이전 1 2 다음