Java : 1995 년 5 월 Sun Microsystems에서 시작한 Java 프로그래밍 언어 및 Java 플랫폼의 일반적인 용어. Java는 교차 플랫폼 응용 프로그램 소프트웨어를 작성할 수있는 객체 지향 프로그래밍 언어입니다. 그것은 당시 Sun Microsystems에서 일하고 있던 James Gosling에 의해 1990 년대 초에 개발되었습니다. 원래 오크로 명명되었습니다. 인터넷의 빠른 발전으로 Java는 점차 중요한 네트워크 프로그래밍 언어가되었습니다.
Java의 첫 번째 버전이 태어난 지 19 년이 지났습니다. 시간이 지나고 플래시로지나갑니다. 19 년은 눈이 깜박 거렸다. 아래 그림에 표시된 타임 라인에서 JDK가 버전 1.8로 개발되었음을 알 수 있습니다. 이 19 년 동안 수많은 Java 관련 제품, 기술 및 표준이 탄생했습니다. 이제 타임 터널에 들어가서 Java 언어가 육성 될 때 시대부터 시작하여 Java의 개발 궤적과 역사적 변화를 검토합시다.
1991 년 4 월, James Gosling 박사가 이끄는 Green Project는 셋톱 박스, 냉장고, 라디오 등과 같은 다양한 소비자 전자 제품에서 실행할 수있는 프로그램 아키텍처를 개발하기 위해 출시되었습니다.이 프로젝트의 제품은 Java Language : Oak (Oak)의 전임자입니다. 오크는 당시 소비재 시장에서 성공하지 못했지만 1995 년 인터넷 트렌드가 증가함에 따라 Oak은 개발에 적합하고 Java 언어로 전환되는 시장 위치를 빠르게 발견했습니다.
1995 년 5 월 23 일, 오크 언어는 Java로 이름이 바뀌었고 Java 1.0 버전은 공식적으로 Sunworld 회의에서 발표되었습니다. Java Language는 먼저 슬로건 "한 번 쓰기, 어디서나 달리기"를 전달했습니다.
1996 년 1 월 23 일, JDK 1.0이 출시되었고 Java 언어는 첫 번째 공식 버전의 실행 환경을 가졌습니다. JDK 1.0은 순전히 해석 된 실행 실행 Java Virtual Machine 구현 (Sun Classic VM)을 제공합니다. JDK 버전 1.0의 대표 기술은 다음을 포함합니다 : Java Virtual Machines, AWT 등
1996 년 4 월, 가장 중요한 운영 체제 공급 업체 10 명은 자바 기술을 제품에 포함시킬 것이라고 발표했습니다. 같은 해 9 월에 Java 기술을 사용하여 약 83,000 개의 웹 페이지가 제작되었습니다. 1996 년 5 월 말, Sun은 미국 샌프란시스코에서 첫 Javaone 회의를 열었습니다. 그 이후로 Javaone은 전 세계 수백만 명의 Java 언어 개발자들을위한 연례 기술 행사가되었습니다.
1997 년 2 월 19 일, Sun은 JDK 1.1을 발표했습니다. JAVA 기술 (예 : JDBC 등)의 가장 기본적인 지원 지점 중 일부는 JDK 1.1 버전으로 출시되었습니다. JDK 1.1 버전의 기술 담당자는 다음이 포함됩니다 : JAR 파일 형식, JDBC, Javabeans 및 RMI. Java Syntax는 현재 내부 클래스 및 반사와 같은 어느 정도 개발되었습니다.
1999 년 4 월 8 일까지 JDK 1.1은 총 9 개의 버전을 출시했습니다 : 1.1.0 ~ 1.1.8. 1.1.4 이후 각 JDK 버전은 자체 이름 (프로젝트 코드), 즉 JDK 1.1.4 -Sparkler (GEM), JDK 1.1.5- 호박 (호박), JDK 1.1.6 -Abigail (Abigail, 여성 이름), JDK 1.1.7- Brutus (Brutu, City Name) 및 JDK 1.1.8 Chelsea (Chelsea)
1998 년 12 월 4 일, JDK는 프로젝트 코드 이름 놀이터와 함께 JDK 1.2의 이정표 버전을 안내했습니다. 이 버전에서 Sun은 Java Technology 시스템을 3 방향, 즉 J2SE (Java 2 Platform, Standard Edition), Enterprise 수준 개발을위한 J2EE (Java 2 Platform, Enterprise Edition) 및 모바일 전화와 같은 모바일 터미널을위한 J2ME (Java 2 플랫폼, Micro Edition)로 나눕니다. EJB, Java 플러그인, Java IDL, Swing 등과 같이이 버전에 나타나는 많은 대표적인 기술이 있습니다.이 버전에서 Java Virtual Machine에는 처음으로 JIT (Just IntoMe) 컴파일러가 있습니다 (3 개의 가상 기계는 JDK 1.2, 클래식 VM, Hotspot VM 및 정확한 VM에서 공존합니다. 내장 JIT 컴파일러 및 이전 버전으로 가져온 클래식 VM은 플러그 인 형태의 JIT 컴파일러 만 사용할 수 있습니다). 언어 및 API 수준에서 Java는 StrictFP 키워드와 Java 인코딩에서 매우 일반적으로 사용되는 일련의 Collections Collection 클래스를 추가합니다.
1999 년 3 월과 7 월에는 JDK 1.2.1과 JDK 1.2.2라는 두 개의 작은 버전이 각각 출시되었습니다.
1999 년 4 월 27 일, 핫스팟 가상 머신이 출시되었습니다. 핫스팟은 원래 "Longview Technologies"라는 소규모 회사에 의해 개발되었습니다. 핫스팟의 뛰어난 성능으로 인해 회사는 1997 년 Sun에 의해 인수되었습니다. 핫스팟 가상 머신은 JDK 1.2에 대한 추가 프로그램으로 출시되었으며 나중에 JDK 1.3의 기본 가상 머신과 모든 버전의 Sun JDK가되었습니다.
2000 년 5 월 8 일, 프로젝트 코드 인 Kestrel 인 JDK 1.3이 출시되었습니다. JDK 1.2와 비교하여 JDK 1.3의 개선은 주로 일부 클래스 라이브러리 (예 : 수학 연산 및 새로운 타이머 API 등)에 반영됩니다. JNDI 서비스는 JDK 1.3 (JNDI 이전에 확장 이었음) 이후 CORBA IIOP를 사용하여 RMI 통신 프로토콜 등을 구현하기 때문에 플랫폼 수준 서비스로 제공되었습니다. JDK 1.3은 프로젝트 코드 이름 무당 벌레와 함께 JDK 1.3.1의 수정 된 버전을 보유하고 있으며 2001 년 5 월 17 일에 출시되었습니다.
JDK 1.3 이후, Sun은 동물의 이름을 따서 명명 된 2 년마다 약 2 년마다 JDK의 주요 버전을 공개하는 습관을 유지 했으며이 기간 동안 발표 된 다양한 수정 사항은 곤충에 의해 명명되었습니다.
2002 년 2 월 13 일, JDK 1.4가 프로젝트 코드 이름 Merlin (Grey Back Falcon)과 함께 출시되었습니다. JDK 1.4는 진정으로 성숙한 Java의 버전입니다. Compaq, Fujitsu, SAS, Symbian 및 IBM과 같은 유명한 회사는 참여하고 심지어 자신의 독립적 인 JDK 1.4를 실현했습니다. 10 년이 지난 후에도 여전히 JDK 1.4에서 직접 실행되거나 JDK 1.4에서 실행될 수있는 버전을 계속 해제 할 수있는 많은 주류 응용 프로그램 (스프링, 최대 절전 모드, 스트럿 등)이 여전히 있습니다. JDK 1.4는 또한 정규 표현식, 예외 체인, NIO, 로그 클래스, 파서 및 XSLT 변환기와 같은 많은 새로운 기술 기능을 발표했습니다.
JDK 1.4에는 두 가지 후속 개정이 있습니다.
JDK 1.4.1, 2002 년 9 월 16 일에 출시
프로젝트 코드 명 Mantis JDK 1.4.2는 2003 년 6 월 26 일에 발표되었습니다.
2002 년경, Java와 직접적인 관계가 없었지만 실제로 Java 개발에 큰 영향을 미쳤던 사건은 Microsoft의 .NET 작업에 의해 발표되었습니다. 기술 구현 및 대상 사용자 모두에서 Java와 매우 유사한이 기술 플랫폼은 Java와의 많은 토론, 비교 및 경쟁을 가져 왔습니다. .NET 플랫폼과 Java 플랫폼 간의 큰 논쟁은 지금까지 계속되었습니다.
2004 년 9 월 30 일, JDK 1.5가 프로젝트 코드 이름 Tiger와 함께 출시되었습니다. JDK 1.2 이후, 구문 수준에서의 Java의 변환은 매우 작았으며 JDK 1.5는 Java 구문의 사용을 쉽게 개선했습니다. 예를 들어, 자동 권투, 제네릭, 동적 주석, 열거, 가변 길이 매개 변수 및 트래버스 루프 (foreach loops)와 같은 구문 기능은 모두 JDK 1.5에 추가됩니다. 가상 머신 및 API 레벨 에서이 버전은 JMI (Java의 메모리 모델)를 향상시키고 Java.util.concurrent 동시성 패키지 등을 제공합니다. 또한 JDK 1.5는 공식적으로 Windows 9X 플랫폼을 지원할 수 있다고 선언하는 마지막 JDK 버전입니다.
2006 년 12 월 11 일, JDK 1.6은 프로젝트 코드 이름 Mustang (Mustang)과 함께 출시되었습니다. 이 버전에서 Sun은 J2EE, J2SE 및 J2ME의 이름 지정 방법을 종료했으며 JDK 1.2 이후 8 년 동안 주변에 있었고 Java SE 6, Java EE 6 및 Java ME 6의 이름 지정 방법을 가능하게했습니다. JDK 1.6에 대한 개선 사항 : 동적 언어 지원 제공 (Mozilla Java Rhino를 통해 구현) API 등. 동시에이 버전은 잠금 및 동기화, 쓰레기 수집, 클래스 로딩 및 기타 알고리즘을 포함하여 Java 가상 머신을 많이 개선했습니다.
2006 년 11 월 13 일 Javaone 회의에서 Sun은 마침내 오픈 소스 Java를 발표했으며, 다음 해에 JDK의 여러 부분이 GPL V2 (GNU General Public License V2) 프로토콜에 따라 연속적으로 공개되었으며 이러한 소스 코드를 독립적으로 관리하기 위해 OpenJDK 조직을 설립했습니다. OpenJDK에는 거의 모든 SUN JDK 코드가 포함되어있는 매우 적은 양의 재산권 코드 (주로 Sun 자체가 오픈 소스 처리에 허용되지 않음) 외에도, OpenJDK에는 거의 모든 SUN 코드가 포함되어 있습니다. OpenJDK의 품질 관리자는 JDK 1.7에서 Sun JDK 및 OpenJDK의 코드는 기본적으로 코드 파일 헤더의 저작권 주석을 제외하고는 기본적으로 동일하다고 말했습니다.
JDK 1.6이 출시 된 후, 코드 복잡성 증가, JDK 오픈 소스, Javafx 개발, 경제 위기 및 Sun 인수로 인해 Sun은 JDK 개발 이외의 다른 것들에 많은 자원을 소비했으며 JDK 업데이트는 2 년 동안 주요 버전을 출시하는 개발 속도를 유지하지 못했습니다. JDK 1.6은 지금까지 총 37 개의 업데이트 버전을 출시했습니다. 최신 버전은 2012 년 10 월 16 일에 출시 된 Java SE 6 Update 37입니다.
2009 년 2 월 19 일, 코드 이름 Dolphin 인 JDK 1.7은 첫 번째 이정표 버전을 완성했습니다. JDK 1.7의 기능 계획에 따르면 총 10 개의 이정표가 설정되었습니다. 마지막 이정표 버전은 원래 2010 년 9 월 9 일에 끝날 예정 이었지만 JDK 1.7은 여러 가지 이유로 계획대로 완료 할 수 없었습니다.
JDK 1.7의 초기 기능 계획에서 판단하면 많은 중요한 개선 사항이 포함 된 JDK 버전이어야합니다. Lambda Project (Lambda Expressions, Functional Programming), Jigsaw Project (가상 기계의 모듈 식 지원), 동적 언어 지원, GarbageFirst Collector 및 Coin Project (Language Detail Evolution)와 같은 하위 프로젝트는 Java 산업에 큰 영향을 미칩니다. JDK 1.7의 개발 과정에서 Sun Company는 기술 및 상업 경쟁에서 Quagmire에 있었고 주식 시장 가치는 최고 기간의 3%로 떨어졌으며 더 이상 JDK 1.7의 개발을 정상적으로 홍보 할 수 없었습니다. JDK 1.7의 장기 "정지"를 가능한 한 빨리 끝내기 위해 Oracle은 Sun을 인수 한 직후에 발표했으며 JDK 1.7의 공식 버전이 2011 년 7 월 28 일에 제 시간에 출시 될 수 있도록 JDK 1.7의 미리 정해진 목표를 크게 줄일 것입니다. 마지막으로, JDK 1.7의 주요 개선 사항은 다음과 같습니다. 새로운 G1 컬렉터 제공 (G1은 출시 될 때 여전히 실험 상태에 있었으며 2012 년 4 월 업데이트 4까지 공식적으로 "개혁"되지 않았으며, JSR-292에 대한 통화 지원을 강화하고 (지금 까지이 기능을 완전히 구현하지는 않았으며) 클래스로드 등을 업그레이드했습니다.
지금까지 JDK 1.7은 9 개의 업데이트 버전을 출시했으며 최신 Java SE 7 업데이트 9는 2012 년 10 월 16 일에 출시되었습니다. Java SE 7 업데이트 4에서 시작하여 Oracle은 Mac OS X 운영 체제를 지원하기 시작했으며 업데이트 6에서 완전히 지원을 시작했습니다. 동시에 업데이트 6에서 ARM 명령 세트 세트에 대한 지원을 제공합니다. 플랫폼 및 지원 ARM, X86, X64 및 SPARC 명령어 세트 아키텍처 유형.
2009 년 4 월 20 일, Oracle은 공식적으로 Sun을 74 억 달러에 인수했으며 Java 상표는 공식적으로 Oracle이 소유하고 있다고 발표했습니다 (Java 언어 자체는 어떤 회사에도 속하지 않으며, JCP 조직이 관리하지만 JCP는 주로 Sun 또는 Oracle이 주도합니다). Oracle은 이전에 또 다른 대형 미들웨어 회사 인 BEA를 인수 한 이후 Sun의 인수를 완료 한 후 Bea and Sun, Jrockit 및 Hotspot에서 현재 3 개의 주요 상업용 가상 머신 중 2 개를 얻었습니다. 오라클은 향후 1 ~ 2 년 동안 서로의 강점과 약점으로부터 배우고 결국 하나로 합병 할 것이라고 발표했다. 가까운 시일 내에 Java Virtual Machine Technology는 상당한 변화를 겪을 것이라는 것이 예견 될 수 있습니다.
2011 년 7 월 28 일, Oracle은 Java SE 1.7을 출시했습니다
2014 년 3 월 18 일, Oracle은 Java SE 1.8을 출시했습니다
Java 언어에는 단순성, 객체 지향, 분산, 해석 된 실행, 강력한, 안전, 아키텍처 중립, 휴대용, 고성능, 멀티 스레딩 및 동적 기능이 있습니다.