The name of the base system (platform): | Java |
Developers: | Oracle |
Last Release Date: | 2022/09/20 |
Technology: | Application Development Tools |
Content |
2022
Java SE 19
On September 20, 2022, it became known that after six months of development, the company Oracle released the Java SE 19 platform (Java Platform, Standard Edition 19), which uses an open source project as a reference implementation. OpenJDK With the exception of removing some outdated features, Java SE 19 retains backward compatibility with previous releases of the Java platform - most previously written Java projects will work unchanged when running an updated version. Ready-to-install Java SE 19 builds (JDK, JRE and Server JRE) are prepared for (Linux x86_64, AArch64), () Windows and (x86 64 macOS x86_64, AArch64). The Java 19 reference implementation developed by the OpenJDK project is fully open under the GPLv2 license with GNU ClassPath exceptions allowing dynamic linking to commercial products.
As reported, Java SE 19 is classified as a regular support period release, updates for which will be released before the next release. Java SE 17 should be used as a long-term support (LTS) branch, updates for which will be released until 2029. Starting with the release of Java 10, the project switched to an updated development process, which implies a shorter release generation cycle. The updated functionality is now developing in one constantly updated master-branch, which includes ready-made changes and from which branches branch once every six months to stabilize other releases.
Among the Java 19 updates, the following can be noted:
- Preliminary support for record patterns has been proposed, expanding the ability to match with a sample by means for parsing class values of the record type that appeared in Java 16.
- Assemblies for Linux provide support for the RISC-V architecture.
- Added preliminary support for the FFM (Foreign Function & Memory) API, which allows Java programs to interact with external code and data by calling functions from external libraries and accessing memory outside JVM.
- Added support for virtual threads, which are lightweight threads that optimize the writing and maintenance of multithreaded applications.
- The fourth preliminary implementation of the Vector API is proposed, which provides functions for vector calculations that are performed using vector instructions from x86_64 and AArch64 processors and allow you to simultaneously apply operations to several values at once (SIMD). Unlike the capabilities provided in the HotSpot JIT compiler for autovectoring scalar operations, the API makes it possible to explicitly control vectorization for parallel data processing.
- A third experimental implementation of pattern mapping in switch expressions has been added, allowing case labels to use not exact values, but flexible patterns that cover a series of values at once, for which you previously had to use bulky chains of "if... else" expressions.
- An experimental API for structured parallelism has been added, optimizing the development of multithreaded applications by processing several tasks performed in different threads as a single block[1].
Java SE 18
On March 23, 2022, it became known that after six months of development, the company Oracle released the Java SE 18 platform (Java Platform, Standard Edition 18), which uses an open source project as a reference implementation. OpenJDK With the exception of removing some outdated features, Java SE 18 retains backward compatibility with previous releases of the Java platform - most previously written - Java projects will work unchanged when running this version. Java SE 18 builds ready for installation (JDK, JRE and Server JRE) are prepared for (Linux x86_64, AArch64), (Windows x86_64) and (macOS x86_64, AArch64). The Java 18 reference implementation developed by the OpenJDK project is fully open under the GPLv2 license with GNU ClassPath exceptions allowing dynamic linking to commercial products.
As reported, Java SE 18 is classified as a regular support period release, updates for which will be released before the next release. Java SE 17 should be used as a long-term support (LTS) branch, updates for which will be released until 2029. Starting with the release of Java 10, the project switched to a different development process, which implies a shorter release generation cycle. The updated functionality is now developing in one constantly updated master-branch, which includes ready-made changes and from which branches branch once every six months to stabilize other releases.
Among the Java 18 updates, we can note:
- UTF-8 encoding is enabled by default. Java APIs that process text data taking into account character encoding will now use UTF-8 by default on all platforms, regardless of system settings and the locale set. To return the old behavior in which the encoding is selected taking into account the system locale, you can use the parameter "-Dfile.encoding = COMPAT."
- The package includes a com.sun.net.httpserver package, which includes the jwebserver utility and a library API with a simple implementation http-servers for delivering static content (CGI and servlet-like handlers are not supported). The built-in http server is not optimized for workloads and does not support access control and, authentication as it is aimed mainly at use in the development process for prototyping, debugging and testing projects.
- JavaDoc supports the "@ snippet" tag to embed working examples and code fragments in API documentation, to which you can use tools to verify correctness, highlight syntax and integrate with the IDE.
- The implementation of the java.lang.reflect (Core Reflection) API, designed to obtain information about methods, fields and class contactors, as well as access to the internal structure of classes, has been redesigned. The java.lang.reflect API itself remained unchanged, but is now implemented through the use of method handles provided by the java.lang.invoke module, instead of using byte code generators. The change made it possible to unify the implementations of java.lang.reflect and java.lang.invoke, and optimize their maintenance.
- The third preliminary implementation of the Vector API is proposed, which provides functions for vector calculations, which are performed using vector instructions of x86_64 and AArch64 processors and allow simultaneously applying operations to several values (SIMD) at once. Unlike the capabilities provided in the HotSpot JIT compiler for autovectoring scalar operations, the API makes it possible to explicitly control vectorization for parallel data processing.
- An SPI interface (service-provider interface) has been added to resolve host names and IP addresses, which allows you to use alternative resolvers in the java.net.InetAddress that are not associated with the handlers offered by the operating system.
- A second preliminary implementation of the Foreign Function & Memory API is proposed, with the help of which applications can interact with code and data located outside the Java runtime. The updated API allows you to call functions that are not executed in JVM and access memory that is not managed by JVM. For example, you can call functions from external shared libraries and access process data without using JNI.
- A second experimental implementation of pattern mapping in switch expressions has been added, allowing case labels to use not exact values, but flexible patterns that cover a series of values at once, for which you previously had to use bulky chains of "if... else" expressions.
- The finalization mechanism, as well as related methods such as Object.finalize (), Enum.finalize (), Runtime.runFinalization (), and System.runFinalization (), will be deprecated and disabled in one of the following releases.
- ZGC (Z Garbage Collector), SerialGC and ParallelGC garbage collectors support line deduplication[2]
2019
Fix 20 vulnerabilities
On October 17, 2019, it became known that Oracle has fixed 219 dangerous vulnerabilities in different product lines. The Java SE platform has 20 vulnerabilities fixed. Read more here.
Java SE 13
On October 8, 2019, the company Oracle announced the release Java of the SE 13 (13) version JDK. This release demonstrates Oracle's commitment to accelerating innovation by businesses and the developer community through the predictable release of enhancements as part of the six-month Feature Release Cadence cycle.
As noted in Oracle, JDK 13 increases developer productivity by increasing the performance, stability and security of the Java SE and JDK platform. The presented version also includes two familiarization features: Switch Expressions, which extend the switch selection command so that it can be used as an operator or as an expression (JEP 354), and adding text blocks to the Java language (JEP 355).
The evaluation versions presented in JEP 12 provide developers with fully specified and implemented functions for testing in order to collect feedback for their subsequent inclusion as standard language elements. When using them, developers are advised to take into account that in the next release they can be changed or removed. Evaluation features are an important part of the release model and provide greater participation by the developer community in finalizing new features. They also improve the quality and performance of final versions when these features become publicly available, Oracle claims.
Oracle JDK 13 replaces Oracle JDK 12 and offers a smooth transition thanks to incremental changes. Under the critical update release plans, Oracle intends to prepare at least two modifications of this version before the Oracle JDK 14 version is released, scheduled for March 2020.
Java SE 13 provides the following enhancements (Java Enhancement Proposals, JEP):
- JEP 350: Dynamic CDS Archives improves the usability of Application Class-Data Sharing, improving startup and resource capacity.
- JEP 351: ZGC - Uncommon Unused Memory improves memory management by returning unused dynamic memory to the operating system/container.
- JEP 353: Re-implements the legacy Socket API to simplify its support, debugging, and integration with user threads, known as firewalls.
- JEP 354: Switch Expressions simplifies everyday coding and sets the stage for future features such as object-to-sample mapping (JEP 305).
- JEP 355: Text Blocks simplifies the task of using text lines that span multiple lines of source code in expressions.
Oracle also continues to offer a subscription to Oracle Java SE. For customers, it is an attractive and flexible opportunity to obtain Java SE licenses and support for the necessary systems within the required period. According to Oracle, the proposal makes it easier for enterprises and developers to access regular releases of validated and certified Java SE 7, 8, 11, 13 and later updates related to performance, stability and security directly from the Java manager. As in previous releases of Java SE, Oracle continues to lead the development and implementation of most improvements in Java SE, including JDK 13, and interact with the Java developer ecosystem to thoughtfully develop this platform.
"JDK 13 is the result of industry-wide development, including open analysis, weekly builds, and extensive collaboration between Oracle engineers and members of the global Java development community through OpenJDK Community and JCP. The goal is always to make the latest innovations in the Java SE Platform and JDK readily available to developers worldwide[3], noted George Saab, Oracle VP of Java Platform Development |
2018
Java SE 11
At the end of September 2018, Oracle introduced a new version of the Java SE platform (Java Platform, Standard Edition). It includes many improvements designed to improve developer productivity, and also supports a number of new cryptographic and Internet standards, such as the HTTP/2 network protocol and the TLS 1.3 transport layer protection protocol.
With the release of Java 10 in March 2018, Oracle moved to a new 6-month platform development cycle. Java SE 11 is a Long Term Support (LTS) release that will be updated until 2026.
Updates for the previous Java 10 mid-release have been discontinued. The LTS branch of Java 8 will be supported until December 2020. The next LTS release is scheduled for September 2021
The TLS 1.3 protocol, support for which appeared in Java SE 11, allows you to speed up the download of mobile versions of Internet pages and weed out old, vulnerable cryptographic primitives, replacing them with more complex encryption algorithms.
In addition, Oracle, with the support of the community, implemented the following innovations:
- A system has been implemented that allows classes located in one part of the code, but compiled separately, to access each other's private components.
- The. class format is supplemented by support for CONSTANT_Dynamic forms, the loading of which gives the creation of constants to the bootstrap method.
- Added toolkit to stream low-level error and problem data.
- Added the ability to run single-file programs containing source code.
- The experimental Epsilon garbage collector has been added,
- Java Mission Control (JMC) and Java Flight Recorder (JFR) tools are included, which provide tools for monitoring, diagnosing, profiling and detecting memory leaks.[4]
Java SE 10
On March 20, 2018, Oracle released a new version of the Java SE platform (Java Platform, Standard Edition) and dropped support for the previous modification. The development of Java SE 10 was carried out in close cooperation with the OpenJDK Community, with which the American IT giant has been working for more than 10 years.
In this regard, the OpenJDK open project is used as a reference implementation of Java SE 10, which is fully open under the GPLv2 license with GNU ClassPath exceptions that allow dynamic binding to commercial products.
Java SE 10 retains backward compatibility with previous releases of Java. Previously written Java projects without changes will be able to work when running this version.
At the same time, Oracle completed support for Java SE 9, and the 10th branch of the platform will be supported until September 2018, when Java 11 is planned to be released. Those who do not want to use the new versions can use the Java 8 branch, which is assigned the status of an LTS release and support is provided until December 2020.
The main innovations in Java SE 10 are listed in the Oracle press release:
- Derives the type of local variable. This improves the Java language by allowing the local variable type output to be extended based on the initializer type;
- The G1 garbage collector provides the ability to perform a full garbage collection cycle in parallel. This reduces delays in situations where it is impossible to do without performing a full garbage collection operation;
- The ability to package classes into a shared archive in Application Class-Data Sharing. Helps speed up application launches and reduce overhead:
- New Graal JIT compiler written in Java. It can only be included in the Linux/x64;
- Support for new Unicode extensions: cu (currency type), fw (first day of week), rg (region override), tz (time zone).[5]
2017: Java SE 9
On September 22, 2017, the company Oracle announced the release of the Java SE 9 platform (Java Platform, Standard Edition 9). An open-source project is used as a reference implementation. OpenJDK Java SE 9 retains backward compatibility with previous releases of Java. Previously written Java projects will work unchanged when running this version.
Initially, the release of Java SE 9 was planned for September 22, 2016. Three times postponed. Ready-to-install Java SE 9 builds (JDK, JRE and Server JRE) are prepared for Linux (x86_64), Solaris (SPARC), Windows and macOS[6]
The reference implementation of Java 9 is open under the GPLv2 license with GNU ClassPath exceptions allowing dynamic binding to commercial products. Proprietary Oracle JDK 9 differs from OpenJDK in the presence of some closed components, such as a plugin system, which are not defined in the Java standard and are not included in the reference implementation of Java 9.
Oracle JDK is licensed under the BCL (Binary Code License). Oracle intends to fully open the code of commercial components and ensure the complete interchangeability of OpenJDK and Oracle JDK, switch to the Java SE development cycle, which implies the formation of releases once every six months with a gradual transfer of functionality stabilized in a continuously developed branch.
Major changes
- Integration of software and JDK tools into modules developed within the framework of the Jigsaw project:
- JEP 200 - definition of JDK modular structure.
- JEP 201 - Reorganization of JDK code into modules, improvement of the assembly system to support module compilation, separate processing of modules at the assembly stage.
- JEP 220 - Restructure JDK and JRE binary images to support modules and increase performance, security, and maintainability.
- JEP 282 - jlink linker for linking and optimizing modules taking into account dependencies;
- JEP 261 - Java Platform Module System implementation;
- JEP 275 is a javapackager package manager for modular Java applications.
Breaking Java platform code into modules will simplify the creation, maintenance and distribution of large applications, eliminating the observed problems with monolithic JARs and the distribution of class sets. The module system will allow you to allocate functionality and form customizable configurations that are adaptable for deployment on large servers and embedded technology. Modular applications based on the Java modular platform will require less data to load and achieve higher performance with more efficient optimization of modules specific to the configuration used.
- Lightweight JSON API for processing and generating data in JSON format;
- API for developing HTTP clients, which replaces HttpURLConnection and supports HTTP/2.0 and websockets;
- Improved API for operating system-level process management;
- Added an interactive shell jshell, which simplifies the launch of one-liners during development, experiments with new features and API;
- The Javadoc documentation system has been upgraded, which adds tools for generating manuals in the format HTML5 and functions to search for API documentation and information about the definition of classes and interfaces in modules;
- The Streams API has been improved, which implements the ability to use methods to situationally add or remove elements from Stream streams, bust Stream elements, and create Stream from zeroed values. The Java SE API set has been expanded, which can act as a source for Stream.
- The JAR format is expanded with the ability to supply multiple versions of files with classes in a single archive, using features specific to different Java releases;
- Ports of Linux/AArch64 and Linux/s390x architectures are presented. Added a unified port for arm32 and arm64;
- The Nashorn JavaScript engine, running on top of the Java virtual machine (JVM), has added a portion of the features defined in the ECMAScript 6 specification. The Parser API is implemented to parse the ECMAScript syntax;
- Applet APIs have been translated into obsolete ones (Java Web Start technology is recommended to run Java applications in a browser);
- Support for SHA-3 hashes has been implemented. The ability to use SHA-1-based certificates is disabled;
- A simplified HotSpot build system based on the build-infra framework is involved;
- The set of diagnostic commands has been expanded: print_class_summary, print_codegenlist, datadump_request, print_codeblocks, set_vmflag, etc.
- Optimizations:
- Improving the operation of locks for competing Java objects, which have improved performance in conditions when different threads are simultaneously trying to access objects;
- Segmentation of the JIT compiler cache, which allowed to increase the performance of long-running programs, reduce fragmentation and launch time;
- Integration of parallel and separate assembly tools into the sjavac (Smart Java compiler) compiler. Improvements to ensure JDK and large projects are assembled. Revision of annotation parsing code;
- A more compact internal representation of strings (String class) is provided, which allows saving memory;
- For 32- and 64-bit server systems, garbage collector G1 is used by default, limiting the size of pauses during garbage collection;
- It is possible to proactively (Ahead-of-Time) compile classes into machine code before starting a virtual machine, which allows you to significantly reduce the start time of large applications;
- A segmented code cache is implemented that uses separate caching of various types of code;
- Possibilities for creating a GUI:
- For graphics applications based on JavaFX, Swing and AWT, in addition to GTK + 2, support for the GTK + 3 library on the Linux platform is provided;
- Supports the use of desktop-specific capabilities in graphics applications. For example, API for interacting with the task bar, system tray and notification system, processing events from other applications;
- Support for high pixel density (HiDPI) screens when running on Linux and Windows platforms. The output of text, images and icons is now carried out taking into account the parameters of the screen;
- For homogeneous text output on all supported systems, the HarfBuzz library is used instead of the ICU OpenType engine;
- JavaFX/Media components have been transferred to the new GStreamer 1.x branch;
- An API has been added to manipulate images available in multiple permissions.
2016: Java SE 8 Update 77
On March 24, 2016, the company Oracle announced an unscheduled release of update 77 for ON Java SE 8. It eliminates a dangerous vulnerability CVE-2016-0636[7]
Experts rated its threat level at 9.3 points on the ten-point Common Vulnerability Scoring System (CVSS) scale. The vulnerability potentially allows attackers to remotely execute arbitrary code on victims' computers, bypassing the authentication process, the TCI said. For this, specially created web pages that exploit the vulnerability can be used.
The vulnerability CVE-2016-0636 affects Oracle Java SE 7 Update 97, 8 Update 73 and 74 products for Windows, Solaris, Linux and Mac OS X operating systems. All users are advised to immediately install the released update and remove outdated versions.
2015
Oracle deception when updating Java
In December 2015 Oracle , she pleaded guilty to misleading users about the security of software Java Standard Edition updates. As a result, a huge number of personal computers around the world were unprotected from hacker attacks.
On December 21, 2015, the Federal Trade Commission (FTC) released a message accusing Oracle of deceiving consumers. The company did not warn PC owners that Java updates automatically remove only previous versions of the software, and older modifications remain on the system.
According to Oracle, the FTC promised users Java security and security when installing the most current versions of the product, but in reality this was not the case. Java Standard Edition is loaded into about 850 million computers, the regulator noted.
"When software is installed on hundreds of millions of PCs, it is imperative that all statements be true, and security updates actually provide software protection," said Jessica Rich, director of the FTC's Bureau of Consumer Protection.
The Federal Trade Commission demanded that Oracle henceforth warn its customers that Java updates are possible only if the previous version of the software is installed, and users of older software need to be offered the opportunity to remove it and download the latest version.
Oracle agreed to comply with this requirement in full. She will talk about the process of correctly updating Java on her official website and pages on social networks. The corporation did not respond to the agency's request for Reuters comment.[8]
Java SE 8u65 and 8u66 corrective releases fixed 25 information security problems
On October 21, 2015, Oracle introduced Java SE 8u65 and 8u66 updates, which resolved 25 security issues, of which 24 can be remotely activated without authentication[9]
Seven vulnerabilities have been assigned the maximum level of danger (CVSS Score 10.0), which implies the possibility of going beyond the isolated environment of a virtual machine, initiating code execution in the system when processing specially designed content. All critical vulnerabilities are noted as easily exploited over the network, but manifested only on client systems (running in the Java Web Start browser and Java applets). Five problems, the maximum degree of danger of which is 7.6, affect not only client, but also server systems.
Vulnerabilities discovered and published in Oracle products:
- 28 vulnerabilities in MySQL (maximum hazard level 6.4). Issues fixed in September releases of MySQL Community Server 5.6.27 and 5.5.46.
- 12 vulnerabilities in Solaris (maximum danger level 6.6), including a remotely exploited vulnerability in INETD;
- 3 vulnerabilities in VirtualBox (maximum degree of danger 4.9, all problems are local). Vulnerabilities have already been fixed in the VirtualBox 5.0.8 and 4.3.32, 4.2.34, 4.1.42, 4.0.34 updates;
Java SE 8 Update 60 corrective release released
On August 19, 2015, Oracle published Java SE 8 Update 60, correcting accumulated errors. The release presents only non-security fixes, vulnerability fixes are presented in JavaSE 8u51[10].
JDK 8 Update 60 is available in builds for Linux (x86, x64, ARM), Solaris (x64, SPARC), Windows (x86, x64) and OS X (x64).
The key innovation of Java SE 8 Update 60 is the beginning of the formation of JDK releases for the ARM architecture (ARM v8). Improvements have been made to this release related to the operation of Nashorn (JavaScript engine running on top of JVM) and DRS (Deployment Rule Set) 1.2. In javax.net.ssl, ciphers based on the RC4 algorithm are disabled by default.
Java SE 8u45 and 7u79/80 updates have been released. Fixed vulnerabilities
On April 15, 2015, the company Oracle introduced a planned release of product updates with vulnerability fixes. Java SE 8u45 and 7u79/80 releases (version number - in accordance with the new release numbering scheme) fixed 14 security issues[11]
Java SE 7u79 was released simultaneously with 7u80 and differs, in addition to fixing vulnerabilities, in fixing non-security bugs. These are the latest publicly available updates for the Java SE 7 branch, the corporation recommends that users switch to Java 8 or issue advanced support.
All 14 vulnerabilities in Java can be exploited remotely, without authentication. Three vulnerabilities (CVE-2015-0469, CVE-2015-0459, CVE-2015-0491) received the maximum level of danger (CVSS Score 10.0), which implies the possibility of going beyond the isolated environment of the virtual machine and initiating code execution in the system when processing specially designed content. Two problems are assigned level 9.3, which implies the possibility of a successful attack on client systems, but the complexity of operation is estimated as average. Three problems, the maximum degree of danger of which is 5.0, affect both client and server systems.
Of the non-vulnerability-related changes, analysts noted the termination of the possibility of using absolute paths (paths starting with "/") and indirect transitions (".." on the way) inside jar files. If you want to use such paths, you must explicitly specify the "-P" option.
In addition to problems in Java SE, the presence of vulnerabilities has been made public for other Oracle products. Five vulnerabilities are reported in Solaris (for local problems with ZFS and account commands, the hazard level is 7.2, the vulnerability in Kernel IDMap is assigned level 7.1, but it can be activated over the network), two vulnerabilities in VirtualBox (maximum hazard level 4.3) and 24 vulnerabilities in MySQL (maximum hazard level 5.7). By April 15, 2015, the vulnerabilities have been fixed.
Java SE Release Updated
Java SE: Accelerating Innovation
On March 12, 2015, Oracle Corporation announced the release of the Java SE update.
The platform has been improved and the new release offers functionality and benefits:
- G1 Garbage Collector Enhancements (JEP 156). Reduced the likelihood of long pauses when the system releases resources. Reduces the dependence of G1 on complete garbage collection to perform class loading or other important operations. This is achieved by supporting class loading at the end of parallel marking cycles.
- Dynamic activation of the Java Flight Recorder (JFR) function. This feature can now be dynamically activated from the command line or Java Mission Control (JMC), regardless of the original startup parameters, which improves the usability of Oracle Java SE Advanced. Previously, this could only be done by stopping and restarting the corresponding instructions from the command line. The dynamic activation of JFR allows users to solve problems without having to stop, which can affect the implementation of SLAs and cause end-user disruption.
- Java Packer Enhancements. The wrapper allows developers to create applications that do not require Java Runtime installation on the client. Such offline applications can then be placed, for example, in the Mac App Store. Application developers have full control over the runtime and application entry points.
- New time zone update tool. This tool can use "raw" rules for time zone data (tzdata) from the IANA time zone registration database and convert it to the format required by the JRE. Users are able to immediately update JDK/JRE time zone rules along with updates from IANA.
- Nashorn support. The new version implements many Nashorn optimizations, including support for dynamic languages. In addition, a Nashorn class filter has been added, which provides detailed control over access to Java classes from JavaScript code through a new filtering interface.
- JVM response to memory deficits. The memory pressure property reflects the total memory usage (RAM) on the system. This new functionality can be effectively used to reduce the amount of memory used in the system in the case of deploying multiple JVMs, as well as to control the amount of memory allocated for use by each virtual machine, eliminating the occurrence of Out of Memory Errors (OOME).
- Java Mission Control 5.5 (JMC). This tool is included in the JDK 8u40. It is based on Eclipse 4.4 and contains plug-ins that are now signed. In addition, the default JMC will not show hidden lambda form methods.
- Reduction and caching of lambda forms (JEP 210). This improvement reduces the amount of memory required by applications and improves the performance of dynamic languages.
- System Memory Usage Tracking Scalability (JEP 195). This feature has been improved to allow it to run without significantly impacting performance. At the same time, it provides users with the ability to diagnose memory leaks in the JVM virtual machine.
- Improve the performance of SHA encryption algorithms. Performance has been improved on SPARC class systems that are actively used to sign certificates in the Web of Trust service. SHA performance is extremely important for Internet security, as browsers begin to require versions SHA-256 or higher with more intensive calculations, not recommending using version SHA-1.
2014: Innovations in Java SE 8
On March 18, 2014, Oracle introduced fundamental innovations in Java Platform, Standard Edition 8 (Java SE 8) - lambda computing.
Description
This is a functional programming technique that grows from [12] language [12].
The program code can be treated as data. Lambda computing in the context of Java 8 is focused on corporate needs, when critical sections of code can be implemented as automatically parallelizable functions. Multi-core and multi-processor platforms are targeted by the key innovations of the new version - the Stream API, integrated with the updated Collections API for processing and sorting value sets, is well suited for use in the functional style of MAP/Reduce.
In addition, the following are implemented:
- the ability to use JavaScript as an embedded scripting language,
- delivery of applications with a limited set of components (for low-power platforms),
- Date and time functions have been updated
- extended annotations
- enhanced encryption,
- supported by Base64.
2011
Java Platform, Standard Edition 7 (Java SE)
Oracle Corporation introduced in August 2011 the Java Platform, Standard Edition 7 (Java SE 7), the first version of the Java platform to be released under the guidance of Oracle.
The new version of Java SE 7 was the result of the combined efforts of developers throughout the industry, including open discussion, weekly meetings and wide cooperation between Oracle engineers and members of the global Javav ecosystem OpenJDK Community and Java Community Process (JCP).
Java SE 7 offers: language changes that help improve developer productivity and facilitate standard programming tasks by reducing the amount of code needed, simplifying syntax, and improving program readability (JSR 334: Coin Project); optimized support for dynamic languages (including Ruby, Python and JavaScript), which provides a significant increase in the performance of the Java virtual machine (JSR 292: InvokeDynamic); a new application programming interface (API) that focuses on multi-core systems and makes it easier for developers to split tasks into fragments, which can then be executed in parallel using an arbitrary number of processor cores (JSR 166: Fork/Join Framework); An advanced I/O interface for working with file systems that allows you to access a wider set of file attributes and provides more information about errors (JSR 203: NIO.2). New networking and security features Advanced localization support, including Unicode 6.0 support updated versions of a large number of libraries.
The high degree of compatibility of Java SE 7 with earlier versions of the platform makes it possible to use the existing experience of developers on the Java platform and maintain investments in Java technologies.
To get started with Java SE 7, developers can now use the NetBeans Integrated Development Environment (IDE) 7.0, the Eclipse Indigo platform with an additional Java SE 7 software module, or the IntelliJ IDEA 10.5 environment, which supports the latest Java SE 7 platform features. Support for JDK7 in the Oracle JDeveloper environment is expected to be released in 2011.
Java SE 8
Java The SE 8 Expert Group (JSR 337) Expert Group recently decided to postpone the addition of the modular system and the modular layout of the Java platform (Project Jigsaw) to Java SE 9 to give the wide Java development community enough time to thoroughly study and test this critical feature.
In order to support "scale down" implementations of Java SE 8 for use in small devices, Oracle also offers a set of compact profiles Profiles of the Java SE Platform.
Additional proposed features for Java SE 8 and JDK 8:
- Lambda expressions ("closures") (JSR 335 specification change request) to improve developer efficiency, optimize the use of multi-core processor capabilities, and improve processing of large data arrays in the Java Collections Framework.
- Nashorn, a new JavaScript engine optimized for the JVM virtual machine; allows you to implement direct interoperability (interoperability) Java/JavaScript.
- New Date/Time and Calendar APIs (JSR 310).
- Comments on Java types (JSR 308) to develop type matching plug-ins and thus improve the embedded type system.
- Removing "permanent generation" memory space from the HotSpot JVM virtual machine, making it easier to configure the "garbage collection" mechanism (to clear RAM).
"The recent decision of the Java SE 8 Expert Group to postpone modularization to Java SE 9 will allow us to focus on the long-awaited possibilities: Project Lambda, the Nashorn JavaScript mechanism, the new Date/Time API and Type Annotations functionality, as well as other improvements in performance, convenience and ease of use, "said George Saab, vice president of Oracle for Software Development, Java Platform Group. "We continue to expand our collaboration and increase transparency by developing core solutions and preparing, under Oracle's leadership, specification change requests (JSRs) in the OpenJDK community."
Oracle continues to work to combine Oracle HotSpot JVM and Oracle JRockit JVM into a converged solution that leverages the best features and capabilities of each of these two market-leading virtual machine implementations.
- The JDK 7 package contained the first version of converged JVM, with a number of features inherent in JRockit, including management tools, a mechanism for storing metadata based on dynamically distributed heap memory, and the first feature release from JRockit Flight Recorder.
- The expansion of the HotSpot/JRockit JVM convergence project is for JDK 8, including performance improvements and the second generation Java Flight Recorder.
The OpenJDK Community continues to support the development of the core Java SE 8 implementation. Weekly pre-builds of JDK 8 for developers are still available on jdk8.java.net.
- The OpenJDK project is actively developing with the support of Oracle, as well as other companies, researchers and individual developers.
- The OpenJDK Web Site Terms of Use (OpenJDK) rulebook has recently been updated to allow work on specification change requests (JSRs) for Java SE in the OpenJDK Community along with their respective reference implementations and to ensure that specification modification initiatives meet the new java transparency requirements of the Community Process (JCP 2.8).
Notes
- ↑ Java SE 19 release
- ↑ Java SE 18 release.
- ↑ "oracle predstavila java se 13 Oracle introduced Java SE 13
- ↑ Oracle Boosts Software Development Productivity with New Java Release
- ↑ Oracle Java SE 10 Release Arrives
- ↑ Oracle has released Java SE 9 and Java EE 8.
- ↑ Urgent Java update.
- ↑ Oracle settles FTC charges that it left its customers open to hacking
- ↑ Update Java SE, MySQL, VirtualBox and other Oracle products with 154 vulnerabilities.
- ↑ Java SE 8 Update 60
- ↑ Java SE (7u80, 8u45), MySQL and other Oracle products update with vulnerability fixes.
- ↑ 12,0 12,1 the LISPLISP