22 * or visit www.oracle.com if you need additional information or have any
23 * questions.
24 */
25 package java.lang;
26
27 import java.io.BufferedInputStream;
28 import java.io.BufferedOutputStream;
29 import java.io.Console;
30 import java.io.FileDescriptor;
31 import java.io.FileInputStream;
32 import java.io.FileOutputStream;
33 import java.io.IOException;
34 import java.io.InputStream;
35 import java.io.OutputStream;
36 import java.io.PrintStream;
37 import java.lang.annotation.Annotation;
38 import java.lang.foreign.MemorySegment;
39 import java.lang.invoke.MethodHandle;
40 import java.lang.invoke.MethodType;
41 import java.lang.module.ModuleDescriptor;
42 import java.lang.reflect.Executable;
43 import java.lang.reflect.Method;
44 import java.net.URI;
45 import java.nio.channels.Channel;
46 import java.nio.channels.spi.SelectorProvider;
47 import java.nio.charset.CharacterCodingException;
48 import java.nio.charset.Charset;
49 import java.security.ProtectionDomain;
50 import java.util.List;
51 import java.util.Locale;
52 import java.util.Map;
53 import java.util.Objects;
54 import java.util.Properties;
55 import java.util.ResourceBundle;
56 import java.util.Set;
57 import java.util.concurrent.Executor;
58 import java.util.function.Supplier;
59 import java.util.concurrent.ConcurrentHashMap;
60 import java.util.stream.Stream;
61
470 * @throws IndexOutOfBoundsException if copying would cause
471 * access of data outside array bounds.
472 * @throws ArrayStoreException if an element in the {@code src}
473 * array could not be stored into the {@code dest} array
474 * because of a type mismatch.
475 * @throws NullPointerException if either {@code src} or
476 * {@code dest} is {@code null}.
477 */
478 @IntrinsicCandidate
479 public static native void arraycopy(Object src, int srcPos,
480 Object dest, int destPos,
481 int length);
482
483 /**
484 * Returns the same hash code for the given object as
485 * would be returned by the default method hashCode(),
486 * whether or not the given object's class overrides
487 * hashCode().
488 * The hash code for the null reference is zero.
489 *
490 * @param x object for which the hashCode is to be calculated
491 * @return the hashCode
492 * @since 1.1
493 * @see Object#hashCode
494 * @see java.util.Objects#hashCode(Object)
495 */
496 @IntrinsicCandidate
497 public static native int identityHashCode(Object x);
498
499 /**
500 * System properties.
501 *
502 * See {@linkplain #getProperties getProperties} for details.
503 */
504 private static Properties props;
505
506 /**
507 * Determines the current system properties.
508 * <p>
509 * The current set of system properties for use by the
2316 }
2317
2318 public void unparkVirtualThread(Thread thread) {
2319 if (thread instanceof BaseVirtualThread vthread) {
2320 vthread.unpark();
2321 } else {
2322 throw new IllegalArgumentException();
2323 }
2324 }
2325
2326 public Executor virtualThreadDefaultScheduler() {
2327 return VirtualThread.defaultScheduler();
2328 }
2329
2330 public StackWalker newStackWalkerInstance(Set<StackWalker.Option> options,
2331 ContinuationScope contScope,
2332 Continuation continuation) {
2333 return StackWalker.newInstance(options, null, contScope, continuation);
2334 }
2335
2336 public String getLoaderNameID(ClassLoader loader) {
2337 return loader != null ? loader.nameAndId() : "null";
2338 }
2339
2340 @Override
2341 public void copyToSegmentRaw(String string, MemorySegment segment, long offset, int srcIndex, int srcLength) {
2342 string.copyToSegmentRaw(segment, offset, srcIndex, srcLength);
2343 }
2344
2345 @Override
2346 public boolean bytesCompatible(String string, Charset charset, int srcIndex, int numChars) {
2347 return string.bytesCompatible(charset, srcIndex, numChars);
2348 }
2349
2350 @Override
2351 public void finishInit(StackTraceElement[] stackTrace) {
2352 StackTraceElement.finishInit(stackTrace);
2353 }
2354 });
2355 }
|
22 * or visit www.oracle.com if you need additional information or have any
23 * questions.
24 */
25 package java.lang;
26
27 import java.io.BufferedInputStream;
28 import java.io.BufferedOutputStream;
29 import java.io.Console;
30 import java.io.FileDescriptor;
31 import java.io.FileInputStream;
32 import java.io.FileOutputStream;
33 import java.io.IOException;
34 import java.io.InputStream;
35 import java.io.OutputStream;
36 import java.io.PrintStream;
37 import java.lang.annotation.Annotation;
38 import java.lang.foreign.MemorySegment;
39 import java.lang.invoke.MethodHandle;
40 import java.lang.invoke.MethodType;
41 import java.lang.module.ModuleDescriptor;
42 import java.lang.reflect.ClassFileFormatVersion;
43 import java.lang.reflect.Executable;
44 import java.lang.reflect.Method;
45 import java.net.URI;
46 import java.nio.channels.Channel;
47 import java.nio.channels.spi.SelectorProvider;
48 import java.nio.charset.CharacterCodingException;
49 import java.nio.charset.Charset;
50 import java.security.ProtectionDomain;
51 import java.util.List;
52 import java.util.Locale;
53 import java.util.Map;
54 import java.util.Objects;
55 import java.util.Properties;
56 import java.util.ResourceBundle;
57 import java.util.Set;
58 import java.util.concurrent.Executor;
59 import java.util.function.Supplier;
60 import java.util.concurrent.ConcurrentHashMap;
61 import java.util.stream.Stream;
62
471 * @throws IndexOutOfBoundsException if copying would cause
472 * access of data outside array bounds.
473 * @throws ArrayStoreException if an element in the {@code src}
474 * array could not be stored into the {@code dest} array
475 * because of a type mismatch.
476 * @throws NullPointerException if either {@code src} or
477 * {@code dest} is {@code null}.
478 */
479 @IntrinsicCandidate
480 public static native void arraycopy(Object src, int srcPos,
481 Object dest, int destPos,
482 int length);
483
484 /**
485 * Returns the same hash code for the given object as
486 * would be returned by the default method hashCode(),
487 * whether or not the given object's class overrides
488 * hashCode().
489 * The hash code for the null reference is zero.
490 *
491 * <div class="preview-block">
492 * <div class="preview-comment">
493 * The "identity hash code" of a {@linkplain Class#isValue() value object}
494 * is computed by combining the identity hash codes of the value object's fields recursively.
495 * </div>
496 * </div>
497 * @apiNote
498 * <div class="preview-block">
499 * <div class="preview-comment">
500 * Note that, like ==, this hash code exposes information about a value object's
501 * private fields that might otherwise be hidden by an identity object.
502 * Developers should be cautious about storing sensitive secrets in value object fields.
503 * </div>
504 * </div>
505 *
506 * @param x object for which the hashCode is to be calculated
507 * @return the hashCode
508 * @since 1.1
509 * @see Object#hashCode
510 * @see java.util.Objects#hashCode(Object)
511 */
512 @IntrinsicCandidate
513 public static native int identityHashCode(Object x);
514
515 /**
516 * System properties.
517 *
518 * See {@linkplain #getProperties getProperties} for details.
519 */
520 private static Properties props;
521
522 /**
523 * Determines the current system properties.
524 * <p>
525 * The current set of system properties for use by the
2332 }
2333
2334 public void unparkVirtualThread(Thread thread) {
2335 if (thread instanceof BaseVirtualThread vthread) {
2336 vthread.unpark();
2337 } else {
2338 throw new IllegalArgumentException();
2339 }
2340 }
2341
2342 public Executor virtualThreadDefaultScheduler() {
2343 return VirtualThread.defaultScheduler();
2344 }
2345
2346 public StackWalker newStackWalkerInstance(Set<StackWalker.Option> options,
2347 ContinuationScope contScope,
2348 Continuation continuation) {
2349 return StackWalker.newInstance(options, null, contScope, continuation);
2350 }
2351
2352 public int classFileFormatVersion(Class<?> clazz) {
2353 return clazz.getClassFileVersion();
2354 }
2355
2356 public String getLoaderNameID(ClassLoader loader) {
2357 return loader != null ? loader.nameAndId() : "null";
2358 }
2359
2360 @Override
2361 public void copyToSegmentRaw(String string, MemorySegment segment, long offset, int srcIndex, int srcLength) {
2362 string.copyToSegmentRaw(segment, offset, srcIndex, srcLength);
2363 }
2364
2365 @Override
2366 public boolean bytesCompatible(String string, Charset charset, int srcIndex, int numChars) {
2367 return string.bytesCompatible(charset, srcIndex, numChars);
2368 }
2369
2370 @Override
2371 public void finishInit(StackTraceElement[] stackTrace) {
2372 StackTraceElement.finishInit(stackTrace);
2373 }
2374 });
2375 }
|