New APIs in Java 24
Comparing Java 24 (24-ea+29-3578-open) with Java 22 (22.0.2+9-tem).
Element | Modification |
---|---|
java.base |
|
java.io |
|
Console |
|
ObjectInputStream |
|
|
|
|
|
ObjectOutputStream.PutField |
|
|
|
ObjectOutputStream |
|
|
|
|
|
Reader |
|
|
|
|
|
ITEM_DOUBLE |
|
ITEM_FLOAT |
|
ITEM_INTEGER |
|
ITEM_LONG |
|
ITEM_NULL |
|
ITEM_TOP |
|
ITEM_UNINITIALIZED_THIS |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
build() |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
java.lang.classfile.components |
|
|
|
|
|
|
|
|
|
|
|
|
|
annotationConstantValueEntry(ConstantDesc) |
|
writeBootstrapMethods(BufWriter) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
tag() |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
writeTo(BufWriter) |
|
|
|
writeTo(BufWriter) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ANNOTATION_DEFAULT |
|
BOOTSTRAP_METHODS |
|
CHARACTER_RANGE_TABLE |
|
CODE |
|
COMPILATION_ID |
|
CONSTANT_VALUE |
|
DEPRECATED |
|
ENCLOSING_METHOD |
|
EXCEPTIONS |
|
INNER_CLASSES |
|
LINE_NUMBER_TABLE |
|
LOCAL_VARIABLE_TABLE |
|
LOCAL_VARIABLE_TYPE_TABLE |
|
METHOD_PARAMETERS |
|
MODULE |
|
MODULE_HASHES |
|
MODULE_MAIN_CLASS |
|
MODULE_PACKAGES |
|
MODULE_RESOLUTION |
|
MODULE_TARGET |
|
NEST_HOST |
|
NEST_MEMBERS |
|
PERMITTED_SUBCLASSES |
|
PREDEFINED_ATTRIBUTES |
|
RECORD |
|
RUNTIME_INVISIBLE_ANNOTATIONS |
|
RUNTIME_INVISIBLE_PARAMETER_ANNOTATIONS |
|
RUNTIME_INVISIBLE_TYPE_ANNOTATIONS |
|
RUNTIME_VISIBLE_ANNOTATIONS |
|
RUNTIME_VISIBLE_PARAMETER_ANNOTATIONS |
|
RUNTIME_VISIBLE_TYPE_ANNOTATIONS |
|
SIGNATURE |
|
SOURCE_DEBUG_EXTENSION |
|
SOURCE_FILE |
|
SOURCE_ID |
|
STACK_MAP_TABLE |
|
SYNTHETIC |
|
standardAttribute(Utf8Entry) |
|
|
|
attributeName() |
|
writeTo(BufWriter) |
|
|
|
|
|
DROP_UNSTABLE_ATRIBUTES |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
constantValue() |
|
isUnconditionalBranch() |
|
primaryTypeKind() |
|
secondaryTypeKind() |
|
slot() |
|
Signature.TypeArg.WildcardIndicator |
|
|
|
|
|
|
|
BooleanType |
|
ByteType |
|
CharType |
|
DoubleType |
|
FloatType |
|
IntType |
|
LongType |
|
ReferenceType |
|
ShortType |
|
VoidType |
|
descriptor() |
|
fromNewArrayCode(int) |
|
newarraycode() |
|
typeName() |
|
|
|
ofClass(AccessFlag...) |
|
ofClass(int) |
|
ofField(AccessFlag...) |
|
ofField(int) |
|
ofMethod(AccessFlag...) |
|
ofMethod(int) |
|
|
|
|
|
|
|
|
|
|
|
AnnotationValue.OfCharacter |
|
|
|
|
|
constantValue() |
|
|
|
|
|
|
|
AnnotationValue.OfInteger |
|
|
|
|
|
|
|
|
|
ofBoolean(IntegerEntry) |
|
ofBoolean(boolean) |
|
ofByte(IntegerEntry) |
|
ofByte(byte) |
|
ofChar(IntegerEntry) |
|
ofChar(char) |
|
ofDouble(DoubleEntry) |
|
ofDouble(double) |
|
ofFloat(FloatEntry) |
|
ofFloat(float) |
|
ofInt(IntegerEntry) |
|
ofInt(int) |
|
ofLong(LongEntry) |
|
ofLong(long) |
|
ofShort(IntegerEntry) |
|
ofShort(short) |
|
ofString(String) |
|
ofString(Utf8Entry) |
|
tag() |
|
|
|
|
|
readAttribute(AttributedElement, ClassReader, int) |
|
writeAttribute(BufWriter, Object) |
|
|
|
attributeName() |
|
|
|
|
|
|
|
asByteBuffer() |
|
copyTo(byte[], int) |
|
writeBytes(BufWriter) |
|
writeList(List) |
|
writeListIndices(List) |
|
|
|
original() |
|
|
|
|
|
|
|
|
|
|
|
canWriteDirect(ConstantPool) |
|
transform(CompoundElement, ClassFileTransform) |
|
|
|
ClassFileTransform.ResolvedTransform |
|
|
|
resolve(ClassFileBuilder) |
|
|
|
|
|
AALOAD |
|
AASTORE |
|
ACONST_NULL |
|
AEV_ANNOTATION |
|
AEV_ARRAY |
|
AEV_BOOLEAN |
|
AEV_BYTE |
|
AEV_CHAR |
|
AEV_CLASS |
|
AEV_DOUBLE |
|
AEV_ENUM |
|
AEV_FLOAT |
|
AEV_INT |
|
AEV_LONG |
|
AEV_SHORT |
|
AEV_STRING |
|
ALOAD |
|
ALOAD_0 |
|
ALOAD_1 |
|
ALOAD_2 |
|
ALOAD_3 |
|
ANEWARRAY |
|
ARETURN |
|
ARRAYLENGTH |
|
ASTORE |
|
ASTORE_0 |
|
ASTORE_1 |
|
ASTORE_2 |
|
ASTORE_3 |
|
ATHROW |
|
BALOAD |
|
BASTORE |
|
BIPUSH |
|
CALOAD |
|
CASTORE |
|
CHECKCAST |
|
CRT_ASSIGNMENT |
|
CRT_BLOCK |
|
CRT_BRANCH_FALSE |
|
CRT_BRANCH_TRUE |
|
CRT_CREATE |
|
CRT_FLOW_CONTROLLER |
|
CRT_FLOW_TARGET |
|
CRT_INVOKE |
|
CRT_STATEMENT |
|
D2F |
|
D2I |
|
D2L |
|
DADD |
|
DALOAD |
|
DASTORE |
|
DCMPG |
|
DCMPL |
|
DCONST_0 |
|
DCONST_1 |
|
DDIV |
|
DEFAULT_CLASS_FLAGS |
|
DLOAD |
|
DLOAD_0 |
|
DLOAD_1 |
|
DLOAD_2 |
|
DLOAD_3 |
|
DMUL |
|
DNEG |
|
DREM |
|
DRETURN |
|
DSTORE |
|
DSTORE_0 |
|
DSTORE_1 |
|
DSTORE_2 |
|
DSTORE_3 |
|
DSUB |
|
DUP2 |
|
DUP2_X1 |
|
DUP2_X2 |
|
DUP |
|
DUP_X1 |
|
DUP_X2 |
|
F2D |
|
F2I |
|
F2L |
|
FADD |
|
FALOAD |
|
FASTORE |
|
FCMPG |
|
FCMPL |
|
FCONST_0 |
|
FCONST_1 |
|
FCONST_2 |
|
FDIV |
|
FLOAD |
|
FLOAD_0 |
|
FLOAD_1 |
|
FLOAD_2 |
|
FLOAD_3 |
|
FMUL |
|
FNEG |
|
FREM |
|
FRETURN |
|
FSTORE |
|
FSTORE_0 |
|
FSTORE_1 |
|
FSTORE_2 |
|
FSTORE_3 |
|
FSUB |
|
GETFIELD |
|
GETSTATIC |
|
GOTO |
|
GOTO_W |
|
I2B |
|
I2C |
|
I2D |
|
I2F |
|
I2L |
|
I2S |
|
IADD |
|
IALOAD |
|
IAND |
|
IASTORE |
|
ICONST_0 |
|
ICONST_1 |
|
ICONST_2 |
|
ICONST_3 |
|
ICONST_4 |
|
ICONST_5 |
|
ICONST_M1 |
|
IDIV |
|
IFEQ |
|
IFGE |
|
IFGT |
|
IFLE |
|
IFLT |
|
IFNE |
|
IFNONNULL |
|
IFNULL |
|
IF_ACMPEQ |
|
IF_ACMPNE |
|
IF_ICMPEQ |
|
IF_ICMPGE |
|
IF_ICMPGT |
|
IF_ICMPLE |
|
IF_ICMPLT |
|
IF_ICMPNE |
|
IINC |
|
ILOAD |
|
ILOAD_0 |
|
ILOAD_1 |
|
ILOAD_2 |
|
ILOAD_3 |
|
IMUL |
|
INEG |
|
INSTANCEOF |
|
INVOKEDYNAMIC |
|
INVOKEINTERFACE |
|
INVOKESPECIAL |
|
INVOKESTATIC |
|
INVOKEVIRTUAL |
|
IOR |
|
IREM |
|
IRETURN |
|
ISHL |
|
ISHR |
|
ISTORE |
|
ISTORE_0 |
|
ISTORE_1 |
|
ISTORE_2 |
|
ISTORE_3 |
|
ISUB |
|
IUSHR |
|
IXOR |
|
JSR |
|
JSR_W |
|
L2D |
|
L2F |
|
L2I |
|
LADD |
|
LALOAD |
|
LAND |
|
LASTORE |
|
LCMP |
|
LCONST_0 |
|
LCONST_1 |
|
LDC2_W |
|
LDC |
|
LDC_W |
|
LDIV |
|
LLOAD |
|
LLOAD_0 |
|
LLOAD_1 |
|
LLOAD_2 |
|
LLOAD_3 |
|
LMUL |
|
LNEG |
|
LOOKUPSWITCH |
|
LOR |
|
LREM |
|
LRETURN |
|
LSHL |
|
LSHR |
|
LSTORE |
|
LSTORE_0 |
|
LSTORE_1 |
|
LSTORE_2 |
|
LSTORE_3 |
|
LSUB |
|
LUSHR |
|
LXOR |
|
MONITORENTER |
|
MONITOREXIT |
|
MULTIANEWARRAY |
|
NEWARRAY |
|
NEW |
|
NOP |
|
POP2 |
|
POP |
|
PUTFIELD |
|
PUTSTATIC |
|
RETURN |
|
RET |
|
SALOAD |
|
SASTORE |
|
SIPUSH |
|
SWAP |
|
TABLESWITCH |
|
TAG_CLASS |
|
TAG_CONSTANTDYNAMIC |
|
TAG_DOUBLE |
|
TAG_FIELDREF |
|
TAG_FLOAT |
|
TAG_INTEGER |
|
TAG_INTERFACEMETHODREF |
|
TAG_INVOKEDYNAMIC |
|
TAG_LONG |
|
TAG_METHODHANDLE |
|
TAG_METHODREF |
|
TAG_METHODTYPE |
|
TAG_MODULE |
|
TAG_NAMEANDTYPE |
|
TAG_PACKAGE |
|
TAG_STRING |
|
TAG_UNICODE |
|
TAG_UTF8 |
|
TAT_CAST |
|
TAT_CLASS_EXTENDS |
|
TAT_CLASS_TYPE_PARAMETER |
|
TAT_CLASS_TYPE_PARAMETER_BOUND |
|
TAT_CONSTRUCTOR_INVOCATION_TYPE_ARGUMENT |
|
TAT_CONSTRUCTOR_REFERENCE |
|
TAT_CONSTRUCTOR_REFERENCE_TYPE_ARGUMENT |
|
TAT_EXCEPTION_PARAMETER |
|
TAT_FIELD |
|
TAT_INSTANCEOF |
|
TAT_LOCAL_VARIABLE |
|
TAT_METHOD_FORMAL_PARAMETER |
|
TAT_METHOD_INVOCATION_TYPE_ARGUMENT |
|
TAT_METHOD_RECEIVER |
|
TAT_METHOD_REFERENCE |
|
TAT_METHOD_REFERENCE_TYPE_ARGUMENT |
|
TAT_METHOD_RETURN |
|
TAT_METHOD_TYPE_PARAMETER |
|
TAT_METHOD_TYPE_PARAMETER_BOUND |
|
TAT_NEW |
|
TAT_RESOURCE_VARIABLE |
|
TAT_THROWS |
|
VT_DOUBLE |
|
VT_FLOAT |
|
VT_INTEGER |
|
VT_LONG |
|
VT_NULL |
|
VT_OBJECT |
|
VT_TOP |
|
VT_UNINITIALIZED |
|
VT_UNINITIALIZED_THIS |
|
WIDE |
|
transform(ClassModel, ClassDesc, ClassTransform) |
|
transform(ClassModel, ClassEntry, ClassTransform) |
|
transform(ClassModel, ClassTransform) |
|
|
|
|
|
|
|
|
|
compare(BufWriter, int, int, int) |
|
readClassEntry(int) |
|
readMethodHandleEntry(int) |
|
readModuleEntry(int) |
|
readNameAndTypeEntry(int) |
|
readPackageEntry(int) |
|
readUtf8Entry(int) |
|
readUtf8EntryOrNull(int) |
|
skipAttributeHolder(int) |
|
thisClassPos() |
|
utf8EntryByIndex(int) |
|
|
|
of(List, Signature.RefTypeSig,... |
|
of(Signature.RefTypeSig, Signature.RefTypeSig...) |
|
superclassSignature() |
|
|
|
resolve(ClassBuilder) |
|
|
|
|
|
|
|
arrayLoadInstruction(TypeKind) |
|
arrayStoreInstruction(TypeKind) |
|
branchInstruction(Opcode, Label) |
|
constantInstruction(ConstantDesc) |
|
constantInstruction(Opcode, ConstantDesc) |
|
convertInstruction(TypeKind, TypeKind) |
|
fieldInstruction(Opcode, ClassDesc, String,... |
|
fieldInstruction(Opcode, FieldRefEntry) |
|
if_nonnull(Label) |
|
if_null(Label) |
|
incrementInstruction(int, int) |
|
instanceof_(ClassDesc) |
|
instanceof_(ClassEntry) |
|
invokeDynamicInstruction(DynamicCallSiteDesc) |
|
invokeDynamicInstruction(InvokeDynamicEntry) |
|
invokeInstruction(Opcode, ClassDesc, String,... |
|
invokeInstruction(Opcode, MemberRefEntry) |
|
loadInstruction(TypeKind, int) |
|
lookupSwitchInstruction(Label, List) |
|
monitorInstruction(Opcode) |
|
newMultidimensionalArrayInstruction(int,... |
|
newMultidimensionalArrayInstruction(int,... |
|
newObjectInstruction(ClassDesc) |
|
newObjectInstruction(ClassEntry) |
|
newPrimitiveArrayInstruction(TypeKind) |
|
newReferenceArrayInstruction(ClassDesc) |
|
newReferenceArrayInstruction(ClassEntry) |
|
nopInstruction() |
|
operatorInstruction(Opcode) |
|
original() |
|
returnInstruction(TypeKind) |
|
stackInstruction(Opcode) |
|
storeInstruction(TypeKind, int) |
|
tableSwitchInstruction(int, int, Label, List) |
|
throwInstruction() |
|
typeCheckInstruction(Opcode, ClassDesc) |
|
typeCheckInstruction(Opcode, ClassEntry) |
|
|
|
|
|
maxLocals() |
|
maxStack() |
|
|
|
resolve(CodeBuilder) |
|
|
|
elements() |
|
forEachElement(Consumer) |
|
|
|
|
|
original() |
|
|
|
|
|
|
|
resolve(FieldBuilder) |
|
|
|
|
|
|
|
|
|
original() |
|
|
|
|
|
|
|
|
|
resolve(MethodBuilder) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
boundType() |
|
extendsOf(Signature.RefTypeSig) |
|
of(Signature.RefTypeSig) |
|
of(Signature.TypeArg.WildcardIndicator, Optional) |
|
superOf(Signature.RefTypeSig) |
|
unbounded() |
|
wildcardIndicator() |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
of(TypeAnnotation.TargetInfo, List, ClassDesc,... |
|
of(TypeAnnotation.TargetInfo, List, ClassDesc,... |
|
of(TypeAnnotation.TargetInfo, List, Utf8Entry,... |
|
of(TypeAnnotation.TargetInfo, List, Utf8Entry,... |
|
WritableElement |
|
java.lang.constant |
|
ClassDesc |
|
|
|
|
|
|
|
java.lang.foreign |
|
MemorySegment |
|
SymbolLookup |
|
java.lang.invoke |
|
StringConcatFactory |
|
MAX_INDY_CONCAT_ARG_SLOTS |
|
makeConcatWithTemplate(List, List) |
|
makeConcatWithTemplateCluster(List, List, int) |
|
makeConcatWithTemplateGetters(List, List, int) |
|
java.lang.reflect |
|
ClassFileFormatVersion |
|
java.lang.runtime |
|
TemplateRuntime |
|
java.lang |
|
Character.UnicodeBlock |
|
Class |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Process |
|
ScopedValue.Carrier |
|
call(Callable) |
|
get(Supplier) |
|
ScopedValue |
|
callWhere(ScopedValue, Object, Callable) |
|
getWhere(ScopedValue, Object, Supplier) |
|
runWhere(ScopedValue, Object, Runnable) |
|
SecurityManager |
|
|
|
ThreadGroup |
|
resume() |
|
stop() |
|
suspend() |
|
Thread |
|
resume() |
|
suspend() |
|
Character.UnicodeScript |
|
StringTemplate.Processor.Linkage |
|
StringTemplate.Processor |
|
StringTemplate |
|
java.net |
|
DatagramSocketImpl |
|
|
|
|
|
Inet4Address |
|
MulticastSocket |
|
|
|
|
|
|
|
Socket |
|
|
|
|
|
java.security.spec |
|
NamedParameterSpec |
|
java.text |
|
ChoiceFormat |
|
CompactNumberFormat |
|
DecimalFormat |
|
MessageFormat |
|
NumberFormat |
|
SimpleDateFormat |
|
java.time |
|
Instant |
|
java.util.stream |
|
|
|
|
|
|
|
|
|
|
|
Stream |
|
|
|
java.util.zip |
|
Deflater |
|
|
|
|
|
Inflater |
|
|
|
|
|
|
|
ZipFile |
|
java.util |
|
FormatProcessor |
|
javax.crypto.spec |
|
javax.crypto |
|
java.compiler |
|
javax.lang.model.util |
|
Elements |
|
Types |
|
javax.lang.model |
|
SourceVersion |
|
javax.tools |
|
SimpleJavaFileObject |
|
java.desktop |
|
java.awt.peer |
|
WindowPeer |
|
repositionSecurityWarning() |
|
java.awt |
|
|
|
KeyboardFocusManager |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Window |
|
|
|
|
|
java.beans.beancontext |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
java.beans |
|
Beans |
|
|
|
|
|
|
|
javax.print.attribute.standard |
|
javax.sound.sampled |
|
|
|
javax.swing.plaf.basic |
|
BasicSliderUI |
|
|
|
BasicSplitPaneDivider |
|
javax.swing.plaf.synth |
|
SynthTreeUI |
|
javax.swing |
|
FocusManager |
|
|
|
JInternalFrame |
|
|
|
JScrollBar |
|
JSplitPane |
|
UIManager |
|
|
|
java.logging |
|
java.util.logging |
|
FileHandler |
|
|
|
|
|
|
|
|
|
|
|
|
|
Handler |
|
|
|
|
|
|
|
|
|
|
|
LogManager |
|
|
|
|
|
|
|
|
|
Logger |
|
|
|
|
|
|
|
|
|
MemoryHandler |
|
|
|
|
|
SocketHandler |
|
|
|
StreamHandler |
|
|
|
|
|
|
|
java.management.rmi |
|
javax.management.remote.rmi |
|
RMIConnector |
|
getMBeanServerConnection(Subject) |
|
java.management |
|
javax.management.loading |
|
MLetContent |
|
MLet |
|
PrivateMLet |
|
MLetMBean |
|
javax.management.remote |
|
JMXConnector |
|
|
|
java.naming |
|
javax.naming |
|
Context |
|
APPLET |
|
java.rmi |
|
java.rmi.server |
|
RMIClassLoader |
|
|
This report is based on simple comparison of all public
and
protected
APIs of the java.*
and javax.*
packages of JDK builds 24-ea+29-3578-open and
22.0.2+9-tem. It does not make statements about
compatibility.
For the latest Java versions the corresponding CSRs (Compatibility & Specification Review) are linked for a quick reference to find out about the reasoning of the change.