자바란 무엇인가?
자바의 탄생
1991년경 Sun Microsystems의 Green project라는 연구진으로부터 오크(Oak)라는 언어가 개발되면서 자바가 시작되었다.
자바의 특징으로 배우기 쉽다. 객체지향 프로그래밍이다. 가비지 컬렉션, 플랫폼 독립적, 멀티스레드 같은 특징이 있다.
자바 플랫폼: 자바 프로그램이 실행되기 위해 제공되는 하드웨어적 프로그램이다.
자바 플랫폼의 구성은
program.java
자바 api
자바 가상 머신 jvm
하드웨어 기반 플랫폼
자바 플랫폼의 종류
Java 2 Platform, Standard Edition(J2SE)
Java 2 Platform, Enterprise Edition(J2EE)
Java 2 Platform, Micro Edition(J2ME)
JVM(자바 가상 머신, JAVA Virtual Machine)
자바 컴파일러에 의해 만들어진 바이트코드(bytecode)를 해석하고 실행하는 가상적 기계(cpu)
JVM의 개략적 구성
CLASS AREA
Java Stack
Heap
Native Method Stacks
JDK 5.0의 변화
제네릭 타입, 메타데이터, 개선된 루프 오토박싱/언박싱 , static import , Formatter와 Scanner , Varargs(Variable Arguments) , Simpler RMI Interface generation기법
제네릭 타입:
자바의 자료 구조라 하는 Collections 쪽에서 제일 먼저 확인이 된다. 이는 이전 버전까지 Object단위로 저장되므로 해서 실행 시 매번 casting(형 변환)의 번거로움과 타입 오류에 대한 부담을 해소하였다.
메타데이터:
자바 클래스 또는 인터페이스 그리고 메서드 및 필드들의 정보를 클래스 파일에 저장해 두었다가 자바 컴파일러 또는 다른 툴을 통해 접근하여 공통된 기반(infrastructure)을 가지도록 하는 목적이 있다
개선된 루프:
제네릭 타입과 함께 사용되는 것이 유익하며 배열과 같은 자바 Collections들을 인덱스 변수를 통해 접근하여 발생되었던 오류와 다소 복잡하게 처리되었던 점득을 개선한 반복 처리이다.
오토박싱/언박싱
예를 들어 int는 기본자료형이며 이를 객체로 사용하려면 integer라는 Wrapper클래스로 생성을 해야 한다. 하지만 jdk5.0에 와서는 이런 변환 작업을 내부적으로 해결해준다.
int test1 = 100;
Integer obj_i = test1;
int test2 = obj_I;
static import
이전 버전까지는 클래스로부터 상속을 받지 않고서는 static으로 선언된 것들을 직접 사용할 수 없었다. 하지만 jdk5.0에 오면서 static만 따로 import 할 수 있도록 하여 static으로 선언된 것들을 보다 쉽게 사용이 가능하게 되었다.
Formatter와 Scanner
Formatter는 C언어에서 사용되는 printf기능을 수행하기 위해 추가한 클래스이다. Scanner는 기존 스트림들에게는 없었던 파싱(parsing) 기능을 부여하여 입력 값들을 보다 효율적으로 처리하기 위한 클래스이다. 여기에는 Pattern클래스 또는 문자열로 되어 있는 패턴을 useDelimiter()라는 메서드를 통해 가능케 한다.
Varargs(Variable Arguments)
특정 메서드를 호출할 때 인자의 수를 정해두지 않고 호출 시 정해진 인자의 타입만 일치한다면 인자의 수는 상관없이 호출이 가능하도록 하게 하여 같은 인자 타입에 따른 오버 로딩 기법을 간편화 하였다.
class VarTest {
public void test(String ... ag){
for(String n : ag)
System.out.println(n);
}
public static void main(String[] args) {
VarTest t = new VarTest();
t.test("1","2","3");
t.test("AB","BB","cc","DD");
} //end main
}//end class
Simpler RMI interface generation 기법
원격 인터페이스에 대한 stub객체를 생성하기 위해 rmic 즉 rmi컴파일러를 더 이상 사용하지 않으므로 해서 RMI기술이 간편화 되었다.
자바 api란
이미 제공되는 유용한 클래스들에 대한 사용 방법을 문서화하여 제공해 주는 도움말과 같은 것이다.
'처음배우는 IT' 카테고리의 다른 글
자바프로그래밍 언어: 클래스와 배열 [3] (0) | 2020.12.28 |
---|---|
자바프로그래밍 언어: 클래스와 배열 [2] (0) | 2020.12.27 |
자바프로그래밍 언어: 클래스와 배열 [1] (0) | 2020.12.26 |
자바프로그래밍 언어: 주석문과 제어문 (0) | 2020.12.23 |
자바 프로그래밍 기초: 자바 기본 문법 (0) | 2020.12.21 |