Java SE Development Kit provides a Java development environment. If you need to use Java to develop new applications, you can download this software for use. The software provides many development tools, a running environment, compatible libraries, API documents jdk Tools provide JShell, Javadoc, core library resources, and many functions, so that users can get more help when developing new applications. It is very suitable for developing new software or testing the running status of applications. If you need JDK, you can download Java SE Development Kit21 version is used.
software function
1. Language characteristics
Recording mode
Enhance the Java programming language with record mode to deconstruct record values. Record patterns and type patterns can be nested for powerful, declarative, and composable data navigation and processing.
Switch mode matching
Enhance Java through pattern matching of expressions and statements programing language. Extended pattern matching allows you to test expressions against multiple patterns, each of which has a specific operation, so that you can express complex data oriented queries concisely and safely.
1.1 Language function preview
String Template (Preview)
Enhance the Java programming language with string templates. String templates complement Java by coupling literal text with embedded expressions and template processors Existing string literals and text blocks to produce specialized results. This is a preview language function and API.
Unnamed patterns and variables (preview version)
Enhances the Java language with unnamed patterns (matching the record component without specifying the name or type of the component) and unnamed variables (which can be initialized but not used). Both are represented by the underscore character express. This is a preview language function_
Unnamed class and instance main method (preview version)
Improve Java Language so that students can write their first program without having to understand the language features designed for large programs. Far from using a separate Java dialect, students can write simplified statements for single class programs, and then seamlessly expand their programs to use more advanced functions as their skills grow. This is a preview language function.
2. Library improvement
Virtual thread
Introducing virtual threads into the Java platform. Virtual threads are lightweight threads that can significantly reduce the workload of writing, maintaining, and observing high throughput concurrent applications.
Sort Collection
A new interface is introduced to represent a collection with a defined encounter order. Each such set has a clearly defined first element, a second element, and so on until the last element. It also provides unified API, Used to access its first and last elements and process its elements in reverse order.
"Life can only be understood backwards; but it must be lived forward.
Software features
Executable program
Implementation of the Java Runtime Environment (JRE) (in the bin/subdirectory). JRE includes Java Virtual Machine (JVM ™)、 Class libraries and other files that support the execution of programs written in the Java programming language. The directory also includes tools and utilities that will help you develop, execute, debug, and record programs written in the Java programming language. For more information, see JDK 21 Tool specifications https://docs. oracle .com/en/java/javase/21/docs/specs/man/index.html
configuration file
A file containing user configurable options (in the conf/subdirectory). You can edit the files in this directory to change the access permissions of the JDK, configure the security algorithm, and set the Java encryption extension policy file that may be used to limit the JDK encryption strength.
C header file
(in the include/subdirectory) C language header file, which supports the use of Java native interface and Java Virtual Machine (JVM) Debugger Interface for native code programming.
Compiled Java module
(in the jmods/subdirectory) jlink is used to create compiled modules for custom runtime.
Copyright and License Files
License and copyright files for each module (in the legal/subdirectory). Include third-party notifications as. md (markdown) files.
Other libraries
(In the lib/subdirectory) Other class libraries and support files required by JDK. These files are not intended for external use.
Installation method
1. Install the Java SE Development Kit directly to the computer, click Next
2. Prompt the installation location setting of the software, which is installed to disk C by default
3. Prompt the installation process, wait for the end of the Java SE Development Kit installation
4. The Java SE Development Kit is successfully deployed to the computer. You can view the next steps
Update log
new function
Core libs/java.net
The TCP_KEEPxxxx extended socket option is now supported on Windows platforms (JDK-8308593)
java.net。 ExtendedSocketOptions TCP_KEEPIDLE and TCP_KEPEINTERVAL 10 Version 1709 and later are supported on Windows platforms. TCP_KEEPCOUNT is supported from Windows 10 version 1703 and later.
Known problems
Hotspot/compiler
Potential performance regression due to elimination of limited scope inspection (JDK-8314468 (non-public))
When the C1 compiler is the only available compiler for VM, it will apply loop prediction to remove array access range check from the loop body. Due to defects, this optimization is disabled, which may lead to performance regression.
This only affects client virtual machines running with non default command line flags - XX:+NeverActAsServerClassMachine or - XX: TieredStopAtLevel=[1, 2, 3].
Fixed problems
Hotspot/compiler
ZGC: Re introduce support for non default ObjectAlignmentInBytes (JDK-8315082)
JDK 21 The problem has been solved. When running the JVM with - XX:+UseZGC and non default value - XX: ObjectAlignmentInBytes, this problem may cause the JVM to crash or execute incorrectly, and this combination of JVM options can be used again.
repair
HTML format of PassFailJFrame directive
Processing WideCharToMultiByte return value
BasicStroke. createStrokedShape miter restriction failed on small shapes
ColorConvertOp.filter of default target is too slow
Additional Negative Value Check in JPEG Decoding
Update HarfBuzz to 8.2.2
Update Libpng to 1.6.40
When using JFileChooser or COM library, the TargetDataLine after screen lock is invalid
Add screen capture to PassFailJFrame
Checkboxes and radio buttons have rendering problems on Windows in a high DPI environment
LibCreationTimeHelper.so failed to link in JDK 21
Thread interrupts from virtual threads reset interrupt status unnecessarily
Expand internal architecture enumeration with byte order and address size
If CompactStrings is disabled after JDK-8302163, RegionMatches1Tests will fail
Adjust the description comments of os_getChildren after 8315026
Improved Illegal access Exception message to include the reason for the exception
If the loader is null and the interface is not visible in the class loader, Proxy.newProxylinstance throws an NPE
Stream: handleReset lock twice
(bf) The concurrency problem in DirectByteBuffer. distributor
(dc) The socket adapter of DatagramChannel will not release the host thread when receiving the block
(fs) Add support for BasicFileAttributes. creationTime() for Linux
Improve the exception message thrown by the sun.nio.ch.Net native method (win)
JDK-8246677 causes 16x performance regression in SynchronousQueue
Signature jar triggers Logger finder recursion and StackOverflowError
Enhance agentlib: jdwp help output with information about the allow option
C1: ShortLoopOptimizer may promote the command before the command input
Better diagnostic header for CodeBlob
The control in LibraryCallKit is incorrect: inline_anative_notify_jvmti_funcs
Assert (cast!=nullptr) failed: a cast must be added to fix the node
Remove the quick lock implementation from the. ad file
[BACKUT] 8308682: Enhance AES performance
[REDO] Enhance AES performance
VectorMaskGen destroys rflags on x86_64
C2 compilation failed with "Exceeded _node_regs array"
Since JDK 17, C2 compilation time has increased significantly (up to about 30 times)
C2 SuperWord: wrong results, if not comparable, the load should not be moved before storage
C2: "Control input must dominate current control" assertion failed
C2: Add help after assertion. Bad graphs are detected in build_loop_late
C2: Large byte array clone triggered the assertion of "failure: malformed control flow" on linux-x86 failed
C2 compilation failed with "wrong AD file"
C2 compilation still fails because "AD file is incorrect"