Java Platform, Standard Edition (Java SE) is a computing platform for development and deployment of portable code for desktop and server environments.[1] Java SE was formerly known as Java 2 Platform, Standard Edition (J2SE).
The platform was known as Java 2 Platform, Standard Edition or J2SE from version 1.2, until the name was changed to Java Platform, Standard Edition or Java SE in version 1.5. The "SE" is used to distinguish the base platform from the Enterprise Edition (Java EE) and Micro Edition (Java ME) platforms. The "2" was originally intended to emphasize the major changes introduced in version 1.2, but was removed in version 1.6. The naming convention has been changed several times over the Java version history. Starting with J2SE 1.4 (Merlin), Java SE has been developed under the Java Community Process, which produces descriptions of proposed and final specifications for the Java platform called Java Specification Requests (JSR).[6] JSR 59 was the umbrella specification for J2SE 1.4 and JSR 176 specified J2SE 5.0 (Tiger). Java SE 6 (Mustang) was released under JSR 270.
Java Platform, Micro Edition (Java ME) is a related specification intended to provide a certified collection of Java APIs for the development of software for small, resource-constrained devices such as cell phones, PDAs and set-top boxes.
The Java packagejava.lang contains fundamental classes and interfaces closely tied to the language and runtime system. This includes the root classes that form the class hierarchy, types tied to the language definition, basic exceptions, math functions, threading, security functions, as well as some information on the underlying native system. This package contains 22 of 32 Error classes provided in JDK 6.
The main classes and interfaces in java.lang are:
Object – the class that is the root of every class hierarchy.
The basic exception classes thrown for language-level and other common exceptions.
Classes in java.lang are automatically imported into every source file.
java.lang.ref
The java.lang.ref package provides more flexible types of references than are otherwise available, permitting limited interaction between the application and the Java Virtual Machine (JVM) garbage collector. It is an important package, central enough to the language for the language designers to give it a name that starts with "java.lang", but it is somewhat special-purpose and not used by a lot of developers. This package was added in J2SE 1.2.
Java has an expressive system of references and allows for special behavior for garbage collection. A normal reference in Java is known as a "strong reference". The java.lang.ref package defines three other types of references—soft, weak, and phantom references. Each type of reference is designed for a specific use.
A SoftReference can be used to implement a cache. An object that is not reachable by a strong reference (that is, not strongly reachable), but is referenced by a soft reference is called "softly reachable". A softly reachable object may be garbage collected at the discretion of the garbage collector. This generally means that softly reachable objects are only garbage collected when free memory is low—but again, this is at the garbage collector's discretion. Semantically, a soft reference means, "Keep this object when nothing else references it, unless the memory is needed."
A WeakReference is used to implement weak maps. An object that is not strongly or softly reachable, but is referenced by a weak reference is called "weakly reachable". A weakly reachable object is garbage collected in the next collection cycle. This behavior is used in the class java.util.WeakHashMap. A weak map allows the programmer to put key/value pairs in the map and not worry about the objects taking up memory when the key is no longer reachable anywhere else. Another possible application of weak references is the string intern pool. Semantically, a weak reference means "get rid of this object when nothing else references it at the next garbage collection."
A PhantomReference is used to reference objects that have been marked for garbage collection and have been finalized, but have not yet been reclaimed. An object that is not strongly, softly or weakly reachable, but is referenced by a phantom reference is called "phantom reachable." This allows for more flexible cleanup than is possible with the finalization mechanism alone. Semantically, a phantom reference means "this object is no longer needed and has been finalized in preparation for being collected."
Each of these reference types extends the Reference class, which provides the get()method to return a strong reference to the referent object (or null if the reference has been cleared or if the reference type is phantom), and the clear() method to clear the reference.
The java.lang.ref also defines the class ReferenceQueue, which can be used in each of the applications discussed above to keep track of objects that have changed reference type. When a Reference is created it is optionally registered with a reference queue. The application polls the reference queue to get references that have changed reachability state.
java.lang.reflect
Reflection is a constituent of the Java API that lets Java code examine and "reflect" on Java components at runtime and use the reflected members. Classes in the java.lang.reflect package, along with java.lang.Class and java.lang.Package accommodate applications such as debuggers, interpreters, object inspectors, class browsers, and services such as object serialization and JavaBeans that need access to either the public members of a target object (based on its runtime class) or the members declared by a given class. This package was added in JDK 1.1.
Reflection is used to instantiate classes and invoke methods using their names, a concept that allows for dynamic programming. Classes, interfaces, methods, fields, and constructors can all be discovered and used at runtime. Reflection is supported by metadata that the JVM has about the program.
Techniques
There are basic techniques involved in reflection:
Discovery – this involves taking an object or class and discovering the members, superclasses, implemented interfaces, and then possibly using the discovered elements.
Use by name – involves starting with the symbolic name of an element and using the named element.
Discovery
Discovery typically starts with an object and calling the Object.getClass() method to get the object's Class. The Class object has several methods for discovering the contents of the class, for example:
getMethods() – returns an array of Method objects representing all the public methods of the class or interface
getConstructors() – returns an array of Constructor objects representing all the public constructors of the class
getFields() – returns an array of Field objects representing all the public fields of the class or interface
getClasses() – returns an array of Class objects representing all the public classes and interfaces that are members (e.g. inner classes) of the class or interface
getSuperclass() – returns the Class object representing the superclass of the class or interface (null is returned for interfaces)
getInterfaces() – returns an array of Class objects representing all the interfaces that are implemented by the class or interface
Use by name
The Class object can be obtained either through discovery, by using the class literal (e.g. MyClass.class) or by using the name of the class (e.g. Class.forName("mypackage.MyClass")). With a Class object, member Method, Constructor, or Field objects can be obtained using the symbolic name of the member. For example:
getMethod("methodName", Class...) – returns the Method object representing the public method with the name "methodName" of the class or interface that accepts the parameters specified by the Class... parameters.
getConstructor(Class...) – returns the Constructor object representing the public constructor of the class that accepts the parameters specified by the Class... parameters.
getField("fieldName") – returns the Field object representing the public field with the name "fieldName" of the class or interface.
Method, Constructor, and Field objects can be used to dynamically access the represented member of the class. For example:
Field.get(Object) – returns an Object containing the value of the field from the instance of the object passed to get(). (If the Field object represents a static field then the Object parameter is ignored and may be null.)
Method.invoke(Object, Object...) – returns an Object containing the result of invoking the method for the instance of the first Object parameter passed to invoke(). The remaining Object... parameters are passed to the method. (If the Method object represents a static method then the first Object parameter is ignored and may be null.)
Constructor.newInstance(Object...) – returns the new Object instance from invoking the constructor. The Object... parameters are passed to the constructor. (Note that the parameterless constructor for a class can also be invoked by calling newInstance().)
Arrays and proxies
The java.lang.reflect package also provides an Array class that contains static methods for creating and manipulating array objects, and since J2SE 1.3, a Proxy class that supports dynamic creation of proxy classes that implement specified interfaces.
The implementation of a Proxy class is provided by a supplied object that implements the InvocationHandler interface. The InvocationHandler's invoke(Object, Method, Object[]) method is called for each method invoked on the proxy object—the first parameter is the proxy object, the second parameter is the Method object representing the method from the interface implemented by the proxy, and the third parameter is the array of parameters passed to the interface method. The invoke() method returns an Object result that contains the result returned to the code that called the proxy interface method.
java.io
The java.io package contains classes that support input and output. The classes in the package are primarily stream-oriented; however, a class for random accessfiles is also provided. The central classes in the package are InputStream and OutputStream, which are abstract base classes for reading from and writing to byte streams, respectively. The related classes Reader and Writer are abstract base classes for reading from and writing to character streams, respectively. The package also has a few miscellaneous classes to support interactions with the host file system.
Streams
The stream classes follow the decorator pattern by extending the base subclass to add features to the stream classes. Subclasses of the base stream classes are typically named for one of the following attributes:
the source/destination of the stream data
the type of data written to/read from the stream
additional processing or filtering performed on the stream data
The stream subclasses are named using the naming patternXxxStreamType where Xxx is the name describing the feature and StreamType is one of InputStream, OutputStream, Reader, or Writer.
The following table shows the sources/destinations supported directly by the java.io package:
Data type handling and processing or filtering of stream data is accomplished through stream filters. The filter classes all accept another compatible stream object as a parameter to the constructor and decorate the enclosed stream with additional features. Filters are created by extending one of the base filter classes FilterInputStream, FilterOutputStream, FilterReader, or FilterWriter.
The Reader and Writer classes are really just byte streams with additional processing performed on the data stream to convert the bytes to characters. They use the default character encoding for the platform, which as of J2SE 5.0 is represented by the Charset returned by the java.nio.charset.Charset.defaultCharset() static method. The InputStreamReader class converts an InputStream to a Reader and the OutputStreamWriter class converts an OutputStream to a Writer. Both these classes have constructors that support specifying the character encoding to use. If no encoding is specified, the program uses the default encoding for the platform.
The following table shows the other processes and filters that the java.io package directly supports. All these classes extend the corresponding Filter class.
The RandomAccessFile class supports random access reading and writing of files. The class uses a file pointer that represents a byte-offset within the file for the next read or write operation. The file pointer is moved implicitly by reading or writing and explicitly by calling the seek(long) or skipBytes(int) methods. The current position of the file pointer is returned by the getFilePointer() method.
File system
The File class represents a file or directorypath in a file system. File objects support the creation, deletion and renaming of files and directories and the manipulation of file attributes such as read-only and last modified timestamp. File objects that represent directories can be used to get a list of all the contained files and directories.
The FileDescriptor class is a file descriptor that represents a source or sink (destination) of bytes. Typically this is a file, but can also be a console or network socket. FileDescriptor objects are used to create File streams. They are obtained from File streams and java.net sockets and datagram sockets.
In J2SE 1.4, the package java.nio (NIO or Non-blocking I/O) was added to support memory-mapped I/O, facilitating I/O operations closer to the underlying hardware with sometimes dramatically better performance. The java.nio package provides support for a number of buffer types. The subpackage java.nio.charset provides support for different character encodings for character data. The subpackage java.nio.channels provides support for channels, which represent connections to entities that are capable of performing I/O operations, such as files and sockets. The java.nio.channels package also provides support for fine-grained locking of files.
java.math
The java.math package supports multiprecision arithmetic (including modular arithmetic operations) and provides multiprecision prime number generators used for cryptographic key generation. The main classes of the package are:
BigDecimal – provides arbitrary-precision signed decimal numbers. BigDecimal gives the user control over rounding behavior through RoundingMode.
BigInteger – provides arbitrary-precision integers. Operations on BigInteger do not overflow or lose precision. In addition to standard arithmetic operations, it provides modular arithmetic, GCD calculation, primality testing, prime number generation, bit manipulation, and other miscellaneous operations.
MathContext – encapsulate the context settings that describe certain rules for numerical operators.
RoundingMode – an enumeration that provides eight rounding behaviors.
java.net
The java.net package provides special IO routines for networks, allowing HTTP requests, as well as other common transactions.
java.text
The java.text package implements parsing routines for strings and supports various human-readable languages and locale-specific parsing.
java.util
Data structures that aggregate objects are the focus of the java.util package. Included in the package is the Collections API, an organized data structure hierarchy influenced heavily by the design patterns considerations.
Created to support Java applet creation, the java.applet package lets applications be downloaded over a network and run within a guarded sandbox. Security restrictions are easily imposed on the sandbox. A developer, for example, may apply a digital signature to an applet, thereby labeling it as safe. Doing so allows the user to grant the applet permission to perform restricted operations (such as accessing the local hard drive), and removes some or all the sandbox restrictions. Digital certificates are issued by certificate authorities.
Included in the java.beans package are various classes for developing and manipulating beans, reusable components defined by the JavaBeans architecture. The architecture provides mechanisms for manipulating properties of components and firing events when those properties change.
The APIs in java.beans are intended for use by a bean editing tool, in which beans can be combined, customized, and manipulated. One type of bean editor is a GUI designer in an integrated development environment.
The java.awt, or Abstract Window Toolkit, provides access to a basic set of GUI widgets based on the underlying native platform's widget set, the core of the GUI event subsystem, and the interface between the native windowing system and the Java application. It also provides several basic layout managers, a datatransfer package for use with the Clipboard and Drag and Drop, the interface to input devices such as mice and keyboards, as well as access to the system tray on supporting systems. This package, along with javax.swing contains the largest number of enums (7 in all) in JDK 6.
The javax.rmi package provided support for the remote communication between applications, using the RMI over IIOP protocol. This protocol combines RMI and CORBA features.
Swing is a collection of routines that build on java.awt to provide a platform independent widget toolkit. javax.swing uses the 2D drawing routines to render the user interface components instead of relying on the underlying native operating system GUI support.
This package contains the largest number of classes (133 in all) in JDK 6. This package, along with java.awt also contains the largest number of enums (7 in all) in JDK 6. It supports pluggable looks and feels (PLAFs) so that widgets in the GUI can imitate those from the underlying native system. Design patterns permeate the system, especially a modification of the model–view–controller pattern, which loosens the coupling between function and appearance. One inconsistency is that (as of J2SE 1.3) fonts are drawn by the underlying native system, and not by Java, limiting text portability. Workarounds, such as using bitmap fonts, do exist. In general, "layouts" are used and keep elements within an aesthetically consistent GUI across platforms.
javax.swing.text.html.parser
The javax.swing.text.html.parser package provides the error tolerant HTML parser that is used for writing various web browsers and web bots.
javax.xml.bind.annotation
The javax.xml.bind.annotation package contained the largest number of Annotation Types (30 in all) in JDK 6. It defines annotations for customizing Java program elements to XML Schema mapping.
This package contained the largest number of Exception classes (45 in all) in JDK 6. From all communication possibilities CORBA is portable between various languages; however, with this comes more complexity.
These packages were deprecated in Java 9 and removed from Java 11.[7]
org.omg.PortableInterceptor
The org.omg.PortableInterceptor package contained the largest number of interfaces (39 in all) in JDK 6. It provides a mechanism to register ORB hooks through which ORB services intercept the normal flow of execution of the ORB.
Security
Several critical security vulnerabilities have been reported.[8][9] Security alerts from Oracle announce critical security-related patches to Java SE.[10]
Biografi ini memerlukan lebih banyak catatan kaki untuk pemastian. Bantulah untuk menambahkan referensi atau sumber tepercaya. Materi kontroversial atau trivial yang sumbernya tidak memadai atau tidak bisa dipercaya harus segera dihapus, khususnya jika berpotensi memfitnah.Cari sumber: Gary Turner penampil pertunjukan tambahan – berita · surat kabar · buku · cendekiawan · JSTOR (June 2018) (Pelajari cara dan kapan saatnya untuk menghapus pesan tem...
Inflammation of the large airways in the lungs Not to be confused with Bronchiolitis. Medical conditionBronchitisFigure A shows the location of the lungs and bronchial tubes. Figure B is an enlarged view of a normal bronchial tube. Figure C is an enlarged view of a bronchial tube with bronchitis.Pronunciation/brɒŋˈkaɪtɪs/ SpecialtyInfectious disease, pulmonologySymptomsCoughing up mucus, wheezing, shortness of breath, chest discomfort[1]TypesAcute, chronic[1]Frequenc...
Bagian dari seri tentangBuddhisme SejarahPenyebaran Sejarah Garis waktu Sidang Buddhis Jalur Sutra Benua Asia Tenggara Asia Timur Asia Tengah Timur Tengah Dunia Barat Australia Oseania Amerika Eropa Afrika Populasi signifikan Tiongkok Thailand Jepang Myanmar Sri Lanka Vietnam Kamboja Korea Taiwan India Malaysia Laos Indonesia Amerika Serikat Singapura AliranTradisi Buddhisme prasektarian Aliran Buddhis awal Mahāsāṃghika Sthaviravāda Aliran arus utama Theravāda Mahāyāna Vajrayāna Kons...
Questa voce o sezione sull'argomento calciatori italiani non cita le fonti necessarie o quelle presenti sono insufficienti. Puoi migliorare questa voce aggiungendo citazioni da fonti attendibili secondo le linee guida sull'uso delle fonti. Segui i suggerimenti del progetto di riferimento. Pierluigi Orlandini Pierluigi Orlandini con la maglia dell'Atalanta (1993) Nazionalità Italia Altezza 182 cm Peso 80 kg Calcio Ruolo Allenatore (ex centrocampista) Squadra Grottaglie Termine car...
Halaman ini berisi artikel tentang film Hitchcock tahun 1954. Untuk kegunaan lain, lihat Rear Window (disambiguasi). Rear WindowOriginal theatrical release posterSutradaraAlfred HitchcockProduserAlfred HitchcockSkenarioJohn Michael HayesBerdasarkanIt Had to Be Murdercerpen tahun 1942 (dalam Dime Detective)oleh Cornell WoolrichPemeranJames StewartGrace KellyWendell CoreyThelma RitterRaymond BurrPenata musikFranz WaxmanSinematograferRobert BurksPenyuntingGeorge TomasiniPerusahaanproduksiP...
SI unit of magnetic field strength teslaUnit systemSIUnit ofmagnetic flux densitySymbolTNamed afterNikola TeslaConversions 1 T in ...... is equal to ... SI base units 1 kg⋅s−2⋅A−1 Gaussian units ≘ 104 G The tesla (symbol: T) is the unit of magnetic flux density (also called magnetic B-field strength) in the International System of Units (SI). One tesla is equal to one weber per square metre. The unit...
رفاعي طه معلومات شخصية الميلاد 24 يونيو 1954 أرمنت الوفاة 5 أبريل 2016 (61 سنة) إدلب سبب الوفاة ضربة جوية قتله القوات الجوية الأمريكية مواطنة جمهورية مصر (1954–1958) الجمهورية العربية المتحدة (1958–1971) مصر (1971–2016) الحياة العملية المدرسة الأم جامعة أسيوط تعلم...
French Catholic Archbishop of Paris (d. 1746) His GraceCharles-Gaspard-Guillaume de Vintimille du LucCOHSArchbishop of Paris, Duke of Saint-Cloud, Peer of FrancePortrait by Hyacinthe Rigaud, 1731ChurchCatholic ChurchArchdioceseParisSeeNotre-Dame de ParisInstalled17 August 1729Term ended13 March 1746PredecessorLouis-Antoine de NoaillesSuccessorJacques Bonne-Gigault de BellefondsOther post(s)Archbishop of AixBishop of MarseillePersonal detailsBorn(1655-11-15)15 November 1655Luc-en-Provence, Fra...
Cet article est une ébauche concernant la danse, la musique classique et l’Italie. Vous pouvez partager vos connaissances en l’améliorant (comment ?) selon les recommandations des projets correspondants. La forlane (furlane, forlana, furlana, frullana ou friulana : frioulane, en italien et en frioulan) est une danse traditionnelle originaire du Frioul, de rythme rapide. Caractéristiques Les caractéristiques de la danse sont sa rapidité et la battue à deux temps, ou [1] et...
قوس الزيار الرومي إعادة البناء الحديثة قوس الزيار الرومي الفتلي، يمكن رؤية الخيوط الملتوية التي تعمل على تشغيل أذرع القوس البارزة إلى الداخل. هذه الآلة معروضة في برج لندن. النوع معدة حصار فتلية [لغات أخرى]، وسلاح بلد الأصل الإمبراطورية البيزنطية تعديل مصد�...
Official Web-accessible database of the statute law of the United Kingdom legislation.gov.ukType of siteGovernment websiteAvailable inEnglish and WelshOwnerThe National Archives, UK GovernmentURLlegislation.gov.ukCommercialNoCurrent statusActive legislation.gov.uk, formerly known as the UK Statute Law Database, is the official Web-accessible database of the statute law of the United Kingdom, hosted by The National Archives. It contains all primary legislation in force since 1267 and...
American private educational foundation This article contains content that is written like an advertisement. Please help improve it by removing promotional content and inappropriate external links, and by adding encyclopedic content written from a neutral point of view. (April 2024) (Learn how and when to remove this message) Liberty FundLogo featuring the Sumerian word Ama-gi, meaning freedom[1]Founded1960; 64 years ago (1960)FounderPierre F. GoodrichPurposeEducatio...
English businessman (1915–2003) This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: Denis Thatcher – news · newspapers · books · scholar · JSTOR (July 2021) (Learn how and when to remove this message) SirDenis ThatcherBt MBE TD CStJThatcher in 1988Born(1915-05-10)10 May 1915London, EnglandDied26 Ju...
Voce principale: Legnano. Lo stemma del comune di Legnano La prima traccia documentata della storia di Legnano, comune della città metropolitana di Milano nell'Altomilanese, si riferisce a una testimonianza scritta del 23 ottobre 789 che cita il quartiere di Legnanello. Nel Medioevo Legnano fu teatro di un'importante battaglia (29 maggio 1176), che vide l'esercito imperiale di Federico Barbarossa sconfitto dalle truppe della Lega Lombarda. Grazie a questo scontro armato, Legnano è l'unica ...
British new wave band For other uses, see Ultravox (disambiguation). UltravoxUltravox at the end of a concert in Berlin in 2012 (l-r): Warren Cann, Chris Cross, Midge Ure, Billy CurrieBackground informationAlso known asTiger Lily (1974–1975)Ultravox! (1976–1978)OriginLondon, EnglandGenresSynth-popnew wavepost-punkYears active1974–19871992–19962008–2013LabelsIslandChrysalisEMIPolyGramSpinoffsVisageSpinoff ofTiger LilyPast members Chris Cross John Foxx Stevie Shears Warren Cann Billy ...
2011 TV series or program Desperately Seeking SantaFilm posterDirected byCraig PryceStarring Laura Vandervoort Nick Zano Original languageEnglishProductionRunning time86 minutesOriginal releaseReleaseNovember 27, 2011 (2011-11-27) Desperately Seeking Santa is a television movie starring Laura Vandervoort and Nick Zano.[1][2] It premiered on ABC Family on November 27, 2011 in their Countdown to 25 Days of Christmas programming block.[3] It is directed by ...
هذه المقالة بحاجة لصندوق معلومات. فضلًا ساعد في تحسين هذه المقالة بإضافة صندوق معلومات مخصص إليها. يفتقر محتوى هذه المقالة إلى الاستشهاد بمصادر. فضلاً، ساهم في تطوير هذه المقالة من خلال إضافة مصادر موثوق بها. أي معلومات غير موثقة يمكن التشكيك بها وإزالتها. (فبراير 2016) الطري�...
Louis de Rohan-Guéméné Portrait du cardinal de Rohan par Christophe Guérin en 1776. Biographie Nom de naissance Louis César Constantin de Rohan-Guéméné Naissance 24 mars 1697Paris (France) Père Charles III de Rohan-Guéméné Mère Charlotte Elizabeth de Cochefilet (d) Ordination sacerdotale 1732 par Charles de Vintimille du Luc Décès 11 mars 1779 (à 81 ans)Paris (France) Cardinal de l'Église catholique Créécardinal 23 novembre 1761 par le pape Clément XIII Titre cardina...
Japanese figure skater Shion KokubunKokubun at the 2011 Nebelhorn TrophyBorn (1991-12-24) December 24, 1991 (age 32)Sapporo, HokkaidoHometownTakatuki, OsakaHeight1.68 m (5 ft 6 in)Figure skating careerCountryJapanSkating clubKansai University Ice Skate ClubBegan skating1995 Shion Kokubun (國分 紫苑, Kokubun Shion) (born December 24, 1991, in Hokkaido, Japan) is a former Japanese figure skater. She won the 2009 Golden Spin of Zagreb.[1] Programs Season Short pro...