Posted
Filed under 공부한 것들/JAVA

Java Virtual Machine(JVM, 자바 가상 머신)은 메모리 상에만 존재하는 가상 컴퓨터.
자바의 소스 코드를 컴파일하면 Byte Code로 변환, JVM은 이러한 바이트 코드를 읽어서 실행할 수 있도록 해주는 도구. 바이트 코드를 해석한 JVM은 그 내용을 자신의 각 메모리에 배치.

ⓐ스택 영역(Runtime Stack)
바이트 코드를 읽어 이곳에서 자바의 Local 변수를 할당. 해당 변수들은 그 것이 선언된 블록의 영역을 벗어나는 순간 메모리가 소멸되며 각 공간은 자동으로 초기화 되지 않기 때문에 사용시에는 반드시 초기화 작업을 해주어야 함.

ⓑ동적 할당 메모리 영역(Garbage Collection Heap)
배열로 만들어진 연속된 공간들이나 클래스에 포함된 멤버를 할당하는 영역으로 Garbage컬렉터에 의해 관리. 모든 영역은 초기화가 Default로 되기 때문에 특별한 초기화 과정 없이도 사용 가능.

ⓒ 상수와 메서드 영역(Constant & Code Segment)
고정 데이터를 가진 상수나 추상화 형식을 지닌 Method의 경우 해당 내용을 기억해 두어야 할 필요성 때문에 만들어진 영역. 실행시에 위치 값을 가지게 됨. 따라서 그 위치가 조건에 의해 결정되는 것이 아니므로 외부에서 쉽게 경로를 파악 할수 없으므로 해킹으로 부터 안정적.

ⓓRegister 영역(Process Register)
JVM이 실행하면서 필요한 부분의 주소를 기억해 두는 곳으로 각 영역에 연결되서 프로세서가 작동할 때 여기에 등록된 내용을 기초로 실행.

2007/06/17 21:42 2007/06/17 21:42
Posted
Filed under 공부한 것들/JAVA
(3) 실수형 자료형
7. float (4byte, 입/출력 범위 1.4E-45~3.402823E38 )
  사용 예)
 float f = 12.34f;
float 자료형은 4byte 범위를 표시할 수 있지만 정수형 자료형보다는 훨씬 많은 범위를 포함하고 있다. 왜냐하면 정수는 [0,1,2....]순으로 나가지만 실수는[0,0.1,0.01....]등등등 수도 포함한다. 따라서 정수형의 long자료형 보다도 float형이 큰 자료형이라고 볼 수 있다.
정수형에서의 기본 자료형은 int형이지만 실수 형에서의 기본 자료형은 double형.
그래서 float이 기본 자료형이 아니라는 의미로 값을 지정할 때 소문자 'f'나 대문자 'F' 를 붙여서 표현. 또한 실수형에서는 0으로 나누었을 때 무한 대의 값을 표현하기 위해 Infinity'라는 예약어를 이용. 0을 0으로 나누었을때 수가 아닌 값을 표현하기 위해 'NaN'이라는 예약어도 이용.

8. double (8byte, 입/출력 범위 4.92E-324~1.8E308 )
   사용 예)
double du = 1234.5678;
double 자료형은 실수형 기본 자료형으로 8byte의 범위를 나타낼 수 있음. 가장 큰 자료형으로 원하는 만큼의 수를 지정하여 사용할 수 있는 자료형.

(4) 클래스형 자료형
9. String (4byte [레퍼런스형], 입/출력 범위 : 무한대)
    사용 예)
String str="블루네군";
String은 Class이다. Java에서는 String과 같은 클래스를 마치 자료형인 것처럼 사용할 수 있게 만들어 주었다. 자바에서 클래스 변수는 무조건 4byte. 그렇기 때문에 얼마만큼의 데이터가 들어가 있든지 클래스 변수는 무조건 4byte. 이러한 String클래스는 문자열을 처리함에 있어 자료형 처럼 사용할 수 있도록 하기위해 만들어짐.
2007/04/30 23:15 2007/04/30 23:15