New APIs in Java 24
Comparing Java 24 (24-ea+15-1658-open) with Java 22 (22.0.2+9-tem).
Element | Modification |
---|---|
java.base |
|
java.io |
|
Console |
|
ObjectOutputStream.PutField |
|
|
|
java.lang.classfile.attribute |
|
CodeAttribute |
|
ModuleAttribute.ModuleAttributeBuilder |
|
build() |
|
java.lang.classfile.components |
|
CodeRelabeler |
|
relabel(Label, CodeBuilder) |
|
java.lang.classfile.constantpool |
|
|
|
annotationConstantValueEntry(ConstantDesc) |
|
writeBootstrapMethods(BufWriter) |
|
ConstantPool |
|
|
|
java.lang.classfile.instruction |
|
LocalVariableType |
|
writeTo(BufWriter) |
|
LocalVariable |
|
writeTo(BufWriter) |
|
java.lang.classfile |
|
|
|
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) |
|
CustomAttribute |
|
writeTo(BufWriter) |
|
Opcode |
|
constantValue() |
|
isUnconditionalBranch() |
|
primaryTypeKind() |
|
secondaryTypeKind() |
|
slot() |
|
Signature.TypeArg.WildcardIndicator |
|
TypeKind |
|
BooleanType |
|
ByteType |
|
CharType |
|
DoubleType |
|
FloatType |
|
IntType |
|
LongType |
|
ReferenceType |
|
ShortType |
|
VoidType |
|
descriptor() |
|
fromNewArrayCode(int) |
|
newarraycode() |
|
typeName() |
|
AccessFlags |
|
ofClass(AccessFlag...) |
|
ofClass(int) |
|
ofField(AccessFlag...) |
|
ofField(int) |
|
ofMethod(AccessFlag...) |
|
ofMethod(int) |
|
|
|
AnnotationValue.OfBoolean |
|
AnnotationValue.OfByte |
|
AnnotationValue.OfCharacter |
|
AnnotationValue.OfConstant |
|
constantValue() |
|
AnnotationValue.OfDouble |
|
AnnotationValue.OfFloat |
|
AnnotationValue.OfInteger |
|
AnnotationValue.OfLong |
|
AnnotationValue.OfShort |
|
AnnotationValue.OfString |
|
|
|
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) |
|
|
|
AttributeMapper |
|
readAttribute(AttributedElement, ClassReader, int) |
|
writeAttribute(BufWriter, Object) |
|
|
|
|
|
BufWriter |
|
asByteBuffer() |
|
copyTo(byte[], int) |
|
writeBytes(BufWriter) |
|
writeList(List) |
|
writeListIndices(List) |
|
ClassBuilder |
|
original() |
|
ClassFileBuilder |
|
canWriteDirect(ConstantPool) |
|
transform(CompoundElement, ClassFileTransform) |
|
ClassFileTransform.ResolvedTransform |
|
ClassFileTransform |
|
resolve(ClassFileBuilder) |
|
ClassFile |
|
transform(ClassModel, ClassDesc, ClassTransform) |
|
transform(ClassModel, ClassEntry, ClassTransform) |
|
transform(ClassModel, ClassTransform) |
|
ClassReader |
|
compare(BufWriter, int, int, int) |
|
readClassEntry(int) |
|
readMethodHandleEntry(int) |
|
readModuleEntry(int) |
|
readNameAndTypeEntry(int) |
|
readPackageEntry(int) |
|
readUtf8Entry(int) |
|
readUtf8EntryOrNull(int) |
|
skipAttributeHolder(int) |
|
thisClassPos() |
|
utf8EntryByIndex(int) |
|
ClassSignature |
|
of(List, Signature.RefTypeSig,... |
|
of(Signature.RefTypeSig, Signature.RefTypeSig...) |
|
superclassSignature() |
|
ClassTransform |
|
resolve(ClassBuilder) |
|
CodeBuilder |
|
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) |
|
CodeModel |
|
maxLocals() |
|
maxStack() |
|
CodeTransform |
|
resolve(CodeBuilder) |
|
CompoundElement |
|
elements() |
|
forEachElement(Consumer) |
|
FieldBuilder |
|
original() |
|
|
|
FieldTransform |
|
resolve(FieldBuilder) |
|
MethodBuilder |
|
original() |
|
|
|
MethodTransform |
|
resolve(MethodBuilder) |
|
Signature.TypeArg |
|
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.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 |
|
Process |
|
ScopedValue.Carrier |
|
call(Callable) |
|
get(Supplier) |
|
ScopedValue |
|
callWhere(ScopedValue, Object, Callable) |
|
getWhere(ScopedValue, Object, Supplier) |
|
ThreadGroup |
|
resume() |
|
stop() |
|
suspend() |
|
Thread |
|
resume() |
|
suspend() |
|
StringTemplate.Processor.Linkage |
|
StringTemplate.Processor |
|
StringTemplate |
|
java.net |
|
DatagramSocketImpl |
|
|
|
|
|
Inet4Address |
|
MulticastSocket |
|
|
|
|
|
|
|
Socket |
|
|
|
|
|
java.text |
|
ChoiceFormat |
|
CompactNumberFormat |
|
DecimalFormat |
|
MessageFormat |
|
NumberFormat |
|
SimpleDateFormat |
|
java.time |
|
Instant |
|
java.util.zip |
|
Deflater |
|
|
|
|
|
Inflater |
|
|
|
|
|
ZipFile |
|
java.util |
|
FormatProcessor |
|
java.compiler |
|
javax.lang.model.util |
|
Elements |
|
Types |
|
javax.lang.model |
|
SourceVersion |
|
javax.tools |
|
SimpleJavaFileObject |
|
java.desktop |
|
java.beans.beancontext |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
java.beans |
|
Beans |
|
|
|
javax.print.attribute.standard |
|
javax.swing.plaf.basic |
|
BasicSliderUI |
|
|
|
BasicSplitPaneDivider |
|
javax.swing.plaf.synth |
|
SynthTreeUI |
|
javax.swing |
|
JScrollBar |
|
JSplitPane |
|
java.management.rmi |
|
javax.management.remote.rmi |
|
RMIConnector |
|
getMBeanServerConnection(Subject) |
|
java.management |
|
javax.management.loading |
|
MLetContent |
|
MLet |
|
PrivateMLet |
|
MLetMBean |
|
javax.management.remote |
|
JMXConnector |
|
|
This report is based on simple comparison of all public
and
protected
APIs of the java.*
and javax.*
packages of JDK builds 24-ea+15-1658-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.