Java는 동시, 클래스 기반, 객체 지향적이며 특히 가능한 한 적은 구현 종속성을 갖도록 특별히 설계된 범용 컴퓨터 프로그래밍 언어입니다. 이것은 응용 프로그램 개발자가 "WORA (Write Once, Run Anywhere)" 를 허용하기위한 것이며 , 다시 컴파일 할 필요없이 Java를 지원하는 모든 플랫폼에서 컴파일 된 Java 코드를 실행할 수 있습니다. 예를 들어 UNIX에서 Java 프로그램을 작성 및 컴파일하고 소스 코드를 수정하지 않고 Microsoft Windows, Macintosh 또는 UNIX 시스템에서 실행할 수 있습니다. WORA는 Java 프로그램을 바이트 코드라는 중간 언어로 컴파일함으로써 성취됩니다. 바이트 코드의 형식은 플랫폼에 독립적입니다. Java Virtual Machine (JVM)이라고하는 가상 머신은 각 플랫폼에서 바이트 코드를 실행하는 데 사용됩니다.
Java는 원래 Sun Microsystems (이후 Oracle Corporation에서 인수)에서 James Gosling이 개발했으며 1995 년 Sun Microsystems의 Java 플랫폼의 핵심 구성 요소로 출시되었습니다. 이 언어는 C 및 C ++에서 구문의 많은 부분을 파생하지만 그 중 어느 것보다 낮은 수준의 기능을 가지고 있습니다.
Oracle Corporation은 2010 년 1 월 27 일에 Sun Microsystems를 인수 한 후 Java SE 플랫폼의 공식 구현의 현재 소유자입니다.이 구현은 Java의 Sun 구현을 기반으로합니다. Oracle 구현은 Microsoft Windows, Mac OS X, Linux 및 Solaris에서 사용할 수 있습니다.
Oracle 구현은 두 가지 다른 배포판으로 패키지되어 있습니다. Java 프로그램을 실행하는 데 필요한 Java SE 플랫폼의 일부를 포함하고 최종 사용자를 대상으로하는 JRE (Java Runtime Environment) 및 Java Development Kit (JDK) Java 컴파일러, Javadoc, Jar 및 디버거와 같은 개발 도구가 포함되어 있습니다.
Java는 자동 가비지 콜렉터 를 사용하여 객체 수명주기의 메모리를 관리합니다. 프로그래머는 객체 생성 시점을 결정하고 Java 런타임은 객체가 더 이상 사용되지 않으면 메모리를 복구합니다. 객체체에 대한 참조가 남아 있지 않으면 도달 할 수없는 메모리가 가비지 콜렉터에서 자동으로 해제 될 수 있습니다. 프로그래머 코드가 더 이상 필요하지 않은 객체에 대한 참조를 보유하고 있으면 (일반적으로 더 이상 필요하지 않은 객체가 아직 사용중인 컨테이너에 저장되어있는 경우) 메모리 누수와 비슷한 현상이 계속 발생할 수 있습니다. 존재하지 않는 객체의 메소드가 호출되면 " 널 포인터 예외"던져진다. 가비지 콜렉터는 언제든지 발생할 수 있습니다. 이상적으로는 프로그램이 유휴 상태 일 때 발생합니다. 새 오브젝트를 할당하기 위해 힙에 여유 메모리가 충분하지 않으면 트리거되는 것이 보장됩니다. 이로 인해 프로그램이 일시적으로 정지 될 수 있습니다. Java에서는 명시 적 메모리 관리가 불가능합니다.
전통적인 "Hello, world!"프로그램은 다음과 같이 Java로 작성할 수 있습니다.
public class HelloWorldApplication { public static void main(String[] args) { System.out.println("Hello World!"); // Prints the string to the console. } } |
소스 파일은 포함 된 공용 클래스의 이름을 따라야하며 접미사를 추가해야 .java
합니다 (예 :) HelloWorldApplication.java
. 먼저 Java 컴파일러를 사용하여 바이트 코드로 컴파일해야하며 이름이 지정된 파일을 생성해야합니다 HelloWorldApplication.class
. 그런 다음에 만 실행하거나 '시작'할 수 있습니다. Java 소스 파일에는 공용 클래스가 하나만 포함될 수 있지만 공용 액세스 이외의 여러 클래스와 여러 개의 공용 내부 클래스가 포함될 수 있습니다. 소스 파일에 여러 클래스가 포함되어 있으면 하나의 클래스를 'public'으로 만들고 해당 공용 클래스 이름으로 소스 파일 이름을 지정하십시오.