1. 클래스의 형태

ㄱ. simple class

ㄴ. 디렉터리 형태의 라이브러리 (패키지를 만드는 것)

ㄷ. jar 형태

 

* 라이브러리를 만들 때에는 먼저 이클립스 내에서 import를 하고 -d 옵션을 이용하여 컴파일

 ( javac    -d    파일명.java)

- d : 컴파일한 결과 클래스 파일이 만들어지는 디렉토리를 현재 디렉토리로 설정하는 옵션

 

* 디렉토리 형태의 패키지 (패키지를 통쨰로 라이브러리로 묶음)

 

 

2. jar

자바 전용 zip 압축 파일

패키지를 배포할 때 사용하는 방법

(cmd : jar.exe    -cf     파일명.jar    /패키지이름)

- 패키지에 들어있는 모든 파일들을 파일명.jar로 묶는다는 의미

(cmd : java    -jar    파일명.jar)

- jar파일 실행

- manifest 속성 : 프로젝트 내에 Manifest.txt 파일을 만들고 내용을 Main-class : com.~(경로)로 적고 반드시 엔터를 두 번 쳐야 함

(cmd : jar    cfm    파일명.jar    Manifest.txt    클래스명.class)

- minifest 파일 실행

(이클립스 : export > java > runnable jar file)

 

 

3. main() 메소드

ㄱ. 자바 가상머신에 의해 호출되는 메소드

ㄴ. main() 메소드가 포함된 클래스를 실행 클래스라고 함

ㄷ. java.exe를 이용하여 메소드 호출

 

 

4. static

객체를 아무리 많이 만들어도 static 변수는 오직 하나의 메모리만 생성

static 멤버 변소의 메모리는 하나만 생성된 후, 공유를 하기 때문에 변수의 값이 모든 객체에서 동일하게 출력되는 것

클래스 설계시 멤버변수 중 모든 인스턴스에 공통적으로 사용해야 하는 것에 static을 붙임

인스턴스를 생성하면 각 인스턴스들은 서로 독립적이기 때뭉네 서로 다른 값을 유지함

경우에 따라 인스턴스들이 공통적으로 같은 값이 유지되어야 하는 경우 static을 붙임

static이 붙은 멤버변수는 클래스가 메모리에 올라갈 때 자동 생성되기 때문에 인스턴스를 생성하지 않아도 생성 가능

static 메모리는 클래스의 이름만 언급되어도 자동 생성 (객체 생성 하기 전에 클래스 이름으로 static 멤버에 접근 가능)

 

* static 멤버 메소드 내에서 일반 멤버변수 사용 불가 => 에러

 

static 멤버변수만 사용 가능

 

5. byte code

중간 단계의 언어

기계어로 변환하기 좋은 반 기계어

 

* 가상머신(자바 운영체제) : 바이트 코드를 동작시키기 위해 해석하고 실행하는 시스템

 

 

6. process

프로그램이 로딩되어 실행 가능 상태가 되었을 때의 메모리

ㄱ. 구성

- 상수 메모리 영역 : 프로그램에서 모아두는 메모리 공간

- 코드 메모리 영역 : 프로그램의 코드 위치

- 스택 메모리 영역 : 프로그램이 실행될 때 필요한 메모리 공간

 

 

7.  stack frame

하나의 메소드를 호출하는데 필요한 메모리 덩어리

메소드 하나당 하나의 스택 프레임이 존재

ㄱ. 지역변수 (Local Variable)

ㄴ. 매개변수 (Parameter)

ㄷ. 리턴값이 저장되는 곳 (Return Value)

 

 

8. 메모리

ㄱ. 구성

- 스택 (Stack)

- 힙 (Heap)

 

* 가비지 콜렉터 (Garbage Collector) : 자바의 메모리 관리자 역할 (힙에 생성되는 객체의 메모리)

더이상 사용하지 않는 메모리나 불필요한 메모리 제거

메모리가 부족하면 메모리의 조각 모음을 함

'BackEnd > Java' 카테고리의 다른 글

Java :: 생성자(Constructor)  (0) 2016.03.18
Java :: 메소드 오버로딩 vs 오버라이딩  (0) 2016.03.18
Java :: 클래스  (0) 2016.03.16
Java :: 클래스 - 도입  (0) 2016.03.15
Java :: 데이터와 변수  (0) 2016.03.14

+ Recent posts