Java 플랫폼, Standard Edition
Java Platform, Standard EditionJava 플랫폼 에디션 |
---|
![]() |
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개가 포함되어 있습니다.Error
JDK 6에서 제공되는 클래스입니다.
의 주요 클래스 및 인터페이스java.lang
다음과 같습니다.
Object
– 모든 클래스 계층의 루트인 클래스.Enum
– 열거 클래스의 기본 클래스(J2SE 5.0 기준).Class
– Java 반사 시스템의 루트 클래스입니다.Throwable
– 예외 클래스 계층의 기본 클래스인 클래스.Error
,Exception
,그리고.RuntimeException
– 각 예외 유형의 기본 클래스.Thread
– 스레드 작업을 허용하는 클래스입니다.String
– 문자열 및 문자열 리터럴 클래스.StringBuffer
그리고.StringBuilder
– 문자열 조작을 실행하는 클래스(StringBuilder
(J2SE 5.0)을 참조해 주세요.Comparable
– 객체를 일반 비교 및 정렬할 수 있는 인터페이스(J2SE 1.2 기준).Iterable
– 확장 루프를 사용한 범용 반복이 가능한 인터페이스(J2SE 5.0 이후).ClassLoader
,Process
,Runtime
,SecurityManager
,그리고.System
– 클래스의 동적인 로드, 외부 프로세스의 작성, 시각 등의 호스트 환경의 문의, 보안 정책의 실시를 관리하는 「시스템 운용」을 제공하는 클래스.Math
그리고.StrictMath
– 사인, 코사인, 제곱근 등 기본적인 산술 함수를 제공하는 클래스(StrictMath
(J2SE 1.3 기준)- 원시 유형을 개체로 캡슐화하는 원시 래퍼 클래스입니다.
- 언어 수준 및 기타 일반적인 예외에 대해 느려지는 기본 예외 클래스입니다.
의 클래스java.lang
모든 소스 파일에 자동으로 Import됩니다.
java.disc.ref
그java.lang.ref
package는 응용 프로그램과 Java Virtual Machine(JVM; Java 가상 머신) 가비지 콜렉터 간의 제한된 상호 작용을 가능하게 하는 보다 유연한 유형의 참조를 제공합니다.이 패키지는 언어 디자이너가 "java.lang"으로 시작하는 이름을 붙일 수 있을 만큼 언어의 중심이지만, 다소 특별한 목적이 있어 많은 개발자가 사용하지 않습니다.이 패키지는 J2SE 1.2에서 추가되었습니다.
Java에는 표현식 참조 시스템이 있으며 가비지 수집을 위한 특별한 동작을 허용합니다.Java에서 일반적인 참조는 "강력 참조"로 알려져 있습니다.그java.lang.ref
package는 소프트, 약, 팬텀의 3가지 다른 참조 유형을 정의합니다.각 참조 유형은 특정 용도에 맞게 설계되었습니다.
- A
SoftReference
를 사용하여 캐시를 구현할 수 있습니다.강력한 참조에 의해 도달할 수 없지만(강력하게 도달할 수 없는) 소프트 참조에 의해 참조되는 오브젝트를 "softly reachable"이라고 부릅니다.소프트 도달 가능한 오브젝트는 가비지 컬렉터의 재량에 따라 수집되는 가비지일 수 있습니다.이는 일반적으로 소프트 도달 가능한 오브젝트는 빈 메모리가 부족할 때만 수집되지만 이는 가비지 컬렉터의 재량에 따라 결정됩니다.의미론적으로 소프트 레퍼런스는 "메모리가 필요하지 않는 한 이 오브젝트를 참조하는 것이 없을 때 이 오브젝트를 유지하라"는 의미입니다. - A
WeakReference
약한 맵을 구현하기 위해 사용됩니다.강하게 또는 부드럽게 도달할 수 없지만 약한 참조에 의해 참조되는 개체를 "weakly reachable"이라고 합니다.약하게 도달할 수 있는 개체는 다음 수집 주기에 수집되는 가비지입니다.이 동작은 클래스에서 사용됩니다.java.util.WeakHashMap
약한 맵을 사용하면 프로그래머는 키/값 쌍을 맵에 넣을 수 있으며 키가 다른 곳에서도 도달할 수 없을 때 메모리를 차지하는 오브젝트에 대해 걱정할 필요가 없습니다.취약한 참조를 적용할 수 있는 또 다른 방법은 문자열 intern pool입니다.의미론적으로 약한 참조는 "다음 가비지 컬렉션에서 참조하는 개체가 없을 때 이 개체를 제거합니다."를 의미합니다. - A
PhantomReference
가비지 수집으로 표시되어 완료되었지만 아직 회수되지 않은 개체를 참조하는 데 사용됩니다.강하게, 부드럽게, 약하게 도달할 수 없지만 팬텀 참조에 의해 참조되는 객체를 "팬텀 도달 가능"이라고 합니다.이것에 의해, 최종화 메카니즘만으로 가능한 것보다, 보다 유연한 정리가 가능하게 됩니다.의미론적으로 팬텀 레퍼런스는 "이 객체는 더 이상 필요하지 않으며 수집 준비를 위해 최종 결정되었다"는 것을 의미한다.
이러한 참조 유형은 각각 다음과 같이 확장됩니다.Reference
class - 를 제공합니다.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
.그Class
object에는 클래스의 내용을 검출하는 여러 가지 방법이 있습니다.다음은 예를 제시하겠습니다.
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...)
– 를 반환한다.Method
public 메서드를 나타내는 오브젝트.클래스 또는 인터페이스의 "methodName"이라는 이름으로 지정된 파라미터가 받아들여집니다.Class...
파라미터를 지정합니다.getConstructor(Class...)
– 를 반환한다.Constructor
에 의해 지정된 파라미터를 받아들이는 클래스의 퍼블릭컨스트럭터를 나타내는 오브젝트Class...
파라미터를 지정합니다.getField("fieldName")
– 를 반환한다.Field
클래스 또는 인터페이스의 "fieldName"이라는 이름으로 퍼블릭필드를 나타내는 오브젝트
Method
,Constructor
,그리고.Field
오브젝트를 사용하여 클래스의 표시된 멤버에 동적으로 액세스할 수 있습니다.예를 들어 다음과 같습니다.
Field.get(Object)
– 를 반환한다.Object
전달된 객체의 인스턴스에서 필드 값을 포함하는 모습get()
. (만약Field
object는 스태틱필드를 나타냅니다.Object
파라미터는 무시되며 다음과 같은 경우가 있습니다.null
.)Method.invoke(Object, Object...)
– 를 반환한다.Object
첫 번째 인스턴스의 메서드를 호출한 결과를 포함하는Object
전달된 파라미터invoke()
.나머리는Object...
매개 변수가 메서드에 전달됩니다.Method
object는 정적 메서드를 나타내고 다음으로 첫 번째 메서드를 나타냅니다.Object
파라미터는 무시되며 다음과 같은 경우가 있습니다.null
.)Constructor.newInstance(Object...)
– 새로운 것을 반환한다.Object
인스턴스가 생성자를 호출합니다.그Object...
파라미터가 컨스트럭터에 전달됩니다.(클래스의 파라미터가 없는 컨스트럭터는 콜을 통해 호출할 수도 있습니다.newInstance()
.)
어레이 및 프록시
그java.lang.reflect
패키지는 또한Array
어레이 오브젝트를 작성 및 조작하기 위한 정적 메서드를 포함하는 클래스, J2SE 1.3 이후Proxy
지정된 인터페이스를 구현하는 프록시 클래스의 동적 생성을 지원하는 클래스입니다.
의 실장Proxy
class는 다음 명령어를 구현하기 위해 제공된 객체에 의해 제공됩니다.InvocationHandler
인터페이스입니다.그InvocationHandler
의invoke(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()
스태틱 메서드그InputStreamReader
class가 변환하다InputStream
에 대해서Reader
및 그OutputStreamWriter
class가 변환하다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
디렉토리를 나타내는 오브젝트를 사용하여 포함된 모든 파일 및 디렉토리의 목록을 가져올 수 있습니다.
그FileDescriptor
class 는, 바이트의 송신원 또는 싱크(행선지)를 나타내는 파일 기술자입니다.일반적으로 이것은 파일이지만 콘솔 또는 네트워크 소켓일 수도 있습니다. FileDescriptor
오브젝트를 사용하여File
스트림입니다.그것들은 로부터 입수된다.File
스트림과java.net
소켓 및 데이터그램 소켓.
java.nio
J2SE 1.4에서는 패키지가java.nio
메모리 매핑 I/O를 지원하기 위해 (NIO 또는 Non-blocking I/O)가 추가되어 기본 하드웨어에 가까운 I/O 조작을 용이하게 하고 때로는 퍼포먼스가 극적으로 향상되었습니다.그java.nio
package는 다수의 버퍼 유형을 지원합니다.서브패키지java.nio.charset
는 문자 데이터의 다양한 문자 인코딩을 지원합니다.서브패키지java.nio.channels
는 파일이나 소켓 등 I/O 작업을 수행할 수 있는 엔티티에 대한 연결을 나타내는 채널을 지원합니다.그java.nio.channels
패키지는 파일의 세밀한 잠금도 지원합니다.
java.math
그java.math
package는 다중 정밀도 연산(모듈러 연산 포함)을 지원하며 암호 키 생성에 사용되는 다중 정밀도 소수 생성기를 제공합니다.패키지의 주요 클래스는 다음과 같습니다.
BigDecimal
– 임의의 기호로 구분된 10진수를 제공합니다.BigDecimal
를 통해 반올림 동작을 사용자가 제어할 수 있습니다.RoundingMode
.BigInteger
– 임의 구분 정수를 제공합니다.조작처BigInteger
넘치거나 정밀도가 저하되지 않아야 합니다.표준 산술 연산 외에 모듈식 연산, GCD 계산, 프라임리티 테스트, 소수 생성, 비트 조작 및 기타 기타 연산을 제공합니다.MathContext
– 숫자 연산자의 특정 규칙을 설명하는 컨텍스트 설정을 캡슐화합니다.RoundingMode
– 8개의 반올림 동작을 제공하는 열거형.
java.net
그java.net
package는 네트워크에 특별한 IO 루틴을 제공하여 HTTP 요청 및 기타 일반적인 트랜잭션을 허용합니다.
java.text
그java.text
package는 문자열의 해석 루틴을 구현하고 다양한 사람이 사용하는 언어 및 로케일 고유의 해석을 지원합니다.
java.module
오브젝트를 집약하는 데이터 구조에는java.util
패키지.패키지에는 Collections API가 포함되어 있습니다.Collections API는 설계 패턴 고려사항에 크게 영향을 받는 조직화된 데이터 구조 계층입니다.
특수 용도 패키지
java.module
Java 애플릿 작성을 지원하기 위해 작성되었습니다.java.applet
패키지를 사용하면 네트워크를 통해 응용 프로그램을 다운로드하고 보호된 샌드박스 내에서 실행할 수 있습니다.샌드박스에 보안 제한이 쉽게 부과됩니다.예를 들어 개발자는 애플릿에 디지털 서명을 적용하여 안전하다고 라벨을 붙일 수 있다.이를 통해 사용자는 애플릿에 제한된 작업(로컬 하드 드라이브 액세스 등)을 수행할 수 있는 권한을 부여하고 샌드박스 제한을 일부 또는 모두 제거할 수 있습니다.디지털 증명서는 인증 기관에서 발급합니다.
java.beans
에 포함되다java.beans
패키지는 JavaBeans 아키텍처에 의해 정의된 재사용 가능한 컴포넌트인 콩을 개발하고 조작하기 위한 다양한 클래스입니다.아키텍처는 컴포넌트의 속성을 조작하고 속성이 변경되었을 때 이벤트를 기동하는 메커니즘을 제공합니다.
의 APIjava.beans
는 콩을 조합, 커스터마이즈 및 조작할 수 있는 콩 편집 도구에서 사용하기 위한 것입니다.빈 에디터의 한 가지 유형은 통합 개발 환경의 GUI 디자이너입니다.
java.awt
그java.awt
Abstract Window Toolkit은 기본 네이티브 플랫폼의 위젯 세트, GUI 이벤트 서브시스템의 핵심 및 네이티브 윈도우 시스템과 Java 애플리케이션 간의 인터페이스를 기반으로 한 기본적인 GUI 위젯 세트에 대한 액세스를 제공합니다.또, 몇개의 기본적인 레이아웃 매니저, 클립보드나 드래그 앤 드롭에 사용하는 데이터 전송 패키지, 마우스나 키보드등의 입력 디바이스에의 인터페이스, 및 서포트 시스템의 시스템 트레이에의 액세스도 제공합니다.이 패키지와 함께javax.swing
에는 JDK 6에서 가장 많은 수의 Enum(총 7개)이 포함되어 있습니다.
java.rmi
그java.rmi
package는 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.parser
package는 다양한 웹 브라우저 및 웹 봇 작성에 사용되는 오류 허용 HTML 파서를 제공합니다.
javax.xml.syslog.information
그javax.xml.bind.annotation
패키지는 JDK 6에서 가장 많은 주석 유형(전체 30개)을 포함합니다. 이 패키지는 Java 프로그램 요소를 XML 스키마 매핑으로 사용자 지정하는 주석을 정의합니다.
OMG 패키지
org.omg.코바
그org.omg.CORBA
패키지는 General Inter-ORB 프로토콜을 사용하는 애플리케이션 간의 원격 통신을 지원하고 공통 개체 요청 브로커 아키텍처의 다른 기능을 지원합니다.이 패키지는 RMI 및 RMI-IIOP와 마찬가지로 다른 가상 시스템에서 객체의 원격 메서드를 호출하기 위한 것입니다(일반적으로 네트워크를 통해).
이 패키지에는 최대 개수의 파일이 포함되어 있습니다.Exception
JDK 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에 알립니다.
레퍼런스
- ^ "Java SE Overview". Oracle Corporation. Retrieved February 26, 2017.
- ^ "Java SE 6 Release Contents". Oracle Corporation and/or its affiliates. Retrieved January 1, 2013.
- ^ 공식 Java SE 7 레퍼런스 구현으로서의 OpenJDK로의 이행
- ^ Java Platform, Standard Edition 7 레퍼런스 구현
- ^ "Java Platform, Standard Edition 8 Reference Implementations". Archived from the original on November 21, 2015.
- ^ "Java Specification Requests Overview". Oracle Corporation and/or its affiliates. Retrieved January 1, 2013.
- ^ "JEP 320: Remove the Java EE and CORBA Modules". Openjdk.java.net. 2019-05-23. Retrieved 2022-03-20.
- ^ 최신 Java 버전의 위험한 취약성 The H Security, 2013년 1월 10일
- ^ 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.
- ^ "Critical Patch Updates, Security Alerts and Third Party Bulletin". Oracle.