Java 플랫폼, Standard Edition

Java Platform, Standard Edition

Java Platform, Standard Edition(Java SE)은 데스크톱 및 서버 [1]환경용 휴대용 코드를 개발 및 도입하기 위한 컴퓨팅 플랫폼입니다.Java SE는 이전에는 Java 2 Platform, Standard Edition(J2SE)으로 알려져 있었습니다.

이 플랫폼은 Java 프로그래밍 언어를 사용하며 Java 소프트웨어 플랫폼 패밀리의 일부입니다.Java SE는 Java Class Library용 Java API 등의 범용 API 범위를 정의하고 Java Language Specification 및 Java Virtual Machine [2]Specification도 포함합니다.OpenJDK는 버전7 [3][4][5]이후의 정식 레퍼런스 구현입니다.

명명법, 표준 및 사양

이 플랫폼은 버전 1.2부터 Java 2 Platform, Standard Edition 또는 J2SE로 알려졌으며 버전 1.5에서 Java Platform, Standard Edition 또는 Java SE로 이름이 변경되었습니다."SE"는 Enterprise Edition(Java EE) 및 Micro Edition(Java ME) 플랫폼과 기본 플랫폼을 구별하는 데 사용됩니다."2"는 원래 버전 1.2에서 도입된 주요 변경 사항을 강조하기 위한 것이었으나 버전 1.6에서 제거되었습니다.명명 규칙은 Java 버전 기록에 걸쳐 여러 번 변경되었습니다.Java SE는 J2SE 1.4(Merlin)부터 Java Community Process에 따라 개발되어 Java Specification Requests(JSR;[6] Java 사양 요청)라고 불리는 Java 플랫폼의 제안 및 최종 사양을 기술합니다.JSR 59는 J2SE 1.4, JSR 176은 J2SE 5.0(Tiger)의 포괄 사양이었습니다.Java SE 6(Mustang)은 JSR 270으로 출시되었습니다.

Java Platform, Enterprise Edition(Java EE)은 Java SE의 모든 클래스워크스테이션이 아닌 서버에서 실행되는 프로그램에 더 유용한 숫자를 포함하는 관련 사양입니다.

Java Platform, Micro Edition(Java ME)은 휴대 전화, PDA, 셋톱 박스 등 리소스가 제한된 소형 디바이스용 소프트웨어 개발을 위해 Java API 인증 컬렉션을 제공하기 위한 관련 사양입니다.

Java Runtime Environment(JRE)와 Java Development Kit(JDK)는 각각 Java 프로그램을 실행 또는 개발하기 위해 컴퓨터에 다운로드 및 설치된 실제 파일입니다.

범용 패키지

java.module

Java 패키지 java.lang에는 언어 런타임시스템과 밀접하게 관련되어 있는 기본 클래스와 인터페이스가 포함되어 있습니다.여기에는 클래스 계층을 구성하는 루트 클래스, 언어 정의에 연결된 유형, 기본 예외, 산술 함수, 스레드화, 보안 함수 및 기본 네이티브 시스템에 대한 정보가 포함됩니다.이 패키지에는 32개 중 22개가 포함되어 있습니다.ErrorJDK 6에서 제공되는 클래스입니다.

의 주요 클래스 및 인터페이스java.lang다음과 같습니다.

의 클래스java.lang모든 소스 파일에 자동으로 Import됩니다.

java.disc.ref

java.lang.refpackage는 응용 프로그램과 Java Virtual Machine(JVM; Java 가상 머신) 가비지 콜렉터 간의 제한된 상호 작용을 가능하게 하는 보다 유연한 유형의 참조를 제공합니다.이 패키지는 언어 디자이너가 "java.lang"으로 시작하는 이름을 붙일 수 있을 만큼 언어의 중심이지만, 다소 특별한 목적이 있어 많은 개발자가 사용하지 않습니다.이 패키지는 J2SE 1.2에서 추가되었습니다.

Java에는 표현식 참조 시스템이 있으며 가비지 수집을 위한 특별한 동작을 허용합니다.Java에서 일반적인 참조는 "강력 참조"로 알려져 있습니다.java.lang.refpackage는 소프트, , 팬텀의 3가지 다른 참조 유형을 정의합니다.각 참조 유형은 특정 용도에 맞게 설계되었습니다.

  • A SoftReference를 사용하여 캐시를 구현할 수 있습니다.강력한 참조에 의해 도달할 수 없지만(강력하게 도달할 수 없는) 소프트 참조에 의해 참조되는 오브젝트를 "softly reachable"이라고 부릅니다.소프트 도달 가능한 오브젝트는 가비지 컬렉터의 재량에 따라 수집되는 가비지일 수 있습니다.이는 일반적으로 소프트 도달 가능한 오브젝트는 빈 메모리가 부족할 때만 수집되지만 이는 가비지 컬렉터의 재량에 따라 결정됩니다.의미론적으로 소프트 레퍼런스는 "메모리가 필요하지 않는 한 이 오브젝트를 참조하는 것이 없을 때 이 오브젝트를 유지하라"는 의미입니다.
  • A WeakReference약한 맵을 구현하기 위해 사용됩니다.강하게 또는 부드럽게 도달할 수 없지만 약한 참조에 의해 참조되는 개체를 "weakly reachable"이라고 합니다.약하게 도달할 수 있는 개체는 다음 수집 주기에 수집되는 가비지입니다.이 동작은 클래스에서 사용됩니다.java.util.WeakHashMap약한 맵을 사용하면 프로그래머는 키/값 쌍을 맵에 넣을 수 있으며 키가 다른 곳에서도 도달할 수 없을 때 메모리를 차지하는 오브젝트에 대해 걱정할 필요가 없습니다.취약한 참조를 적용할 수 있는 또 다른 방법은 문자열 intern pool입니다.의미론적으로 약한 참조는 "다음 가비지 컬렉션에서 참조하는 개체가 없을 때 이 개체를 제거합니다."를 의미합니다.
  • A PhantomReference가비지 수집으로 표시되어 완료되었지만 아직 회수되지 않은 개체를 참조하는 데 사용됩니다.강하게, 부드럽게, 약하게 도달할 수 없지만 팬텀 참조에 의해 참조되는 객체를 "팬텀 도달 가능"이라고 합니다.이것에 의해, 최종화 메카니즘만으로 가능한 것보다, 보다 유연한 정리가 가능하게 됩니다.의미론적으로 팬텀 레퍼런스는 "이 객체는 더 이상 필요하지 않으며 수집 준비를 위해 최종 결정되었다"는 것을 의미한다.

이러한 참조 유형은 각각 다음과 같이 확장됩니다.Referenceclass - 를 제공합니다.get() 참조 객체에 대한 강력한 참조를 반환하는 메서드(또는null참조가 삭제되었거나 참조 유형이 팬텀인 경우) 및clear()참조를 클리어하는 방법.

java.lang.ref클래스도 정의합니다.ReferenceQueue위에서 설명한 각 응용 프로그램에서 참조 유형이 변경된 개체를 추적하기 위해 사용할 수 있습니다.어떤 경우Reference작성되면 참조 큐에 선택적으로 등록됩니다.응용 프로그램은 도달 가능성 상태가 변경된 참조를 얻기 위해 참조 큐를 폴링합니다.

java.vlect.reflect

리플렉션은 Java 코드가 런타임에 Java 구성 요소를 검사하고 "반사"할 수 있도록 하는 Java API의 구성요소입니다.의 클래스java.lang.reflect패키지, 와 함께java.lang.Class그리고.java.lang.Package디버거, 인터프리터, 오브젝트인스펙터, 클래스브라우저 등의 어플리케이션과 타깃오브젝트의 퍼블릭멤버(런타임클래스에 근거한) 또는 특정 클래스에 의해 선언된 멤버에 액세스 할 필요가 있는 오브젝트시리얼라이제이션이나 JavaBeans 등의 서비스를 수용합니다.이 패키지는 JDK 1.1에서 추가되었습니다.

리플렉션은 클래스를 인스턴스화하고 동적 프로그래밍을 허용하는 개념인 이름을 사용하여 메서드를 호출하는 데 사용됩니다.클래스, 인터페이스, 메서드, 필드컨스트럭터는 모두 런타임에 검색하여 사용할 수 있습니다.리플렉션은 JVM이 프로그램에 대해 가지고 있는 메타데이터에 의해 지원됩니다.

기술

성찰에는 다음과 같은 기본적인 기법이 있습니다.

  • 검출 – 오브젝트 또는 클래스를 취득하여 멤버, 슈퍼클래스, 구현된 인터페이스를 검출하고 검출된 요소를 사용할 수 있습니다.
  • 이름으로 사용 – 요소의 기호 이름부터 시작하여 명명된 요소를 사용합니다.
검출

일반적으로 검출은 오브젝트에서 시작하여Object.getClass()오브젝트의 취득 방법Class.그Classobject에는 클래스의 내용을 검출하는 여러 가지 방법이 있습니다.다음은 예를 제시하겠습니다.

  • getMethods()– 의 배열을 반환합니다.Method클래스 또는 인터페이스의 모든 공용 메서드를 나타내는 객체
  • getConstructors()– 의 배열을 반환합니다.Constructor클래스의 모든 공공 건설자를 나타내는 객체
  • getFields()– 의 배열을 반환합니다.Field클래스 또는 인터페이스의 모든 공개 필드를 나타내는 객체
  • getClasses()– 의 배열을 반환합니다.Class클래스 또는 인터페이스의 멤버(를 들어 내부 클래스)인 모든 퍼블릭 클래스와 인터페이스를 나타내는 오브젝트
  • getSuperclass()– 를 반환한다.Class클래스 또는 인터페이스의 슈퍼클래스를 나타내는 오브젝트(null인터페이스용으로 반환됩니다).
  • getInterfaces()– 의 배열을 반환합니다.Class클래스 또는 인터페이스에 의해 구현되는 모든 인터페이스를 나타내는 객체
이름으로 사용

Class오브젝트는 클래스 리터럴을 사용하여 검출을 통해 취득할 수 있습니다(예:MyClass.class또는 클래스 이름을 사용합니다(예:Class.forName("mypackage.MyClass"))를 사용하여Class오브젝트, 멤버Method,Constructor, 또는Field오브젝트는 멤버의 심볼명을 사용하여 취득할 수 있습니다.예를 들어 다음과 같습니다.

  • getMethod("methodName", Class...)– 를 반환한다.Methodpublic 메서드를 나타내는 오브젝트.클래스 또는 인터페이스의 "methodName"이라는 이름으로 지정된 파라미터가 받아들여집니다.Class...파라미터를 지정합니다.
  • getConstructor(Class...)– 를 반환한다.Constructor에 의해 지정된 파라미터를 받아들이는 클래스의 퍼블릭컨스트럭터를 나타내는 오브젝트Class...파라미터를 지정합니다.
  • getField("fieldName")– 를 반환한다.Field클래스 또는 인터페이스의 "fieldName"이라는 이름으로 퍼블릭필드를 나타내는 오브젝트

Method,Constructor,그리고.Field오브젝트를 사용하여 클래스의 표시된 멤버에 동적으로 액세스할 수 있습니다.예를 들어 다음과 같습니다.

  • Field.get(Object)– 를 반환한다.Object전달된 객체의 인스턴스에서 필드 값을 포함하는 모습get(). (만약Fieldobject는 스태틱필드를 나타냅니다.Object파라미터는 무시되며 다음과 같은 경우가 있습니다.null.)
  • Method.invoke(Object, Object...)– 를 반환한다.Object첫 번째 인스턴스의 메서드를 호출한 결과를 포함하는Object전달된 파라미터invoke().나머리는Object...매개 변수가 메서드에 전달됩니다.Methodobject는 정적 메서드를 나타내고 다음으로 첫 번째 메서드를 나타냅니다.Object파라미터는 무시되며 다음과 같은 경우가 있습니다.null.)
  • Constructor.newInstance(Object...)– 새로운 것을 반환한다.Object인스턴스가 생성자를 호출합니다.Object...파라미터가 컨스트럭터에 전달됩니다.(클래스의 파라미터가 없는 컨스트럭터는 콜을 통해 호출할 수도 있습니다.newInstance().)
어레이 및 프록시

java.lang.reflect패키지는 또한Array어레이 오브젝트를 작성 및 조작하기 위한 정적 메서드를 포함하는 클래스, J2SE 1.3 이후Proxy지정된 인터페이스를 구현하는 프록시 클래스의 동적 생성을 지원하는 클래스입니다.

의 실장Proxyclass는 다음 명령어를 구현하기 위해 제공된 객체에 의해 제공됩니다.InvocationHandler인터페이스입니다.InvocationHandlerinvoke(Object, Method, Object[])method는 프록시 오브젝트에서 호출되는 각 메서드에 대해 호출됩니다.첫 번째 파라미터는 프록시 오브젝트, 두 번째 파라미터는Method오브젝트는 프록시에 의해 구현된 인터페이스로부터의 메서드를 나타냅니다.세 번째 파라미터는 인터페이스 메서드에 전달된 파라미터 배열입니다.invoke()method는 다음 값을 반환합니다.Object프록시 인터페이스 메서드를 호출한 코드로 반환된 결과를 포함하는 결과입니다.

java.io

java.io 패키지에는 입력출력을 지원하는 클래스가 포함되어 있습니다.패키지의 클래스는 주로 스트림 지향이지만 랜덤 액세스 파일 클래스도 제공됩니다.패키지의 중앙 클래스는 다음과 같습니다.InputStream그리고.OutputStream이는 각각 바이트 스트림 읽기 및 쓰기용 추상 기본 클래스입니다.관련 클래스Reader그리고.Writer는 각각 문자 스트림에서 읽고 쓰기 위한 추상 기본 클래스입니다.패키지에는 호스트 파일 시스템과의 상호 작용을 지원하기 위한 몇 가지 기타 클래스도 있습니다.

스트림

스트림 클래스는 기본 하위 클래스를 확장하여 스트림 클래스에 기능을 추가하는 방식으로 데코레이터 패턴을 따릅니다.베이스 스트림클래스의 서브클래스는 일반적으로 다음 속성 중 하나로 명명됩니다.

  • 스트림 데이터의 소스/수신처
  • 스트림에 쓰여지거나 스트림에서 읽히는 데이터 유형
  • 스트림 데이터에 대해 실행되는 추가 처리 또는 필터링

스트림 서브클래스는 이름 지정 패턴을 사용하여 이름이 지정됩니다. XxxStreamType어디에Xxx이 기능을 설명하는 이름입니다.StreamType의 하나입니다.InputStream,OutputStream,Reader, 또는Writer.

다음의 표는, 에 의해서 직접 서포트되고 있는 송신원/행선지를 나타내고 있습니다.java.io패키지:

송신원/수신처 이름. 스트림 타입 입력/출력
byte 배열(byte[]) ByteArray byte 입출구 ByteArrayInputStream,ByteArrayOutputStream
char배열(char[]) CharArray char 입출구 CharArrayReader,CharArrayWriter
파일 File byte,char 입출구 FileInputStream,FileOutputStream,FileReader,FileWriter
스트링(StringBuffer) String char 입출구 StringReader,StringWriter
스레드(Thread) Piped byte,char 입출구 PipedInputStream,PipedOutputStream,PipedReader,PipedWriter

기타 표준 라이브러리 패키지는 다음과 같은 다른 수신처에 대한 스트림 구현을 제공합니다.InputStream에 의해 반환된java.net.Socket.getInputStream()메서드 또는 Java EEjavax.servlet.ServletOutputStream학급.

스트림 데이터의 데이터형 처리 및 처리 또는 필터링은 스트림 필터를 통해 이루어집니다.필터 클래스는 모두 호환되는 다른 스트림 개체를 생성자에 대한 매개 변수로 받아들이고 포함된 스트림을 추가 기능으로 장식합니다.필터는 기본 필터 클래스 중 하나를 확장하여 생성됩니다.FilterInputStream,FilterOutputStream,FilterReader, 또는FilterWriter.

Reader그리고.Writer클래스는 실제로는 바이트를 문자로 변환하기 위해 데이터 스트림에서 추가 처리를 수행하는 바이트 스트림일 뿐입니다.플랫폼에는 디폴트 문자 인코딩이 사용됩니다.J2SE 5.0 에서는Charset에 의해 반환된java.nio.charset.Charset.defaultCharset()스태틱 메서드InputStreamReaderclass가 변환하다InputStream에 대해서Reader및 그OutputStreamWriterclass가 변환하다OutputStream에 대해서Writer두 클래스 모두 사용할 문자 인코딩 지정을 지원하는 생성자를 가지고 있습니다.인코딩이 지정되지 않은 경우 프로그램은 플랫폼의 기본 인코딩을 사용합니다.

다음 표에서는 다른 프로세스와 필터를 보여 줍니다.java.io패키지는 직접 지원합니다.이 모든 클래스는 대응하는 것을 확장합니다.Filter학급.

작동 이름. 스트림 타입 입력/출력
버퍼링 Buffered byte,char 입출구 BufferedInputStream,BufferedOutputStream,BufferedReader,BufferedWriter
마지막으로 읽은 값 "복귀" Pushback byte,char PushbackInputStream,PushbackReader
읽기/쓰기 프리미티브 타입 Data byte 입출구 DataInputStream,DataOutputStream
오브젝트 시리얼화(읽기/쓰기 오브젝트) Object 바이트 입출구 ObjectInputStream,ObjectOutputStream

랜덤 액세스

RandomAccessFile클래스는 파일의 랜덤 액세스 읽기 및 쓰기를 지원합니다.클래스는 다음 읽기 또는 쓰기 작업에 파일 내의 바이트 오프셋을 나타내는 파일 포인터를 사용합니다.파일 포인터는 읽기 또는 쓰기에 의해 암묵적으로 이동되며,seek(long)또는skipBytes(int)방법들.파일 포인터의 현재 위치가 에 의해 반환됩니다.getFilePointer()방법.

파일 시스템

File class는 파일시스템 내의 파일 또는 디렉토리 경로를 나타냅니다. File오브젝트는 파일 및 디렉토리의 작성, 삭제 및 이름 변경, 읽기 전용마지막으로 수정된 타임스탬프 등의 파일 속성 조작을 지원합니다. File디렉토리를 나타내는 오브젝트를 사용하여 포함된 모든 파일 및 디렉토리의 목록을 가져올 수 있습니다.

FileDescriptorclass 는, 바이트의 송신원 또는 싱크(행선지)를 나타내는 파일 기술자입니다.일반적으로 이것은 파일이지만 콘솔 또는 네트워크 소켓일 수도 있습니다. FileDescriptor오브젝트를 사용하여File스트림입니다.그것들은 로부터 입수된다.File스트림과java.net소켓 및 데이터그램 소켓.

java.nio

J2SE 1.4에서는 패키지가java.nio메모리 매핑 I/O를 지원하기 위해 (NIO 또는 Non-blocking I/O)가 추가되어 기본 하드웨어에 가까운 I/O 조작을 용이하게 하고 때로는 퍼포먼스가 극적으로 향상되었습니다.java.niopackage는 다수의 버퍼 유형을 지원합니다.서브패키지java.nio.charset는 문자 데이터의 다양한 문자 인코딩을 지원합니다.서브패키지java.nio.channels는 파일이나 소켓 등 I/O 작업을 수행할 수 있는 엔티티에 대한 연결을 나타내는 채널을 지원합니다.java.nio.channels패키지는 파일의 세밀한 잠금도 지원합니다.

java.math

java.mathpackage는 다중 정밀도 연산(모듈러 연산 포함)을 지원하며 암호 키 생성에 사용되는 다중 정밀도 소수 생성기를 제공합니다.패키지의 주요 클래스는 다음과 같습니다.

  • BigDecimal– 임의의 기호로 구분된 10진수를 제공합니다. BigDecimal를 통해 반올림 동작을 사용자가 제어할 수 있습니다.RoundingMode.
  • BigInteger– 임의 구분 정수를 제공합니다.조작처BigInteger넘치거나 정밀도가 저하되지 않아야 합니다.표준 산술 연산 외에 모듈식 연산, GCD 계산, 프라임리티 테스트, 소수 생성, 비트 조작 및 기타 기타 연산을 제공합니다.
  • MathContext– 숫자 연산자의 특정 규칙을 설명하는 컨텍스트 설정을 캡슐화합니다.
  • RoundingMode– 8개의 반올림 동작을 제공하는 열거형.

java.net

java.netpackage는 네트워크에 특별한 IO 루틴을 제공하여 HTTP 요청 및 기타 일반적인 트랜잭션을 허용합니다.

java.text

java.textpackage는 문자열의 해석 루틴을 구현하고 다양한 사람이 사용하는 언어 및 로케일 고유의 해석을 지원합니다.

java.module

오브젝트를 집약하는 데이터 구조에는java.util패키지.패키지에는 Collections API가 포함되어 있습니다.Collections API는 설계 패턴 고려사항에 크게 영향을 받는 조직화된 데이터 구조 계층입니다.

특수 용도 패키지

java.module

Java 애플릿 작성을 지원하기 위해 작성되었습니다.java.applet패키지를 사용하면 네트워크를 통해 응용 프로그램을 다운로드하고 보호된 샌드박스 내에서 실행할 수 있습니다.샌드박스에 보안 제한이 쉽게 부과됩니다.예를 들어 개발자는 애플릿에 디지털 서명을 적용하여 안전하다고 라벨을 붙일 수 있다.이를 통해 사용자는 애플릿에 제한된 작업(로컬 하드 드라이브 액세스 등)을 수행할 수 있는 권한을 부여하고 샌드박스 제한을 일부 또는 모두 제거할 수 있습니다.디지털 증명서는 인증 기관에서 발급합니다.

java.beans

에 포함되다java.beans패키지는 JavaBeans 아키텍처에 의해 정의된 재사용 가능한 컴포넌트인 콩을 개발하고 조작하기 위한 다양한 클래스입니다.아키텍처는 컴포넌트의 속성을 조작하고 속성이 변경되었을 때 이벤트를 기동하는 메커니즘을 제공합니다.

의 APIjava.beans는 콩을 조합, 커스터마이즈 및 조작할 수 있는 콩 편집 도구에서 사용하기 위한 것입니다.빈 에디터의 한 가지 유형은 통합 개발 환경의 GUI 디자이너입니다.

java.awt

java.awtAbstract Window Toolkit은 기본 네이티브 플랫폼의 위젯 세트, GUI 이벤트 서브시스템의 핵심 및 네이티브 윈도우 시스템과 Java 애플리케이션 간의 인터페이스를 기반으로 한 기본적인 GUI 위젯 세트에 대한 액세스를 제공합니다.또, 몇개의 기본적인 레이아웃 매니저, 클립보드드래그 앤 드롭에 사용하는 데이터 전송 패키지, 마우스키보드등입력 디바이스에의 인터페이스, 및 서포트 시스템의 시스템 트레이에의 액세스도 제공합니다.이 패키지와 함께javax.swing에는 JDK 6에서 가장 많은 수의 Enum(총 7개)이 포함되어 있습니다.

java.rmi

java.rmipackage는 Java 리모트메서드 호출을 제공하여 서로 다른 JVM에서 실행되는2개의 Java 어플리케이션 간의 리모트프로시저 콜을 지원합니다.

java.security

메시지 다이제스트알고리즘을 포함한 보안 지원은java.security패키지.

java.sql

JDBC API(SQL 데이터베이스 액세스에 사용)의 실장은 다음과 같이 그룹화되어 있습니다.java.sql패키지.

javax.rmi

javax.rmi패키지는 RMI over IIOP 프로토콜을 사용하여 응용 프로그램 간의 원격 통신을 지원합니다.이 프로토콜은 RMI 및 CORBA 기능을 결합합니다.

Java SE 코어 테크놀로지 - CORBA / RMI-IIOP

javax.displaces

스윙은 그 위에 세워진 루틴의 집합이다.java.awt플랫폼에 의존하지 않는 위젯 툴킷을 제공합니다. javax.swing는 기본 운영체제 GUI 지원에 의존하지 않고 2D 그리기 루틴을 사용하여 사용자 인터페이스 컴포넌트를 렌더링합니다.

이 패키지에는 JDK 6에서 가장 많은 클래스(전체 133개)가 포함되어 있습니다.이 패키지와 함께java.awt에는 JDK 6에서 가장 많은 수의 Enum(총 7개)이 포함되어 있습니다.PLAF(Pluggable Look and Feel)를 지원하므로 GUI 내의 위젯이 기본 시스템의 Enum을 모방할 수 있습니다.설계 패턴은 시스템에 침투하며, 특히 기능과 외관 사이의 결합을 느슨하게 하는 모델-뷰-컨트롤러 패턴의 수정입니다.한 가지 모순되는 점은 (J2SE 1.3 기준) 글꼴이 Java가 아닌 기본 시스템에 의해 그려지기 때문에 텍스트 이식성이 제한된다는 것입니다.비트맵 글꼴 사용 등의 해결 방법이 존재합니다.일반적으로 "레이아웃"이 사용되며 플랫폼 전체에서 미적으로 일관된 GUI 내에 요소를 유지합니다.

javax.disc.text.disc.parser

javax.swing.text.html.parserpackage는 다양한 웹 브라우저 및 웹 봇 작성에 사용되는 오류 허용 HTML 파서를 제공합니다.

javax.xml.syslog.information

javax.xml.bind.annotation패키지는 JDK 6에서 가장 많은 주석 유형(전체 30개)을 포함합니다. 이 패키지는 Java 프로그램 요소를 XML 스키마 매핑으로 사용자 지정하는 주석을 정의합니다.

OMG 패키지

org.omg.코바

org.omg.CORBA패키지는 General Inter-ORB 프로토콜을 사용하는 애플리케이션 의 원격 통신을 지원하고 공통 개체 요청 브로커 아키텍처의 다른 기능을 지원합니다.이 패키지는 RMIRMI-IIOP와 마찬가지로 다른 가상 시스템에서 객체의 원격 메서드를 호출하기 위한 것입니다(일반적으로 네트워크를 통해).

이 패키지에는 최대 개수의 파일이 포함되어 있습니다.ExceptionJDK 6의 클래스(전체 45개). CORBA는 다양한 언어 간에 이식할 수 있지만, 이 때문에 복잡성이 높아집니다.

이러한 패키지는 Java 9에서 폐지되어 Java [7]11에서 삭제되었습니다.

org.omg.휴대용가로채기

org.omg.PortableInterceptor패키지에는 JDK 6에서 가장 많은 인터페이스(전체 39개)가 포함되어 있습니다.ORB 서비스가 ORB 실행의 정상적인 흐름을 가로채는 ORB 후크를 등록하는 메커니즘이 있습니다.

보안.

몇 가지 중대한 보안 취약성이 [8][9]보고되었습니다.Oracle의 보안 경고는 [10]중요한 보안 관련 패치를 Java SE에 알립니다.

레퍼런스

  1. ^ "Java SE Overview". Oracle Corporation. Retrieved February 26, 2017.
  2. ^ "Java SE 6 Release Contents". Oracle Corporation and/or its affiliates. Retrieved January 1, 2013.
  3. ^ 공식 Java SE 7 레퍼런스 구현으로서의 OpenJDK로의 이행
  4. ^ Java Platform, Standard Edition 7 레퍼런스 구현
  5. ^ "Java Platform, Standard Edition 8 Reference Implementations". Archived from the original on November 21, 2015.
  6. ^ "Java Specification Requests Overview". Oracle Corporation and/or its affiliates. Retrieved January 1, 2013.
  7. ^ "JEP 320: Remove the Java EE and CORBA Modules". Openjdk.java.net. 2019-05-23. Retrieved 2022-03-20.
  8. ^ 최신 Java 버전의 위험한 취약성 The H Security, 2013년 1월 10일
  9. ^ Darlene Storm (September 25, 2012). "Another critical Java vulnerability puts 1 billion users at risk". Computerworld Security Blog. Archived from the original on January 13, 2013. Retrieved January 11, 2013.
  10. ^ "Critical Patch Updates, Security Alerts and Third Party Bulletin". Oracle.

외부 링크