Posted
Filed under 공부한 것들/JAVA
(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 기본 자료형보다 크다는 사실을 인식시키기 위한 것)
2026/04/30 14:04 2026/04/30 14:04
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