Java Virtual Machine(자바 가상 머신)

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

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

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

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

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

이올린에 북마크하기(0) 이올린에 추천하기(0)

Posted by 블루네군

2007/06/17 21:42 2007/06/17 21:42
이올린 태그검색티스토리 태그검색, 이올린 태그검색티스토리 태그검색, 이올린 태그검색티스토리 태그검색
Response
No Trackback , No Comment
RSS :
http://bluene.net/blog/rss/response/391

JAVA의 기본 자료형 (2)

(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클래스는 문자열을 처리함에 있어 자료형 처럼 사용할 수 있도록 하기위해 만들어짐.
이올린에 북마크하기(0) 이올린에 추천하기(0)

Posted by 블루네군

2007/04/30 23:15 2007/04/30 23:15
이올린 태그검색티스토리 태그검색, 이올린 태그검색티스토리 태그검색
Response
No Trackback , No Comment
RSS :
http://bluene.net/blog/rss/response/360

JAVA의 기본 자료형 (1)

(1) 논리형 자료형
1. boolean (1byte, 입출력 범위 : true /false)
   사용 예)
boolean bool = false;
('false' 나 "false" 라고 하면 안됌)

논리형 자료형에는 boolean 한가지만 있음
논리(참/거짓) 형식으로 표현되는 자료를 저장.
false/true라고 대입하여 사용 '나 "를 사용 하면 안됌.

(2) 정수형 자료형
2. byte (2byte, 입출력 범위 : -128~127)
  사용 예)
byte bt = 123;
byte는 정수형 자료중 가장 작은 범위의 수치를 저장하기 위한 자료형.
배열이나 데이터 전송의 기본이 되는 자료형으로 많이 사용.
C언어에서는 byte bt = 128; 이라고 선언시 bt의 값이 -128이지만, 자바에서는 컴파일 에러 발생(반드시 -128~127 사이의 수만 적을 수 있음)
증가 연산자나 감소 연산자를 통하여 침범하는 것은 가능.

byte b = 127;
b++;
3. char (2byte, 유일한 Unsigned Data, 입출력 범위 : 0~65535)
   사용 예)
char ch = 65;
(A의 ASCII 코드 값)
               
char ch = 'A';            
char ch = '\u0041';
(\u는 유니코드를 의미하는 표기 형식, 0041은 'A'를 16진수로 표현 한 값)

char 자료형은 JAVA의 자료형 중에 유일하게 unsigned인 자료형.(음수가 없는 자료형)
유니코드를 도입해서 2byte의 범위로 이루어져 있어 해당하는 범위의 수는 0~65535 이 사이의 데이터를 저장할 수 있음.
표현 방식은 직접 숫자를 대입해도 되고 작은 따옴표를 이용해 해당 문자 값을 넣을 수도 있음. 마지막으로 유니코드 고유의 표현 방식으로 '\u'라는 기호와 함께 16진수 4자리를 넣기도 함

4. short (2byte, 입/출력 범위 : -32768~32767)
   사용 예)
 short sh = 12345;
short 자료형은 2byte 범위의 정수형 자료형으로 C언어 등과 같이 2byte 메모리 체계의 int 자료형과 호환성을 위해 많이 사용하는 자료형. 일반적으로는 사용될 수 있지만 정수형 자료형으로는 잘 사용되지 않는 자료형

5. int (4byte, 입/출력 범위 : -2147483648~2147483647)
   사용 예)
int i = 100;
int 자료형은 정수형 자료형 중 대표적인 자료형. 모든 언어에서의 기본이 되는 자료형
4byte 메모리를 기억할 수 있으며, 모든 정수 수치의 기본구조

정수 연산시에 발생하는 결과값은 모두 int형으로 표현이 됨

(연산자에 의해 int형으로 변하는 예)
byte a = 10;
byte b = 10;
a + b;
→ int형 30

위와 같이 '+' 라는 연산자가 사용되면 원래의 byte형이 int형으로 바뀌게 됨

6. long (8byte, 입/출력 범위 : -9223372036854775808 ~ 9223372036854775807)
   사용 예)
long lg = 12345L;
long 자료형은 int 자료형보다 큰 정수형 데이터를 저장하기 위한 목적으로 만들어진 자료형
long 자료형을 초기화 할시 소문자 'l'이나 대문자 'L'을 붙여야 함.(이것은 현재 시스템에게 int 기본 자료형보다 크다는 사실을 인식시키기 위한 것)
이올린에 북마크하기(0) 이올린에 추천하기(0)

Posted by 블루네군

2007/04/30 19:08 2007/04/30 19:08
이올린 태그검색티스토리 태그검색, 이올린 태그검색티스토리 태그검색
Response
No Trackback , No Comment
RSS :
http://bluene.net/blog/rss/response/359


블로그 이미지

- 블루네군

Archives

Calendar

«   2010/03   »
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31      

Site Stats

Total hits:
367622
Today:
240
Yesterday:
236