$ javap javax.crypto.KDF javax.crypto.KDFParameters javax.crypto.KDFSpi javax.crypto.spec.HKDFParameterSpec 'javax.crypto.spec.HKDFParameterSpec$Builder' ...     (25.0.5+8-LTS)
public final class javax.crypto.KDF {
  static final boolean $assertionsDisabled;
  public java.lang.String getAlgorithm();
  public java.lang.String getProviderName();
  public javax.crypto.KDFParameters getParameters();
  public static javax.crypto.KDF getInstance(java.lang.String) throws java.security.NoSuchAlgorithmException;
  public static javax.crypto.KDF getInstance(java.lang.String, java.lang.String) throws java.security.NoSuchAlgorithmException, java.security.NoSuchProviderException;
  public static javax.crypto.KDF getInstance(java.lang.String, java.security.Provider) throws java.security.NoSuchAlgorithmException;
  public static javax.crypto.KDF getInstance(java.lang.String, javax.crypto.KDFParameters) throws java.security.NoSuchAlgorithmException, java.security.InvalidAlgorithmParameterException;
  public static javax.crypto.KDF getInstance(java.lang.String, javax.crypto.KDFParameters, java.lang.String) throws java.security.NoSuchAlgorithmException, java.security.NoSuchProviderException, java.security.InvalidAlgorithmParameterException;
  public static javax.crypto.KDF getInstance(java.lang.String, javax.crypto.KDFParameters, java.security.Provider) throws java.security.NoSuchAlgorithmException, java.security.InvalidAlgorithmParameterException;
  public javax.crypto.SecretKey deriveKey(java.lang.String, java.security.spec.AlgorithmParameterSpec) throws java.security.InvalidAlgorithmParameterException, java.security.NoSuchAlgorithmException;
  public byte[] deriveData(java.security.spec.AlgorithmParameterSpec) throws java.security.InvalidAlgorithmParameterException;
  static {};
}
public interface javax.crypto.KDFParameters {
}
public abstract class javax.crypto.KDFSpi {
  protected javax.crypto.KDFSpi(javax.crypto.KDFParameters) throws java.security.InvalidAlgorithmParameterException;
  protected abstract javax.crypto.KDFParameters engineGetParameters();
  protected abstract javax.crypto.SecretKey engineDeriveKey(java.lang.String, java.security.spec.AlgorithmParameterSpec) throws java.security.InvalidAlgorithmParameterException, java.security.NoSuchAlgorithmException;
  protected abstract byte[] engineDeriveData(java.security.spec.AlgorithmParameterSpec) throws java.security.InvalidAlgorithmParameterException;
}
public interface javax.crypto.spec.HKDFParameterSpec extends java.security.spec.AlgorithmParameterSpec {
  public static javax.crypto.spec.HKDFParameterSpec$Builder ofExtract();
  public static javax.crypto.spec.HKDFParameterSpec$Expand expandOnly(javax.crypto.SecretKey, byte[], int);
}
public final class javax.crypto.spec.HKDFParameterSpec$Builder {
  public javax.crypto.spec.HKDFParameterSpec$Extract extractOnly();
  public javax.crypto.spec.HKDFParameterSpec$ExtractThenExpand thenExpand(byte[], int);
  public javax.crypto.spec.HKDFParameterSpec$Builder addIKM(javax.crypto.SecretKey);
  public javax.crypto.spec.HKDFParameterSpec$Builder addIKM(byte[]);
  public javax.crypto.spec.HKDFParameterSpec$Builder addSalt(javax.crypto.SecretKey);
  public javax.crypto.spec.HKDFParameterSpec$Builder addSalt(byte[]);
}
public final class javax.crypto.spec.HKDFParameterSpec$Extract implements javax.crypto.spec.HKDFParameterSpec {
  public java.util.List<javax.crypto.SecretKey> ikms();
  public java.util.List<javax.crypto.SecretKey> salts();
}
public final class javax.crypto.spec.HKDFParameterSpec$Expand implements javax.crypto.spec.HKDFParameterSpec {
  public javax.crypto.SecretKey prk();
  public byte[] info();
  public int length();
}
public final class javax.crypto.spec.HKDFParameterSpec$ExtractThenExpand implements javax.crypto.spec.HKDFParameterSpec {
  public java.util.List<javax.crypto.SecretKey> ikms();
  public java.util.List<javax.crypto.SecretKey> salts();
  public byte[] info();
  public int length();
}

$ javap -v javax.crypto.KDF | grep -ci PreviewFeature   (0 = not a preview API)
0
$ unzip -p src.zip java.base/javax/crypto/KDF.java | grep @since
 * @since 25
