[update] java10-example 示例完成
This commit is contained in:
parent
18dfea4d87
commit
83190d9a50
700
demo2/java10-example/AppCDS.md
Normal file
700
demo2/java10-example/AppCDS.md
Normal file
@ -0,0 +1,700 @@
|
|||||||
|
Java 10 新特性示例:应用类数据共享 (Application Class-Data Sharing)
|
||||||
|
---
|
||||||
|
AppCDS 的使用需要通过 JVM 参数在命令行中进行操作,无法在单一 Java 程序内部完全展示。以下是完整的可运行示例说明:
|
||||||
|
|
||||||
|
## 可运行示例说明
|
||||||
|
|
||||||
|
### 1. 创建一个简单的应用程序
|
||||||
|
|
||||||
|
```java
|
||||||
|
// MyApp.java
|
||||||
|
package top.yexuejc.demo.java10;
|
||||||
|
public class MyApp {
|
||||||
|
public static void main(String[] args) {
|
||||||
|
System.out.println("Hello from MyApp with AppCDS!");
|
||||||
|
// 使用一些常用的类来演示类共享
|
||||||
|
java.util.ArrayList<String> list = new java.util.ArrayList<>();
|
||||||
|
list.add("Example");
|
||||||
|
System.out.println("List size: " + list.size());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
### 2. AppCDS 使用步骤
|
||||||
|
|
||||||
|
AppCDS 的使用分为三个步骤,需要在命令行中执行:
|
||||||
|
|
||||||
|
1. **创建类列表文件**:
|
||||||
|
```bash
|
||||||
|
# "C:\Program Files\Java\jdk-10.0.2\bin\java.exe" -Xshare:off -XX:DumpLoadedClassList=app.classlist top.yexuejc.demo.java10.MyApp
|
||||||
|
java -Xshare:off -XX:DumpLoadedClassList=app.classlist top.yexuejc.demo.java10.MyApp
|
||||||
|
```
|
||||||
|
|
||||||
|
这会生成一个 `app.classlist` 文件,其中包含应用程序加载的所有类。
|
||||||
|

|
||||||
|

|
||||||
|
2. **创建共享存档**:
|
||||||
|
```bash
|
||||||
|
# "C:\Program Files\Java\jdk-10.0.2\bin\java.exe" -XX:+UnlockDiagnosticVMOptions -Xshare:dump -XX:SharedClassListFile=app.classlist -XX:SharedArchiveFile=app.jsa top.yexuejc.demo.java10.MyApp
|
||||||
|
java -Xshare:dump -XX:SharedClassListFile=app.classlist -XX:SharedArchiveFile=app.jsa top.yexuejc.demo.java10.MyApp
|
||||||
|
```
|
||||||
|
这会创建一个名为 `app.jsa` 的共享存档文件。
|
||||||
|
```shell
|
||||||
|
F:\coding\java-learning\demo2\java10-example\target\classes>"C:\Program Files\Java\jdk-10.0.2\bin\java.exe" -Xshare:dump -XX:SharedClassListFile=app.classlist -XX:SharedArchiveFile=app.jsa top.yexuejc.demo.java10.MyApp
|
||||||
|
Error: VM option 'SharedArchiveFile' is diagnostic and must be enabled via -XX:+UnlockDiagnosticVMOptions.
|
||||||
|
Error: The unlock option must precede 'SharedArchiveFile'.
|
||||||
|
Error: Could not create the Java Virtual Machine.
|
||||||
|
Error: A fatal exception has occurred. Program will exit.
|
||||||
|
|
||||||
|
# 添加-XX:+UnlockDiagnosticVMOptions
|
||||||
|
|
||||||
|
F:\coding\java-learning\demo2\java10-example\target\classes>"C:\Program Files\Java\jdk-10.0.2\bin\java.exe" -XX:+UnlockDiagnosticVMOptions -Xshare:dump -XX:SharedClassListFile=app.classlist -XX:SharedArchiveFile=app.jsa top.yexuejc.demo.java10.MyApp
|
||||||
|
narrow_klass_base = 0x0000000800000000, narrow_klass_shift = 3
|
||||||
|
Allocated temporary class space: 1073741824 bytes at 0x00000008c0000000
|
||||||
|
Allocated shared space: 3221225472 bytes at 0x0000000800000000
|
||||||
|
Loading classes to share ...
|
||||||
|
Loading classes to share: done.
|
||||||
|
Rewriting and linking classes ...
|
||||||
|
Rewriting and linking classes: done
|
||||||
|
Number of classes 635
|
||||||
|
instance classes = 572
|
||||||
|
obj array classes = 55
|
||||||
|
type array classes = 8
|
||||||
|
Updating ConstMethods ... done.
|
||||||
|
Removing unshareable information ... done.
|
||||||
|
Scanning all metaspace objects ...
|
||||||
|
Allocating RW objects ...
|
||||||
|
Allocating RO objects ...
|
||||||
|
Relocating embedded pointers ...
|
||||||
|
Relocating external roots ...
|
||||||
|
Dumping symbol table ...
|
||||||
|
Relocating SystemDictionary::_well_known_klasses[] ...
|
||||||
|
Removing java_mirror ... done.
|
||||||
|
mc space: 5560 [ 0.1% of total] out of 65536 bytes [ 8.5% used] at 0x0000000800000000
|
||||||
|
rw space: 2036632 [ 21.4% of total] out of 2097152 bytes [ 97.1% used] at 0x0000000800010000
|
||||||
|
ro space: 3864664 [ 40.7% of total] out of 3866624 bytes [ 99.9% used] at 0x0000000800210000
|
||||||
|
md space: 6160 [ 0.1% of total] out of 65536 bytes [ 9.4% used] at 0x00000008005c0000
|
||||||
|
od space: 3356912 [ 35.3% of total] out of 3407872 bytes [ 98.5% used] at 0x00000008005d0000
|
||||||
|
total : 9269928 [100.0% of total] out of 9502720 bytes [ 97.6% used]
|
||||||
|
|
||||||
|
```
|
||||||
|

|
||||||
|
|
||||||
|
3. **使用共享存档运行应用程序**:
|
||||||
|
```bash
|
||||||
|
# "C:\Program Files\Java\jdk-10.0.2\bin\java.exe" -XX:+UnlockDiagnosticVMOptions -Xshare:on -XX:SharedArchiveFile=app.jsa top.yexuejc.demo.java10.MyApp
|
||||||
|
java -Xshare:on -XX:SharedArchiveFile=app.jsa top.yexuejc.demo.java10.MyApp
|
||||||
|
```
|
||||||
|
```shell
|
||||||
|
F:\coding\java-learning\demo2\java10-example\target\classes>"C:\Program Files\Java\jdk-10.0.2\bin\java.exe" -XX:+UnlockDiagnosticVMOptions -Xshare:on -XX:SharedArchiveFile=app.jsa top.yexuejc.demo.java10.MyApp
|
||||||
|
Hello from MyApp with AppCDS!
|
||||||
|
List size: 1
|
||||||
|
```
|
||||||
|
这样运行的应用程序会使用共享存档,从而加快启动速度。
|
||||||
|
|
||||||
|
### 3. 验证 AppCDS 是否生效
|
||||||
|
|
||||||
|
可以通过以下方式验证 AppCDS 是否正常工作:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 检查是否使用了共享存档
|
||||||
|
# "C:\Program Files\Java\jdk-10.0.2\bin\java.exe" -XX:+UnlockDiagnosticVMOptions -Xshare:on -XX:SharedArchiveFile=app.jsa -verbose:class top.yexuejc.demo.java10.MyApp
|
||||||
|
java -Xshare:on -XX:SharedArchiveFile=app.jsa -verbose:class top.yexuejc.demo.java10.MyApp
|
||||||
|
```
|
||||||
|
```shell
|
||||||
|
F:\coding\java-learning\demo2\java10-example\target\classes>"C:\Program Files\Java\jdk-10.0.2\bin\java.exe" -XX:+UnlockDiagnosticVMOptions -Xshare:on -XX:SharedArchiveFile=app.jsa -verbose:class top.yexuejc.demo.java10.MyApp
|
||||||
|
[0.010s][info][class,load] opened: C:\Program Files\Java\jdk-10.0.2\lib\modules
|
||||||
|
[0.032s][info][class,load] java.lang.Object source: shared objects file
|
||||||
|
[0.032s][info][class,load] java.io.Serializable source: shared objects file
|
||||||
|
[0.032s][info][class,load] java.lang.Comparable source: shared objects file
|
||||||
|
[0.033s][info][class,load] java.lang.CharSequence source: shared objects file
|
||||||
|
[0.033s][info][class,load] java.lang.String source: shared objects file
|
||||||
|
[0.033s][info][class,load] java.lang.reflect.AnnotatedElement source: shared objects file
|
||||||
|
[0.033s][info][class,load] java.lang.reflect.GenericDeclaration source: shared objects file
|
||||||
|
[0.033s][info][class,load] java.lang.reflect.Type source: shared objects file
|
||||||
|
[0.034s][info][class,load] java.lang.Class source: shared objects file
|
||||||
|
[0.034s][info][class,load] java.lang.Cloneable source: shared objects file
|
||||||
|
[0.034s][info][class,load] java.lang.ClassLoader source: shared objects file
|
||||||
|
[0.034s][info][class,load] java.lang.System source: shared objects file
|
||||||
|
[0.034s][info][class,load] java.lang.Throwable source: shared objects file
|
||||||
|
[0.034s][info][class,load] java.lang.Error source: shared objects file
|
||||||
|
[0.034s][info][class,load] java.lang.ThreadDeath source: shared objects file
|
||||||
|
[0.034s][info][class,load] java.lang.Exception source: shared objects file
|
||||||
|
[0.035s][info][class,load] java.lang.RuntimeException source: shared objects file
|
||||||
|
[0.035s][info][class,load] java.lang.SecurityManager source: shared objects file
|
||||||
|
[0.035s][info][class,load] java.security.ProtectionDomain source: shared objects file
|
||||||
|
[0.035s][info][class,load] java.security.AccessControlContext source: shared objects file
|
||||||
|
[0.035s][info][class,load] java.security.SecureClassLoader source: shared objects file
|
||||||
|
[0.035s][info][class,load] java.lang.ReflectiveOperationException source: shared objects file
|
||||||
|
[0.035s][info][class,load] java.lang.ClassNotFoundException source: shared objects file
|
||||||
|
[0.036s][info][class,load] java.lang.LinkageError source: shared objects file
|
||||||
|
[0.036s][info][class,load] java.lang.NoClassDefFoundError source: shared objects file
|
||||||
|
[0.036s][info][class,load] java.lang.ClassCastException source: shared objects file
|
||||||
|
[0.036s][info][class,load] java.lang.ArrayStoreException source: shared objects file
|
||||||
|
[0.036s][info][class,load] java.lang.VirtualMachineError source: shared objects file
|
||||||
|
[0.036s][info][class,load] java.lang.OutOfMemoryError source: shared objects file
|
||||||
|
[0.036s][info][class,load] java.lang.StackOverflowError source: shared objects file
|
||||||
|
[0.036s][info][class,load] java.lang.IllegalMonitorStateException source: shared objects file
|
||||||
|
[0.037s][info][class,load] java.lang.ref.Reference source: shared objects file
|
||||||
|
[0.037s][info][class,load] java.lang.ref.SoftReference source: shared objects file
|
||||||
|
[0.037s][info][class,load] java.lang.ref.WeakReference source: shared objects file
|
||||||
|
[0.037s][info][class,load] java.lang.ref.FinalReference source: shared objects file
|
||||||
|
[0.037s][info][class,load] java.lang.ref.PhantomReference source: shared objects file
|
||||||
|
[0.037s][info][class,load] java.lang.ref.Finalizer source: shared objects file
|
||||||
|
[0.037s][info][class,load] java.lang.ref.ReferenceQueue source: shared objects file
|
||||||
|
[0.037s][info][class,load] java.lang.Runnable source: shared objects file
|
||||||
|
[0.038s][info][class,load] java.lang.Thread source: shared objects file
|
||||||
|
[0.038s][info][class,load] java.lang.Thread$UncaughtExceptionHandler source: shared objects file
|
||||||
|
[0.038s][info][class,load] java.lang.ThreadGroup source: shared objects file
|
||||||
|
[0.038s][info][class,load] java.util.Dictionary source: shared objects file
|
||||||
|
[0.038s][info][class,load] java.util.Map source: shared objects file
|
||||||
|
[0.038s][info][class,load] java.util.Hashtable source: shared objects file
|
||||||
|
[0.038s][info][class,load] java.util.Properties source: shared objects file
|
||||||
|
[0.039s][info][class,load] java.lang.Module source: shared objects file
|
||||||
|
[0.039s][info][class,load] java.lang.reflect.AccessibleObject source: shared objects file
|
||||||
|
[0.039s][info][class,load] java.lang.reflect.Member source: shared objects file
|
||||||
|
[0.039s][info][class,load] java.lang.reflect.Field source: shared objects file
|
||||||
|
[0.039s][info][class,load] java.lang.reflect.Parameter source: shared objects file
|
||||||
|
[0.039s][info][class,load] java.lang.reflect.Executable source: shared objects file
|
||||||
|
[0.039s][info][class,load] java.lang.reflect.Method source: shared objects file
|
||||||
|
[0.040s][info][class,load] java.lang.reflect.Constructor source: shared objects file
|
||||||
|
[0.040s][info][class,load] jdk.internal.reflect.MagicAccessorImpl source: shared objects file
|
||||||
|
[0.040s][info][class,load] jdk.internal.reflect.MethodAccessor source: shared objects file
|
||||||
|
[0.040s][info][class,load] jdk.internal.reflect.MethodAccessorImpl source: shared objects file
|
||||||
|
[0.040s][info][class,load] jdk.internal.reflect.ConstructorAccessor source: shared objects file
|
||||||
|
[0.040s][info][class,load] jdk.internal.reflect.ConstructorAccessorImpl source: shared objects file
|
||||||
|
[0.040s][info][class,load] jdk.internal.reflect.DelegatingClassLoader source: shared objects file
|
||||||
|
[0.040s][info][class,load] jdk.internal.reflect.ConstantPool source: shared objects file
|
||||||
|
[0.040s][info][class,load] jdk.internal.reflect.FieldAccessor source: shared objects file
|
||||||
|
[0.041s][info][class,load] jdk.internal.reflect.FieldAccessorImpl source: shared objects file
|
||||||
|
[0.041s][info][class,load] jdk.internal.reflect.UnsafeFieldAccessorImpl source: shared objects file
|
||||||
|
[0.041s][info][class,load] jdk.internal.reflect.UnsafeStaticFieldAccessorImpl source: shared objects file
|
||||||
|
[0.041s][info][class,load] java.lang.annotation.Annotation source: shared objects file
|
||||||
|
[0.041s][info][class,load] jdk.internal.reflect.CallerSensitive source: shared objects file
|
||||||
|
[0.041s][info][class,load] java.lang.invoke.MethodHandle source: shared objects file
|
||||||
|
[0.041s][info][class,load] java.lang.invoke.DirectMethodHandle source: shared objects file
|
||||||
|
[0.041s][info][class,load] java.lang.invoke.VarHandle source: shared objects file
|
||||||
|
[0.041s][info][class,load] java.lang.invoke.MemberName source: shared objects file
|
||||||
|
[0.042s][info][class,load] java.lang.invoke.ResolvedMethodName source: shared objects file
|
||||||
|
[0.042s][info][class,load] java.lang.invoke.MethodHandleNatives source: shared objects file
|
||||||
|
[0.042s][info][class,load] java.lang.invoke.LambdaForm source: shared objects file
|
||||||
|
[0.042s][info][class,load] java.lang.invoke.MethodType source: shared objects file
|
||||||
|
[0.042s][info][class,load] java.lang.BootstrapMethodError source: shared objects file
|
||||||
|
[0.042s][info][class,load] java.lang.invoke.CallSite source: shared objects file
|
||||||
|
[0.042s][info][class,load] java.lang.invoke.MethodHandleNatives$CallSiteContext source: shared objects file
|
||||||
|
[0.042s][info][class,load] java.lang.invoke.ConstantCallSite source: shared objects file
|
||||||
|
[0.043s][info][class,load] java.lang.invoke.MutableCallSite source: shared objects file
|
||||||
|
[0.043s][info][class,load] java.lang.invoke.VolatileCallSite source: shared objects file
|
||||||
|
[0.043s][info][class,load] java.lang.Appendable source: shared objects file
|
||||||
|
[0.043s][info][class,load] java.lang.AbstractStringBuilder source: shared objects file
|
||||||
|
[0.043s][info][class,load] java.lang.StringBuffer source: shared objects file
|
||||||
|
[0.043s][info][class,load] java.lang.StringBuilder source: shared objects file
|
||||||
|
[0.044s][info][class,load] jdk.internal.misc.Unsafe source: shared objects file
|
||||||
|
[0.044s][info][class,load] jdk.internal.module.Modules source: shared objects file
|
||||||
|
[0.044s][info][class,load] java.lang.AutoCloseable source: shared objects file
|
||||||
|
[0.044s][info][class,load] java.io.Closeable source: shared objects file
|
||||||
|
[0.045s][info][class,load] java.io.InputStream source: shared objects file
|
||||||
|
[0.045s][info][class,load] java.io.ByteArrayInputStream source: shared objects file
|
||||||
|
[0.045s][info][class,load] java.io.File source: shared objects file
|
||||||
|
[0.046s][info][class,load] java.net.URL source: shared objects file
|
||||||
|
[0.046s][info][class,load] java.util.jar.Manifest source: shared objects file
|
||||||
|
[0.046s][info][class,load] jdk.internal.loader.BuiltinClassLoader source: shared objects file
|
||||||
|
[0.046s][info][class,load] jdk.internal.loader.ClassLoaders$AppClassLoader source: shared objects file
|
||||||
|
[0.046s][info][class,load] jdk.internal.loader.ClassLoaders$PlatformClassLoader source: shared objects file
|
||||||
|
[0.047s][info][class,load] java.security.CodeSource source: shared objects file
|
||||||
|
[0.047s][info][class,load] sun.net.www.ParseUtil source: shared objects file
|
||||||
|
[0.047s][info][class,load] java.lang.StackTraceElement source: shared objects file
|
||||||
|
[0.047s][info][class,load] java.nio.Buffer source: shared objects file
|
||||||
|
[0.047s][info][class,load] java.lang.StackWalker source: shared objects file
|
||||||
|
[0.047s][info][class,load] java.lang.StackStreamFactory$AbstractStackWalker source: shared objects file
|
||||||
|
[0.048s][info][class,load] java.lang.StackWalker$StackFrame source: shared objects file
|
||||||
|
[0.048s][info][class,load] java.lang.StackFrameInfo source: shared objects file
|
||||||
|
[0.048s][info][class,load] java.lang.LiveStackFrame source: shared objects file
|
||||||
|
[0.048s][info][class,load] java.lang.LiveStackFrameInfo source: shared objects file
|
||||||
|
[0.048s][info][class,load] java.lang.Boolean source: shared objects file
|
||||||
|
[0.048s][info][class,load] java.lang.Character source: shared objects file
|
||||||
|
[0.048s][info][class,load] java.lang.Number source: shared objects file
|
||||||
|
[0.048s][info][class,load] java.lang.Float source: shared objects file
|
||||||
|
[0.048s][info][class,load] java.lang.Double source: shared objects file
|
||||||
|
[0.049s][info][class,load] java.lang.Byte source: shared objects file
|
||||||
|
[0.049s][info][class,load] java.lang.Short source: shared objects file
|
||||||
|
[0.049s][info][class,load] java.lang.Integer source: shared objects file
|
||||||
|
[0.049s][info][class,load] java.lang.Long source: shared objects file
|
||||||
|
[0.049s][info][class,load] jdk.internal.loader.ClassLoaders source: shared objects file
|
||||||
|
[0.050s][info][class,load] java.lang.NullPointerException source: shared objects file
|
||||||
|
[0.050s][info][class,load] java.lang.ArithmeticException source: shared objects file
|
||||||
|
[0.051s][info][class,load] java.io.ObjectStreamField source: shared objects file
|
||||||
|
[0.052s][info][class,load] java.util.Comparator source: shared objects file
|
||||||
|
[0.052s][info][class,load] java.lang.String$CaseInsensitiveComparator source: shared objects file
|
||||||
|
[0.052s][info][class,load] java.security.Guard source: shared objects file
|
||||||
|
[0.053s][info][class,load] java.security.Permission source: shared objects file
|
||||||
|
[0.053s][info][class,load] java.security.BasicPermission source: shared objects file
|
||||||
|
[0.053s][info][class,load] java.lang.RuntimePermission source: shared objects file
|
||||||
|
[0.054s][info][class,load] java.lang.StringLatin1 source: shared objects file
|
||||||
|
[0.054s][info][class,load] java.security.AccessController source: shared objects file
|
||||||
|
[0.055s][info][class,load] java.lang.Iterable source: shared objects file
|
||||||
|
[0.055s][info][class,load] java.util.Collection source: shared objects file
|
||||||
|
[0.055s][info][class,load] java.util.Set source: shared objects file
|
||||||
|
[0.055s][info][class,load] java.util.AbstractCollection source: shared objects file
|
||||||
|
[0.055s][info][class,load] java.util.AbstractSet source: shared objects file
|
||||||
|
[0.055s][info][class,load] java.util.ImmutableCollections$AbstractImmutableSet source: shared objects file
|
||||||
|
[0.056s][info][class,load] java.util.ImmutableCollections$Set1 source: shared objects file
|
||||||
|
[0.056s][info][class,load] java.util.Objects source: shared objects file
|
||||||
|
[0.056s][info][class,load] java.lang.reflect.ReflectPermission source: shared objects file
|
||||||
|
[0.056s][info][class,load] java.security.PrivilegedAction source: shared objects file
|
||||||
|
[0.056s][info][class,load] jdk.internal.reflect.ReflectionFactory$GetReflectionFactoryAction source: shared objects file
|
||||||
|
[0.057s][info][class,load] java.security.cert.Certificate source: shared objects file
|
||||||
|
[0.057s][info][class,load] java.util.HashSet source: shared objects file
|
||||||
|
[0.057s][info][class,load] java.util.AbstractMap source: shared objects file
|
||||||
|
[0.057s][info][class,load] java.util.HashMap source: shared objects file
|
||||||
|
[0.057s][info][class,load] java.util.concurrent.ConcurrentMap source: shared objects file
|
||||||
|
[0.058s][info][class,load] java.util.concurrent.ConcurrentHashMap source: shared objects file
|
||||||
|
[0.058s][info][class,load] java.lang.Runtime source: shared objects file
|
||||||
|
[0.058s][info][class,load] java.util.concurrent.locks.Lock source: shared objects file
|
||||||
|
[0.058s][info][class,load] java.util.concurrent.locks.ReentrantLock source: shared objects file
|
||||||
|
[0.058s][info][class,load] java.util.concurrent.ConcurrentHashMap$Segment source: shared objects file
|
||||||
|
[0.059s][info][class,load] java.util.concurrent.ConcurrentHashMap$CounterCell source: shared objects file
|
||||||
|
[0.059s][info][class,load] java.util.Map$Entry source: shared objects file
|
||||||
|
[0.059s][info][class,load] java.util.concurrent.ConcurrentHashMap$Node source: shared objects file
|
||||||
|
[0.059s][info][class,load] java.util.concurrent.locks.LockSupport source: shared objects file
|
||||||
|
[0.059s][info][class,load] jdk.internal.reflect.ReflectionFactory source: shared objects file
|
||||||
|
[0.059s][info][class,load] java.lang.ref.Reference$ReferenceHandler source: shared objects file
|
||||||
|
[0.059s][info][class,load] jdk.internal.ref.Cleaner source: shared objects file
|
||||||
|
[0.059s][info][class,load] java.lang.ref.ReferenceQueue$Null source: shared objects file
|
||||||
|
[0.060s][info][class,load] java.lang.ref.ReferenceQueue$Lock source: shared objects file
|
||||||
|
[0.060s][info][class,load] jdk.internal.misc.JavaLangRefAccess source: shared objects file
|
||||||
|
[0.060s][info][class,load] java.lang.ref.Reference$1 source: shared objects file
|
||||||
|
[0.060s][info][class,load] jdk.internal.misc.SharedSecrets source: shared objects file
|
||||||
|
[0.060s][info][class,load] java.lang.ref.Finalizer$FinalizerThread source: shared objects file
|
||||||
|
[0.061s][info][class,load] jdk.internal.misc.VM source: shared objects file
|
||||||
|
[0.066s][info][class,load] java.nio.charset.Charset source: shared objects file
|
||||||
|
[0.066s][info][class,load] java.nio.charset.spi.CharsetProvider source: shared objects file
|
||||||
|
[0.066s][info][class,load] sun.nio.cs.StandardCharsets source: shared objects file
|
||||||
|
[0.066s][info][class,load] java.lang.ThreadLocal source: shared objects file
|
||||||
|
[0.067s][info][class,load] java.util.concurrent.atomic.AtomicInteger source: shared objects file
|
||||||
|
[0.067s][info][class,load] java.util.Arrays source: shared objects file
|
||||||
|
[0.067s][info][class,load] java.lang.Math source: shared objects file
|
||||||
|
[0.068s][info][class,load] sun.util.PreHashedMap source: shared objects file
|
||||||
|
[0.068s][info][class,load] sun.nio.cs.StandardCharsets$Aliases source: shared objects file
|
||||||
|
[0.068s][info][class,load] sun.nio.cs.StandardCharsets$Cache source: shared objects file
|
||||||
|
[0.068s][info][class,load] sun.nio.cs.HistoricallyNamedCharset source: shared objects file
|
||||||
|
[0.068s][info][class,load] sun.nio.cs.Unicode source: shared objects file
|
||||||
|
[0.068s][info][class,load] sun.nio.cs.UTF_8 source: shared objects file
|
||||||
|
[0.069s][info][class,load] sun.nio.cs.ISO_8859_1 source: shared objects file
|
||||||
|
[0.069s][info][class,load] sun.nio.cs.US_ASCII source: shared objects file
|
||||||
|
[0.069s][info][class,load] sun.nio.cs.StandardCharsets$Classes source: shared objects file
|
||||||
|
[0.069s][info][class,load] sun.nio.cs.MS932 source: shared objects file
|
||||||
|
[0.069s][info][class,load] java.lang.Class$ReflectionData source: shared objects file
|
||||||
|
[0.070s][info][class,load] java.lang.Class$Atomic source: shared objects file
|
||||||
|
[0.070s][info][class,load] java.lang.reflect.Modifier source: shared objects file
|
||||||
|
[0.070s][info][class,load] jdk.internal.reflect.LangReflectAccess source: shared objects file
|
||||||
|
[0.070s][info][class,load] java.lang.reflect.ReflectAccess source: shared objects file
|
||||||
|
[0.070s][info][class,load] java.lang.Class$1 source: shared objects file
|
||||||
|
[0.070s][info][class,load] jdk.internal.reflect.Reflection source: shared objects file
|
||||||
|
[0.070s][info][class,load] java.util.HashMap$Node source: shared objects file
|
||||||
|
[0.071s][info][class,load] jdk.internal.reflect.NativeConstructorAccessorImpl source: shared objects file
|
||||||
|
[0.071s][info][class,load] jdk.internal.reflect.DelegatingConstructorAccessorImpl source: shared objects file
|
||||||
|
[0.071s][info][class,load] java.lang.StringCoding source: shared objects file
|
||||||
|
[0.071s][info][class,load] java.lang.StringCoding$1 source: shared objects file
|
||||||
|
[0.071s][info][class,load] java.lang.ThreadLocal$ThreadLocalMap source: shared objects file
|
||||||
|
[0.071s][info][class,load] java.lang.ThreadLocal$ThreadLocalMap$Entry source: shared objects file
|
||||||
|
[0.072s][info][class,load] java.lang.StringCoding$StringDecoder source: shared objects file
|
||||||
|
[0.072s][info][class,load] sun.nio.cs.DoubleByte source: shared objects file
|
||||||
|
[0.072s][info][class,load] java.lang.StringUTF16 source: shared objects file
|
||||||
|
[0.073s][info][class,load] java.nio.charset.CharsetDecoder source: shared objects file
|
||||||
|
[0.073s][info][class,load] sun.nio.cs.DelegatableDecoder source: shared objects file
|
||||||
|
[0.073s][info][class,load] sun.nio.cs.ArrayDecoder source: shared objects file
|
||||||
|
[0.073s][info][class,load] sun.nio.cs.DoubleByte$Decoder source: shared objects file
|
||||||
|
[0.074s][info][class,load] java.nio.charset.CodingErrorAction source: shared objects file
|
||||||
|
[0.074s][info][class,load] java.lang.StringCoding$Result source: shared objects file
|
||||||
|
[0.074s][info][class,load] java.util.Properties$EntrySet source: shared objects file
|
||||||
|
[0.074s][info][class,load] java.util.concurrent.ConcurrentHashMap$CollectionView source: shared objects file
|
||||||
|
[0.075s][info][class,load] java.util.concurrent.ConcurrentHashMap$EntrySetView source: shared objects file
|
||||||
|
[0.075s][info][class,load] java.util.Collections source: shared objects file
|
||||||
|
[0.075s][info][class,load] java.util.Collections$EmptySet source: shared objects file
|
||||||
|
[0.075s][info][class,load] java.util.List source: shared objects file
|
||||||
|
[0.075s][info][class,load] java.util.AbstractList source: shared objects file
|
||||||
|
[0.075s][info][class,load] java.util.RandomAccess source: shared objects file
|
||||||
|
[0.075s][info][class,load] java.util.Collections$EmptyList source: shared objects file
|
||||||
|
[0.076s][info][class,load] java.util.Collections$EmptyMap source: shared objects file
|
||||||
|
[0.076s][info][class,load] java.util.Collections$SynchronizedCollection source: shared objects file
|
||||||
|
[0.076s][info][class,load] java.util.Collections$SynchronizedSet source: shared objects file
|
||||||
|
[0.076s][info][class,load] java.lang.reflect.Array source: shared objects file
|
||||||
|
[0.076s][info][class,load] java.util.concurrent.ConcurrentHashMap$Traverser source: shared objects file
|
||||||
|
[0.076s][info][class,load] java.util.concurrent.ConcurrentHashMap$BaseIterator source: shared objects file
|
||||||
|
[0.076s][info][class,load] java.util.Iterator source: shared objects file
|
||||||
|
[0.076s][info][class,load] java.util.concurrent.ConcurrentHashMap$EntryIterator source: shared objects file
|
||||||
|
[0.076s][info][class,load] java.util.concurrent.ConcurrentHashMap$MapEntry source: shared objects file
|
||||||
|
[0.077s][info][class,load] java.util.ImmutableCollections$AbstractImmutableMap source: shared objects file
|
||||||
|
[0.077s][info][class,load] java.util.ImmutableCollections$MapN source: shared objects file
|
||||||
|
[0.077s][info][class,load] java.util.ImmutableCollections source: shared objects file
|
||||||
|
[0.077s][info][class,load] java.lang.VersionProps source: shared objects file
|
||||||
|
[0.077s][info][class,load] java.io.FileInputStream source: shared objects file
|
||||||
|
[0.078s][info][class,load] java.io.FileDescriptor source: shared objects file
|
||||||
|
[0.078s][info][class,load] jdk.internal.misc.JavaIOFileDescriptorAccess source: shared objects file
|
||||||
|
[0.078s][info][class,load] java.io.FileDescriptor$1 source: shared objects file
|
||||||
|
[0.078s][info][class,load] java.io.Flushable source: shared objects file
|
||||||
|
[0.078s][info][class,load] java.io.OutputStream source: shared objects file
|
||||||
|
[0.078s][info][class,load] java.io.FileOutputStream source: shared objects file
|
||||||
|
[0.078s][info][class,load] java.io.FilterInputStream source: shared objects file
|
||||||
|
[0.078s][info][class,load] java.io.BufferedInputStream source: shared objects file
|
||||||
|
[0.079s][info][class,load] java.io.FilterOutputStream source: shared objects file
|
||||||
|
[0.079s][info][class,load] java.io.PrintStream source: shared objects file
|
||||||
|
[0.079s][info][class,load] java.io.BufferedOutputStream source: shared objects file
|
||||||
|
[0.079s][info][class,load] java.lang.IllegalArgumentException source: shared objects file
|
||||||
|
[0.079s][info][class,load] java.nio.charset.UnsupportedCharsetException source: shared objects file
|
||||||
|
[0.080s][info][class,load] java.nio.charset.IllegalCharsetNameException source: shared objects file
|
||||||
|
[0.080s][info][class,load] java.io.IOException source: shared objects file
|
||||||
|
[0.080s][info][class,load] java.io.UnsupportedEncodingException source: shared objects file
|
||||||
|
[0.080s][info][class,load] java.io.Writer source: shared objects file
|
||||||
|
[0.080s][info][class,load] java.io.OutputStreamWriter source: shared objects file
|
||||||
|
[0.081s][info][class,load] sun.nio.cs.StreamEncoder source: shared objects file
|
||||||
|
[0.081s][info][class,load] sun.security.action.GetPropertyAction source: shared objects file
|
||||||
|
[0.081s][info][class,load] java.nio.charset.CharsetEncoder source: shared objects file
|
||||||
|
[0.082s][info][class,load] sun.nio.cs.ArrayEncoder source: shared objects file
|
||||||
|
[0.082s][info][class,load] sun.nio.cs.DoubleByte$Encoder source: shared objects file
|
||||||
|
[0.084s][info][class,load] java.nio.ByteBuffer source: shared objects file
|
||||||
|
[0.084s][info][class,load] java.nio.HeapByteBuffer source: shared objects file
|
||||||
|
[0.085s][info][class,load] java.nio.Bits source: shared objects file
|
||||||
|
[0.085s][info][class,load] java.nio.ByteOrder source: shared objects file
|
||||||
|
[0.085s][info][class,load] java.util.concurrent.atomic.AtomicLong source: shared objects file
|
||||||
|
[0.086s][info][class,load] jdk.internal.misc.JavaNioAccess source: shared objects file
|
||||||
|
[0.086s][info][class,load] java.nio.Bits$1 source: shared objects file
|
||||||
|
[0.086s][info][class,load] java.lang.Readable source: shared objects file
|
||||||
|
[0.086s][info][class,load] java.nio.CharBuffer source: shared objects file
|
||||||
|
[0.087s][info][class,load] java.nio.HeapCharBuffer source: shared objects file
|
||||||
|
[0.087s][info][class,load] java.nio.charset.CoderResult source: shared objects file
|
||||||
|
[0.087s][info][class,load] java.nio.charset.CoderResult$Cache source: shared objects file
|
||||||
|
[0.087s][info][class,load] java.nio.charset.CoderResult$1 source: shared objects file
|
||||||
|
[0.088s][info][class,load] java.nio.charset.CoderResult$2 source: shared objects file
|
||||||
|
[0.088s][info][class,load] java.io.BufferedWriter source: shared objects file
|
||||||
|
[0.089s][info][class,load] java.lang.Terminator source: shared objects file
|
||||||
|
[0.089s][info][class,load] jdk.internal.misc.Signal$Handler source: shared objects file
|
||||||
|
[0.089s][info][class,load] java.lang.Terminator$1 source: shared objects file
|
||||||
|
[0.089s][info][class,load] jdk.internal.misc.Signal source: shared objects file
|
||||||
|
[0.089s][info][class,load] java.util.Hashtable$Entry source: shared objects file
|
||||||
|
[0.090s][info][class,load] jdk.internal.misc.Signal$NativeHandler source: shared objects file
|
||||||
|
[0.090s][info][class,load] java.lang.Integer$IntegerCache source: shared objects file
|
||||||
|
[0.090s][info][class,load] jdk.internal.misc.OSEnvironment source: shared objects file
|
||||||
|
[0.090s][info][class,load] sun.io.Win32ErrorMode source: shared objects file
|
||||||
|
[0.090s][info][class,load] jdk.internal.misc.JavaLangAccess source: shared objects file
|
||||||
|
[0.091s][info][class,load] java.lang.System$2 source: shared objects file
|
||||||
|
[0.093s][info][class,load] java.lang.invoke.MethodHandleStatics source: shared objects file
|
||||||
|
[0.093s][info][class,load] java.lang.CharacterData source: shared objects file
|
||||||
|
[0.094s][info][class,load] java.lang.CharacterDataLatin1 source: shared objects file
|
||||||
|
[0.094s][info][class,load] jdk.internal.module.ModuleBootstrap source: shared objects file
|
||||||
|
[0.094s][info][class,load] java.lang.module.ModuleDescriptor source: shared objects file
|
||||||
|
[0.094s][info][class,load] jdk.internal.misc.JavaLangModuleAccess source: shared objects file
|
||||||
|
[0.095s][info][class,load] java.lang.module.ModuleDescriptor$1 source: shared objects file
|
||||||
|
[0.095s][info][class,load] java.io.DefaultFileSystem source: shared objects file
|
||||||
|
[0.095s][info][class,load] java.io.FileSystem source: shared objects file
|
||||||
|
[0.095s][info][class,load] java.io.WinNTFileSystem source: shared objects file
|
||||||
|
[0.096s][info][class,load] java.io.ExpiringCache source: shared objects file
|
||||||
|
[0.096s][info][class,load] java.util.LinkedHashMap source: shared objects file
|
||||||
|
[0.096s][info][class,load] java.io.ExpiringCache$1 source: shared objects file
|
||||||
|
[0.096s][info][class,load] jdk.internal.module.ModulePatcher source: shared objects file
|
||||||
|
[0.097s][info][class,load] jdk.internal.module.SystemModuleFinders source: shared objects file
|
||||||
|
[0.097s][info][class,load] java.net.URI source: shared objects file
|
||||||
|
[0.097s][info][class,load] jdk.internal.misc.JavaNetUriAccess source: shared objects file
|
||||||
|
[0.097s][info][class,load] java.net.URI$1 source: shared objects file
|
||||||
|
[0.098s][info][class,load] jdk.internal.module.SystemModulesMap source: shared objects file
|
||||||
|
[0.098s][info][class,load] jdk.internal.module.SystemModules source: shared objects file
|
||||||
|
[0.098s][info][class,load] jdk.internal.module.SystemModules$default source: shared objects file
|
||||||
|
[0.098s][info][class,load] jdk.internal.module.Builder source: shared objects file
|
||||||
|
[0.098s][info][class,load] java.lang.module.ModuleDescriptor$Requires source: shared objects file
|
||||||
|
[0.098s][info][class,load] java.util.ImmutableCollections$Set0 source: shared objects file
|
||||||
|
[0.099s][info][class,load] java.lang.module.ModuleDescriptor$Exports source: shared objects file
|
||||||
|
[0.099s][info][class,load] java.util.ImmutableCollections$SetN source: shared objects file
|
||||||
|
[0.099s][info][class,load] java.util.ImmutableCollections$Set2 source: shared objects file
|
||||||
|
[0.099s][info][class,load] java.lang.module.ModuleDescriptor$Opens source: shared objects file
|
||||||
|
[0.100s][info][class,load] java.lang.module.ModuleDescriptor$Provides source: shared objects file
|
||||||
|
[0.100s][info][class,load] java.util.ImmutableCollections$AbstractImmutableList source: shared objects file
|
||||||
|
[0.100s][info][class,load] java.util.ImmutableCollections$List1 source: shared objects file
|
||||||
|
[0.100s][info][class,load] java.lang.module.ModuleDescriptor$Version source: shared objects file
|
||||||
|
[0.100s][info][class,load] java.util.ArrayList source: shared objects file
|
||||||
|
[0.101s][info][class,load] java.lang.Enum source: shared objects file
|
||||||
|
[0.101s][info][class,load] java.lang.module.ModuleDescriptor$Modifier source: shared objects file
|
||||||
|
[0.101s][info][class,load] java.lang.module.ModuleDescriptor$Requires$Modifier source: shared objects file
|
||||||
|
[0.101s][info][class,load] java.util.ImmutableCollections$ListN source: shared objects file
|
||||||
|
[0.102s][info][class,load] java.util.ImmutableCollections$List2 source: shared objects file
|
||||||
|
[0.103s][info][class,load] jdk.internal.module.ModuleTarget source: shared objects file
|
||||||
|
[0.103s][info][class,load] jdk.internal.module.ModuleHashes source: shared objects file
|
||||||
|
[0.103s][info][class,load] jdk.internal.module.ModuleHashes$Builder source: shared objects file
|
||||||
|
[0.104s][info][class,load] java.util.LinkedHashMap$Entry source: shared objects file
|
||||||
|
[0.104s][info][class,load] java.util.HashMap$TreeNode source: shared objects file
|
||||||
|
[0.104s][info][class,load] java.util.Collections$UnmodifiableMap source: shared objects file
|
||||||
|
[0.104s][info][class,load] jdk.internal.module.ModuleResolution source: shared objects file
|
||||||
|
[0.104s][info][class,load] java.lang.module.ModuleReference source: shared objects file
|
||||||
|
[0.104s][info][class,load] java.util.function.Supplier source: shared objects file
|
||||||
|
[0.105s][info][class,load] jdk.internal.module.SystemModuleFinders$2 source: shared objects file
|
||||||
|
[0.105s][info][class,load] jdk.internal.module.ModuleReferenceImpl source: shared objects file
|
||||||
|
[0.105s][info][class,load] java.util.KeyValueHolder source: shared objects file
|
||||||
|
[0.105s][info][class,load] jdk.internal.module.ModuleHashes$HashSupplier source: shared objects file
|
||||||
|
[0.105s][info][class,load] jdk.internal.module.SystemModuleFinders$3 source: shared objects file
|
||||||
|
[0.105s][info][class,load] java.lang.module.ModuleFinder source: shared objects file
|
||||||
|
[0.106s][info][class,load] jdk.internal.module.SystemModuleFinders$SystemModuleFinder source: shared objects file
|
||||||
|
[0.106s][info][class,load] jdk.internal.module.ModuleBootstrap$Counters source: shared objects file
|
||||||
|
[0.106s][info][class,load] java.util.Optional source: shared objects file
|
||||||
|
[0.106s][info][class,load] jdk.internal.loader.BootLoader source: shared objects file
|
||||||
|
[0.107s][info][class,load] jdk.internal.module.ServicesCatalog source: shared objects file
|
||||||
|
[0.107s][info][class,load] jdk.internal.loader.AbstractClassLoaderValue source: shared objects file
|
||||||
|
[0.107s][info][class,load] jdk.internal.loader.ClassLoaderValue source: shared objects file
|
||||||
|
[0.107s][info][class,load] jdk.internal.loader.URLClassPath source: shared objects file
|
||||||
|
[0.107s][info][class,load] java.net.URLStreamHandlerFactory source: shared objects file
|
||||||
|
[0.107s][info][class,load] java.net.URL$DefaultFactory source: shared objects file
|
||||||
|
[0.108s][info][class,load] jdk.internal.misc.JavaNetURLAccess source: shared objects file
|
||||||
|
[0.108s][info][class,load] java.net.URL$3 source: shared objects file
|
||||||
|
[0.108s][info][class,load] java.util.Vector source: shared objects file
|
||||||
|
[0.108s][info][class,load] java.util.Stack source: shared objects file
|
||||||
|
[0.108s][info][class,load] java.io.File$PathStatus source: shared objects file
|
||||||
|
[0.109s][info][class,load] java.io.ExpiringCache$Entry source: shared objects file
|
||||||
|
[0.109s][info][class,load] java.net.URLStreamHandler source: shared objects file
|
||||||
|
[0.109s][info][class,load] sun.net.www.protocol.file.Handler source: shared objects file
|
||||||
|
[0.109s][info][class,load] jdk.internal.util.Preconditions source: shared objects file
|
||||||
|
[0.109s][info][class,load] jdk.internal.loader.ClassLoaders$BootClassLoader source: shared objects file
|
||||||
|
[0.110s][info][class,load] java.lang.ClassLoader$ParallelLoaders source: shared objects file
|
||||||
|
[0.110s][info][class,load] java.util.WeakHashMap source: shared objects file
|
||||||
|
[0.110s][info][class,load] java.util.WeakHashMap$Entry source: shared objects file
|
||||||
|
[0.110s][info][class,load] java.util.Collections$SetFromMap source: shared objects file
|
||||||
|
[0.110s][info][class,load] java.util.WeakHashMap$KeySet source: shared objects file
|
||||||
|
[0.111s][info][class,load] jdk.internal.misc.JavaSecurityAccess source: shared objects file
|
||||||
|
[0.111s][info][class,load] java.security.ProtectionDomain$JavaSecurityAccessImpl source: shared objects file
|
||||||
|
[0.111s][info][class,load] jdk.internal.misc.JavaSecurityProtectionDomainAccess source: shared objects file
|
||||||
|
[0.111s][info][class,load] java.security.ProtectionDomain$2 source: shared objects file
|
||||||
|
[0.111s][info][class,load] java.security.ProtectionDomain$Key source: shared objects file
|
||||||
|
[0.112s][info][class,load] java.security.Principal source: shared objects file
|
||||||
|
[0.112s][info][class,load] jdk.internal.loader.BuiltinClassLoader$LoadedModule source: shared objects file
|
||||||
|
[0.112s][info][class,load] sun.net.www.protocol.jrt.Handler source: shared objects file
|
||||||
|
[0.113s][info][class,load] java.util.ImmutableCollections$SetN$1 source: shared objects file
|
||||||
|
[0.113s][info][class,load] java.lang.module.Configuration source: shared objects file
|
||||||
|
[0.114s][info][class,load] java.lang.module.ResolvedModule source: shared objects file
|
||||||
|
[0.114s][info][class,load] java.util.AbstractMap$1 source: shared objects file
|
||||||
|
[0.114s][info][class,load] java.util.AbstractMap$1$1 source: shared objects file
|
||||||
|
[0.114s][info][class,load] java.util.ImmutableCollections$MapN$1 source: shared objects file
|
||||||
|
[0.114s][info][class,load] java.util.ImmutableCollections$MapN$1$1 source: shared objects file
|
||||||
|
[0.115s][info][class,load] java.util.Collections$1 source: shared objects file
|
||||||
|
[0.115s][info][class,load] java.util.ImmutableCollections$Set2$1 source: shared objects file
|
||||||
|
[0.115s][info][class,load] java.util.Collections$EmptyIterator source: shared objects file
|
||||||
|
[0.115s][info][class,load] jdk.internal.module.ModuleLoaderMap source: shared objects file
|
||||||
|
[0.116s][info][class,load] java.util.function.Function source: shared objects file
|
||||||
|
[0.116s][info][class,load] jdk.internal.module.ModuleLoaderMap$Mapper source: shared objects file
|
||||||
|
[0.117s][info][class,load] java.util.concurrent.ConcurrentHashMap$ForwardingNode source: shared objects file
|
||||||
|
[0.117s][info][class,load] java.lang.ModuleLayer source: shared objects file
|
||||||
|
[0.118s][info][class,load] java.util.ImmutableCollections$List0 source: shared objects file
|
||||||
|
[0.118s][info][class,load] java.util.AbstractList$Itr source: shared objects file
|
||||||
|
[0.118s][info][class,load] java.util.ArrayList$Itr source: shared objects file
|
||||||
|
[0.119s][info][class,load] java.util.Collections$UnmodifiableCollection source: shared objects file
|
||||||
|
[0.119s][info][class,load] java.util.Collections$UnmodifiableSet source: shared objects file
|
||||||
|
[0.120s][info][class,load] java.util.Collections$UnmodifiableCollection$1 source: shared objects file
|
||||||
|
[0.121s][info][class,load] jdk.internal.module.ServicesCatalog$ServiceProvider source: shared objects file
|
||||||
|
[0.121s][info][class,load] java.util.concurrent.CopyOnWriteArrayList source: shared objects file
|
||||||
|
[0.122s][info][class,load] java.util.HashMap$KeySet source: shared objects file
|
||||||
|
[0.122s][info][class,load] java.util.HashMap$HashIterator source: shared objects file
|
||||||
|
[0.122s][info][class,load] java.util.HashMap$KeyIterator source: shared objects file
|
||||||
|
[0.122s][info][class,load] java.lang.ModuleLayer$Controller source: shared objects file
|
||||||
|
[0.122s][info][class,load] jdk.internal.module.IllegalAccessLogger$Mode source: shared objects file
|
||||||
|
[0.123s][info][class,load] jdk.internal.module.IllegalAccessLogger$Builder source: shared objects file
|
||||||
|
[0.123s][info][class,load] java.util.HashMap$Values source: shared objects file
|
||||||
|
[0.123s][info][class,load] java.util.HashMap$ValueIterator source: shared objects file
|
||||||
|
[0.123s][info][class,load] jdk.internal.module.ModuleBootstrap$2 source: shared objects file
|
||||||
|
[0.124s][info][class,load] java.util.HashMap$EntrySet source: shared objects file
|
||||||
|
[0.124s][info][class,load] java.util.HashMap$EntryIterator source: shared objects file
|
||||||
|
[0.125s][info][class,load] jdk.internal.module.IllegalAccessLogger source: shared objects file
|
||||||
|
[0.126s][info][class,load] sun.launcher.LauncherHelper source: shared objects file
|
||||||
|
[0.126s][info][class,load] sun.net.util.URLUtil source: shared objects file
|
||||||
|
[0.126s][info][class,load] java.util.Locale source: shared objects file
|
||||||
|
[0.127s][info][class,load] sun.util.locale.LocaleObjectCache source: shared objects file
|
||||||
|
[0.127s][info][class,load] java.util.Locale$Cache source: shared objects file
|
||||||
|
[0.127s][info][class,load] sun.util.locale.BaseLocale source: shared objects file
|
||||||
|
[0.128s][info][class,load] sun.util.locale.BaseLocale$Cache source: shared objects file
|
||||||
|
[0.129s][info][class,load] sun.util.locale.BaseLocale$Key source: shared objects file
|
||||||
|
[0.129s][info][class,load] sun.util.locale.LocaleObjectCache$CacheEntry source: shared objects file
|
||||||
|
[0.129s][info][class,load] java.util.Locale$LocaleKey source: shared objects file
|
||||||
|
[0.129s][info][class,load] sun.util.locale.LocaleUtils source: shared objects file
|
||||||
|
[0.130s][info][class,load] sun.util.locale.InternalLocaleBuilder source: shared objects file
|
||||||
|
[0.130s][info][class,load] sun.util.locale.InternalLocaleBuilder$CaseInsensitiveChar source: shared objects file
|
||||||
|
[0.130s][info][class,load] java.security.PrivilegedExceptionAction source: shared objects file
|
||||||
|
[0.130s][info][class,load] jdk.internal.loader.URLClassPath$3 source: shared objects file
|
||||||
|
[0.130s][info][class,load] jdk.internal.loader.URLClassPath$Loader source: shared objects file
|
||||||
|
[0.131s][info][class,load] jdk.internal.loader.URLClassPath$FileLoader source: shared objects file
|
||||||
|
[0.131s][info][class,load] jdk.internal.loader.Resource source: shared objects file
|
||||||
|
[0.132s][info][class,load] jdk.internal.loader.URLClassPath$FileLoader$1 source: shared objects file
|
||||||
|
[0.132s][info][class,load] java.lang.NamedPackage source: shared objects file
|
||||||
|
[0.132s][info][class,load] java.lang.Package source: shared objects file
|
||||||
|
[0.132s][info][class,load] java.lang.Package$VersionInfo source: shared objects file
|
||||||
|
[0.132s][info][class,load] java.io.FileInputStream$AltFinalizer source: shared objects file
|
||||||
|
[0.132s][info][class,load] java.lang.ref.Cleaner$Cleanable source: shared objects file
|
||||||
|
[0.133s][info][class,load] jdk.internal.ref.PhantomCleanable source: shared objects file
|
||||||
|
[0.133s][info][class,load] java.io.FileDescriptor$FDCleanup source: shared objects file
|
||||||
|
[0.133s][info][class,load] jdk.internal.ref.CleanerFactory source: shared objects file
|
||||||
|
[0.133s][info][class,load] java.util.concurrent.ThreadFactory source: shared objects file
|
||||||
|
[0.133s][info][class,load] jdk.internal.ref.CleanerFactory$1 source: shared objects file
|
||||||
|
[0.133s][info][class,load] java.lang.ref.Cleaner source: shared objects file
|
||||||
|
[0.133s][info][class,load] java.lang.ref.Cleaner$1 source: shared objects file
|
||||||
|
[0.133s][info][class,load] jdk.internal.ref.CleanerImpl source: shared objects file
|
||||||
|
[0.133s][info][class,load] jdk.internal.ref.CleanerImpl$PhantomCleanableRef source: shared objects file
|
||||||
|
[0.134s][info][class,load] jdk.internal.ref.WeakCleanable source: shared objects file
|
||||||
|
[0.134s][info][class,load] jdk.internal.ref.CleanerImpl$WeakCleanableRef source: shared objects file
|
||||||
|
[0.134s][info][class,load] jdk.internal.ref.SoftCleanable source: shared objects file
|
||||||
|
[0.134s][info][class,load] jdk.internal.ref.CleanerImpl$SoftCleanableRef source: shared objects file
|
||||||
|
[0.134s][info][class,load] jdk.internal.ref.CleanerImpl$CleanerCleanable source: shared objects file
|
||||||
|
[0.134s][info][class,load] jdk.internal.ref.CleanerFactory$1$1 source: shared objects file
|
||||||
|
[0.134s][info][class,load] jdk.internal.misc.InnocuousThread source: shared objects file
|
||||||
|
[0.135s][info][class,load] jdk.internal.misc.InnocuousThread$3 source: shared objects file
|
||||||
|
[0.135s][info][class,load] jdk.internal.misc.InnocuousThread$2 source: shared objects file
|
||||||
|
[0.135s][info][class,load] sun.nio.ByteBuffered source: shared objects file
|
||||||
|
[0.135s][info][class,load] java.io.FileInputStream$1 source: shared objects file
|
||||||
|
[0.136s][info][class,load] java.security.SecureClassLoader$CodeSourceKey source: shared objects file
|
||||||
|
[0.136s][info][class,load] java.security.SecureClassLoader$1 source: shared objects file
|
||||||
|
[0.136s][info][class,load] java.util.concurrent.ConcurrentHashMap$ReservationNode source: shared objects file
|
||||||
|
[0.136s][info][class,load] java.security.PermissionCollection source: shared objects file
|
||||||
|
[0.136s][info][class,load] java.security.Permissions source: shared objects file
|
||||||
|
[0.136s][info][class,load] java.net.URLConnection source: shared objects file
|
||||||
|
[0.137s][info][class,load] sun.net.www.URLConnection source: shared objects file
|
||||||
|
[0.137s][info][class,load] sun.net.www.protocol.file.FileURLConnection source: shared objects file
|
||||||
|
[0.137s][info][class,load] sun.net.www.MessageHeader source: shared objects file
|
||||||
|
[0.137s][info][class,load] java.io.FilePermission source: shared objects file
|
||||||
|
[0.137s][info][class,load] sun.nio.fs.DefaultFileSystemProvider source: shared objects file
|
||||||
|
[0.138s][info][class,load] java.nio.file.spi.FileSystemProvider source: shared objects file
|
||||||
|
[0.138s][info][class,load] sun.nio.fs.AbstractFileSystemProvider source: shared objects file
|
||||||
|
[0.138s][info][class,load] sun.nio.fs.WindowsFileSystemProvider source: shared objects file
|
||||||
|
[0.138s][info][class,load] java.nio.file.FileSystem source: shared objects file
|
||||||
|
[0.138s][info][class,load] sun.nio.fs.WindowsFileSystem source: shared objects file
|
||||||
|
[0.138s][info][class,load] java.util.Arrays$ArrayList source: shared objects file
|
||||||
|
[0.138s][info][class,load] java.util.Arrays$ArrayItr source: shared objects file
|
||||||
|
[0.138s][info][class,load] sun.nio.fs.WindowsPathParser source: shared objects file
|
||||||
|
[0.139s][info][class,load] sun.nio.fs.WindowsPathType source: shared objects file
|
||||||
|
[0.139s][info][class,load] sun.nio.fs.WindowsPathParser$Result source: shared objects file
|
||||||
|
[0.139s][info][class,load] java.net.URI$Parser source: shared objects file
|
||||||
|
[0.139s][info][class,load] java.nio.file.Watchable source: shared objects file
|
||||||
|
[0.139s][info][class,load] java.nio.file.Path source: shared objects file
|
||||||
|
[0.139s][info][class,load] sun.nio.fs.WindowsPath source: shared objects file
|
||||||
|
[0.140s][info][class,load] jdk.internal.misc.JavaIOFilePermissionAccess source: shared objects file
|
||||||
|
[0.140s][info][class,load] java.io.FilePermission$1 source: shared objects file
|
||||||
|
[0.140s][info][class,load] sun.security.util.FilePermCompat source: shared objects file
|
||||||
|
[0.140s][info][class,load] java.security.Permissions$1 source: shared objects file
|
||||||
|
[0.140s][info][class,load] java.io.FilePermissionCollection source: shared objects file
|
||||||
|
[0.141s][info][class,load] java.util.function.BiFunction source: shared objects file
|
||||||
|
[0.141s][info][class,load] java.io.FilePermissionCollection$1 source: shared objects file
|
||||||
|
[0.141s][info][class,load] java.security.AllPermission source: shared objects file
|
||||||
|
[0.141s][info][class,load] java.security.UnresolvedPermission source: shared objects file
|
||||||
|
[0.141s][info][class,load] java.security.BasicPermissionCollection source: shared objects file
|
||||||
|
[0.141s][info][class,load] java.security.SecureClassLoader$DebugHolder source: shared objects file
|
||||||
|
[0.141s][info][class,load] sun.security.util.Debug source: shared objects file
|
||||||
|
[0.142s][info][class,load] top.yexuejc.demo.java10.MyApp source: file:/F:/coding/java-learning/demo2/java10-example/target/classes/
|
||||||
|
[0.142s][info][class,load] java.lang.PublicMethods$MethodList source: shared objects file
|
||||||
|
[0.143s][info][class,load] java.lang.PublicMethods$Key source: shared objects file
|
||||||
|
[0.143s][info][class,load] java.lang.Void source: shared objects file
|
||||||
|
Hello from MyApp with AppCDS!
|
||||||
|
[0.143s][info][class,load] java.lang.invoke.StringConcatFactory source: shared objects file
|
||||||
|
[0.143s][info][class,load] java.lang.invoke.MethodHandles$Lookup source: shared objects file
|
||||||
|
[0.144s][info][class,load] java.lang.invoke.MethodType$ConcurrentWeakInternSet source: shared objects file
|
||||||
|
[0.144s][info][class,load] java.lang.invoke.MethodType$ConcurrentWeakInternSet$WeakEntry source: shared objects file
|
||||||
|
[0.144s][info][class,load] java.lang.invoke.MethodTypeForm source: shared objects file
|
||||||
|
[0.144s][info][class,load] java.lang.invoke.MethodHandles source: shared objects file
|
||||||
|
[0.145s][info][class,load] java.lang.invoke.MemberName$Factory source: shared objects file
|
||||||
|
[0.145s][info][class,load] sun.invoke.util.VerifyAccess source: shared objects file
|
||||||
|
[0.145s][info][class,load] sun.invoke.util.Wrapper source: shared objects file
|
||||||
|
[0.145s][info][class,load] sun.invoke.util.Wrapper$Format source: shared objects file
|
||||||
|
[0.146s][info][class,load] java.lang.invoke.LambdaForm$NamedFunction source: shared objects file
|
||||||
|
[0.146s][info][class,load] java.lang.invoke.DirectMethodHandle$Holder source: shared objects file
|
||||||
|
[0.146s][info][class,load] sun.invoke.util.ValueConversions source: shared objects file
|
||||||
|
[0.146s][info][class,load] java.lang.invoke.MethodHandleImpl source: shared objects file
|
||||||
|
[0.146s][info][class,load] java.lang.invoke.Invokers source: shared objects file
|
||||||
|
[0.147s][info][class,load] java.lang.invoke.StringConcatFactory$Strategy source: shared objects file
|
||||||
|
[0.147s][info][class,load] java.lang.invoke.LambdaForm$Kind source: shared objects file
|
||||||
|
[0.147s][info][class,load] java.lang.NoSuchMethodException source: shared objects file
|
||||||
|
[0.147s][info][class,load] java.lang.invoke.LambdaForm$BasicType source: shared objects file
|
||||||
|
[0.148s][info][class,load] java.lang.invoke.LambdaForm$Name source: shared objects file
|
||||||
|
[0.148s][info][class,load] java.lang.invoke.LambdaForm$Holder source: shared objects file
|
||||||
|
[0.148s][info][class,load] java.lang.invoke.MethodHandleImpl$Intrinsic source: shared objects file
|
||||||
|
[0.148s][info][class,load] java.lang.invoke.InvokerBytecodeGenerator source: shared objects file
|
||||||
|
[0.149s][info][class,load] java.lang.invoke.InvokerBytecodeGenerator$2 source: shared objects file
|
||||||
|
[0.149s][info][class,load] jdk.internal.misc.JavaLangInvokeAccess source: shared objects file
|
||||||
|
[0.149s][info][class,load] java.lang.invoke.MethodHandleImpl$1 source: shared objects file
|
||||||
|
[0.149s][info][class,load] java.lang.invoke.DelegatingMethodHandle source: shared objects file
|
||||||
|
[0.149s][info][class,load] java.lang.invoke.MethodHandleImpl$AsVarargsCollector source: shared objects file
|
||||||
|
[0.150s][info][class,load] java.lang.invoke.DelegatingMethodHandle$Holder source: shared objects file
|
||||||
|
[0.150s][info][class,load] java.lang.invoke.BoundMethodHandle source: shared objects file
|
||||||
|
[0.150s][info][class,load] java.lang.invoke.SimpleMethodHandle source: shared objects file
|
||||||
|
[0.150s][info][class,load] java.lang.invoke.Invokers$Holder source: shared objects file
|
||||||
|
[0.150s][info][class,load] java.lang.invoke.ClassSpecializer source: shared objects file
|
||||||
|
[0.151s][info][class,load] java.lang.invoke.BoundMethodHandle$Specializer source: shared objects file
|
||||||
|
[0.151s][info][class,load] java.lang.invoke.ClassSpecializer$SpeciesData source: shared objects file
|
||||||
|
[0.151s][info][class,load] java.lang.invoke.BoundMethodHandle$SpeciesData source: shared objects file
|
||||||
|
[0.151s][info][class,load] java.lang.invoke.ClassSpecializer$Factory source: shared objects file
|
||||||
|
[0.151s][info][class,load] java.lang.invoke.BoundMethodHandle$Specializer$Factory source: shared objects file
|
||||||
|
[0.151s][info][class,load] java.lang.invoke.ClassSpecializer$1 source: shared objects file
|
||||||
|
[0.152s][info][class,load] java.lang.NoSuchFieldException source: shared objects file
|
||||||
|
[0.152s][info][class,load] java.lang.invoke.BoundMethodHandle$Species_L source: shared objects file
|
||||||
|
[0.152s][info][class,load] sun.invoke.util.VerifyType source: shared objects file
|
||||||
|
[0.153s][info][class,load] sun.invoke.empty.Empty source: shared objects file
|
||||||
|
[0.153s][info][class,load] java.lang.invoke.DirectMethodHandle$1 source: shared objects file
|
||||||
|
[0.153s][info][class,load] java.lang.invoke.DirectMethodHandle$Accessor source: shared objects file
|
||||||
|
[0.153s][info][class,load] java.lang.invoke.MethodHandleImpl$IntrinsicMethodHandle source: shared objects file
|
||||||
|
[0.154s][info][class,load] java.lang.invoke.LambdaFormEditor source: shared objects file
|
||||||
|
[0.154s][info][class,load] java.lang.invoke.LambdaFormEditor$Transform source: shared objects file
|
||||||
|
[0.154s][info][class,load] java.lang.invoke.LambdaFormBuffer source: shared objects file
|
||||||
|
[0.154s][info][class,load] jdk.internal.org.objectweb.asm.ClassVisitor source: shared objects file
|
||||||
|
[0.154s][info][class,load] jdk.internal.org.objectweb.asm.ClassWriter source: shared objects file
|
||||||
|
[0.155s][info][class,load] jdk.internal.org.objectweb.asm.ByteVector source: shared objects file
|
||||||
|
[0.155s][info][class,load] jdk.internal.org.objectweb.asm.Item source: shared objects file
|
||||||
|
[0.155s][info][class,load] sun.invoke.util.BytecodeDescriptor source: shared objects file
|
||||||
|
[0.155s][info][class,load] jdk.internal.org.objectweb.asm.MethodVisitor source: shared objects file
|
||||||
|
[0.155s][info][class,load] jdk.internal.org.objectweb.asm.MethodWriter source: shared objects file
|
||||||
|
[0.155s][info][class,load] jdk.internal.org.objectweb.asm.Type source: shared objects file
|
||||||
|
[0.155s][info][class,load] jdk.internal.org.objectweb.asm.Label source: shared objects file
|
||||||
|
[0.156s][info][class,load] jdk.internal.org.objectweb.asm.Frame source: shared objects file
|
||||||
|
[0.156s][info][class,load] jdk.internal.org.objectweb.asm.AnnotationVisitor source: shared objects file
|
||||||
|
[0.156s][info][class,load] jdk.internal.org.objectweb.asm.AnnotationWriter source: shared objects file
|
||||||
|
[0.157s][info][class,load] java.lang.invoke.InvokerBytecodeGenerator$CpPatch source: shared objects file
|
||||||
|
[0.157s][info][class,load] sun.reflect.misc.ReflectUtil source: shared objects file
|
||||||
|
[0.157s][info][class,load] java.lang.invoke.LambdaForm$MH/1421795058 source: java.lang.invoke.LambdaForm
|
||||||
|
[0.158s][info][class,load] java.lang.invoke.BoundMethodHandle$Species_LL source: shared objects file
|
||||||
|
[0.159s][info][class,load] java.lang.invoke.LambdaForm$MH/41359092 source: java.lang.invoke.LambdaForm
|
||||||
|
[0.160s][info][class,load] java.lang.invoke.LambdaForm$MH/149928006 source: java.lang.invoke.LambdaForm
|
||||||
|
[0.160s][info][class,load] java.lang.invoke.StringConcatFactory$1 source: shared objects file
|
||||||
|
[0.160s][info][class,load] java.lang.invoke.StringConcatFactory$Mode source: shared objects file
|
||||||
|
[0.160s][info][class,load] java.lang.invoke.StringConcatFactory$Recipe source: shared objects file
|
||||||
|
[0.161s][info][class,load] java.lang.invoke.StringConcatFactory$RecipeElement source: shared objects file
|
||||||
|
[0.161s][info][class,load] java.lang.invoke.StringConcatFactory$MethodHandleInlineCopyStrategy source: shared objects file
|
||||||
|
[0.161s][info][class,load] java.lang.invoke.StringConcatFactory$MethodHandleInlineCopyStrategy$1 source: shared objects file
|
||||||
|
[0.161s][info][class,load] java.lang.invoke.StringConcatFactory$MethodHandleInlineCopyStrategy$2 source: shared objects file
|
||||||
|
[0.162s][info][class,load] java.lang.invoke.StringConcatFactory$MethodHandleInlineCopyStrategy$3 source: shared objects file
|
||||||
|
[0.162s][info][class,load] java.lang.StringConcatHelper source: shared objects file
|
||||||
|
[0.162s][info][class,load] java.lang.invoke.StringConcatFactory$Stringifiers source: shared objects file
|
||||||
|
[0.163s][info][class,load] java.lang.ClassValue source: shared objects file
|
||||||
|
[0.163s][info][class,load] java.lang.invoke.StringConcatFactory$Stringifiers$StringifierMost source: shared objects file
|
||||||
|
[0.163s][info][class,load] java.lang.ClassValue$Entry source: shared objects file
|
||||||
|
[0.163s][info][class,load] java.lang.ClassValue$Identity source: shared objects file
|
||||||
|
[0.164s][info][class,load] java.lang.ClassValue$Version source: shared objects file
|
||||||
|
[0.164s][info][class,load] java.lang.invoke.StringConcatFactory$Stringifiers$StringifierAny source: shared objects file
|
||||||
|
[0.164s][info][class,load] java.lang.ClassValue$ClassValueMap source: shared objects file
|
||||||
|
[0.165s][info][class,load] java.lang.invoke.LambdaForm$MH/1160460865 source: java.lang.invoke.LambdaForm
|
||||||
|
[0.165s][info][class,load] java.lang.invoke.LambdaForm$MH/1247233941 source: java.lang.invoke.LambdaForm
|
||||||
|
[0.166s][info][class,load] java.lang.invoke.LambdaForm$MH/258952499 source: java.lang.invoke.LambdaForm
|
||||||
|
[0.167s][info][class,load] java.lang.invoke.LambdaForm$MH/603742814 source: java.lang.invoke.LambdaForm
|
||||||
|
[0.168s][info][class,load] java.lang.invoke.LambdaForm$MH/1067040082 source: java.lang.invoke.LambdaForm
|
||||||
|
[0.168s][info][class,load] java.lang.invoke.BoundMethodHandle$Species_LLL source: shared objects file
|
||||||
|
[0.169s][info][class,load] java.lang.invoke.LambdaForm$MH/980546781 source: java.lang.invoke.LambdaForm
|
||||||
|
[0.170s][info][class,load] java.lang.invoke.BoundMethodHandle$Species_LLLL source: shared objects file
|
||||||
|
[0.170s][info][class,load] java.lang.invoke.LambdaForm$MH/140435067 source: java.lang.invoke.LambdaForm
|
||||||
|
[0.172s][info][class,load] java.lang.invoke.LambdaForm$MH/1450495309 source: java.lang.invoke.LambdaForm
|
||||||
|
[0.172s][info][class,load] java.lang.invoke.BoundMethodHandle$Species_LLLLL source: shared objects file
|
||||||
|
[0.173s][info][class,load] java.lang.invoke.LambdaForm$MH/1706377736 source: java.lang.invoke.LambdaForm
|
||||||
|
[0.173s][info][class,load] java.lang.invoke.BoundMethodHandle$Species_LLLLLL source: shared objects file
|
||||||
|
[0.175s][info][class,load] java.lang.invoke.LambdaForm$MH/1804094807 source: java.lang.invoke.LambdaForm
|
||||||
|
[0.175s][info][class,load] java.lang.Byte$ByteCache source: shared objects file
|
||||||
|
[0.176s][info][class,load] java.lang.invoke.MethodHandles$1 source: shared objects file
|
||||||
|
[0.176s][info][class,load] java.lang.invoke.BoundMethodHandle$Species_LLLLLLI source: shared objects file
|
||||||
|
[0.177s][info][class,load] java.lang.invoke.LambdaForm$MH/2001049719 source: java.lang.invoke.LambdaForm
|
||||||
|
[0.178s][info][class,load] sun.invoke.util.ValueConversions$WrapperCache source: shared objects file
|
||||||
|
[0.178s][info][class,load] java.lang.invoke.BoundMethodHandle$Species_LLLLLLII source: shared objects file
|
||||||
|
[0.179s][info][class,load] java.lang.invoke.LambdaForm$MH/1927950199 source: java.lang.invoke.LambdaForm
|
||||||
|
[0.180s][info][class,load] java.lang.invoke.LambdaForm$MH/868693306 source: java.lang.invoke.LambdaForm
|
||||||
|
List size: 1
|
||||||
|
[0.180s][info][class,load] java.lang.Shutdown source: shared objects file
|
||||||
|
[0.181s][info][class,load] java.lang.Shutdown$Lock source: shared objects file
|
||||||
|
```
|
BIN
demo2/java10-example/doc/img.png
Normal file
BIN
demo2/java10-example/doc/img.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 13 KiB |
BIN
demo2/java10-example/doc/img_1.png
Normal file
BIN
demo2/java10-example/doc/img_1.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 7.4 KiB |
BIN
demo2/java10-example/doc/img_2.png
Normal file
BIN
demo2/java10-example/doc/img_2.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 6.1 KiB |
@ -1,27 +0,0 @@
|
|||||||
import java.util.*;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Java 10 新特性示例:应用类数据共享 (Application Class-Data Sharing)
|
|
||||||
*
|
|
||||||
* AppCDS允许将应用程序类加载到共享存档中,以便在多个JVM进程间共享,
|
|
||||||
* 从而减少启动时间和内存占用。
|
|
||||||
*
|
|
||||||
* 使用方法:
|
|
||||||
* 1. 创建类列表: java -Xshare:off -XX:DumpLoadedClassList=app.classlist com.example.MyApp
|
|
||||||
* 2. 创建共享存档: java -Xshare:dump -XX:SharedClassListFile=app.classlist -XX:SharedArchiveFile=app.jsa
|
|
||||||
* 3. 使用共享存档: java -Xshare:on -XX:SharedArchiveFile=app.jsa com.example.MyApp
|
|
||||||
*/
|
|
||||||
public class AppCDSExample {
|
|
||||||
public static void runExample() {
|
|
||||||
System.out.println("=== Java 10 应用类数据共享示例 ===");
|
|
||||||
System.out.println("应用类数据共享(AppCDS)是Java 10的重要性能特性");
|
|
||||||
System.out.println("它可以显著提高JVM启动速度并减少内存占用");
|
|
||||||
System.out.println("特别适用于需要快速启动和运行多个JVM实例的场景");
|
|
||||||
System.out.println("");
|
|
||||||
System.out.println("使用步骤:");
|
|
||||||
System.out.println("1. 创建类列表: java -Xshare:off -XX:DumpLoadedClassList=app.classlist MyApp");
|
|
||||||
System.out.println("2. 创建共享存档: java -Xshare:dump -XX:SharedClassListFile=app.classlist -XX:SharedArchiveFile=app.jsa");
|
|
||||||
System.out.println("3. 使用共享存档: java -Xshare:on -XX:SharedArchiveFile=app.jsa MyApp");
|
|
||||||
System.out.println("\n=== 应用类数据共享示例结束 ===\n");
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,3 +1,6 @@
|
|||||||
|
import java.util.NoSuchElementException;
|
||||||
|
import java.util.Optional;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Java 10 新特性主程序入口
|
* Java 10 新特性主程序入口
|
||||||
* 演示Java 10的主要新特性
|
* 演示Java 10的主要新特性
|
||||||
@ -11,5 +14,15 @@ public class Main {
|
|||||||
|
|
||||||
// 运行局部变量类型推断示例
|
// 运行局部变量类型推断示例
|
||||||
VarExample.runExample();
|
VarExample.runExample();
|
||||||
|
|
||||||
|
// Optional.orElseThrow() 简化调用
|
||||||
|
Optional<String> optional = Optional.empty();
|
||||||
|
try {
|
||||||
|
// Java 10之前: optional.orElseThrow(NoSuchElementException::new)
|
||||||
|
// Java 10之后: optional.orElseThrow() - 无需显式指定异常构造器
|
||||||
|
String result = optional.orElseThrow(); // 简化版本
|
||||||
|
} catch (NoSuchElementException e) {
|
||||||
|
System.out.println("Optional为空,抛出异常: " + e.getMessage());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -1,42 +0,0 @@
|
|||||||
import java.util.*;
|
|
||||||
import java.util.stream.*;
|
|
||||||
import java.util.concurrent.*;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Java 10 其他新特性示例
|
|
||||||
*
|
|
||||||
* 包括API增强和其他重要改进
|
|
||||||
*/
|
|
||||||
public class OtherFeaturesExample {
|
|
||||||
public static void runExample() {
|
|
||||||
System.out.println("=== Java 10 其他新特性示例 ===");
|
|
||||||
|
|
||||||
// Optional.orElseThrow() 简化调用
|
|
||||||
Optional<String> optional = Optional.empty();
|
|
||||||
try {
|
|
||||||
// Java 10之前: optional.orElseThrow(NoSuchElementException::new)
|
|
||||||
// Java 10之后: optional.orElseThrow() - 无需显式指定异常构造器
|
|
||||||
String result = optional.orElseThrow(); // 简化版本
|
|
||||||
} catch (NoSuchElementException e) {
|
|
||||||
System.out.println("Optional为空,抛出异常: " + e.getMessage());
|
|
||||||
}
|
|
||||||
|
|
||||||
// Collection.toArray() 新重载方法
|
|
||||||
List<String> stringList = Arrays.asList("Java", "10", "新特性");
|
|
||||||
// Java 10新增的重载方法,可以直接指定数组类型
|
|
||||||
// String[] stringArray = stringList.toArray(stringList.toArray(new String[0]));
|
|
||||||
String[] stringArray = stringList.toArray(String[]::new);
|
|
||||||
System.out.println("Collection.toArray() 新方法结果: " + Arrays.toString(stringArray));
|
|
||||||
|
|
||||||
// Stream API 增强 - Collectors.teeing()
|
|
||||||
// 注意:teeing是在Java 12中引入的,这里演示其他collector的使用
|
|
||||||
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
|
|
||||||
|
|
||||||
// 使用新的API改进
|
|
||||||
var average = numbers.stream()
|
|
||||||
.collect(Collectors.averagingInt(Integer::intValue));
|
|
||||||
System.out.println("数字平均值: " + average);
|
|
||||||
|
|
||||||
System.out.println("\n=== 其他新特性示例结束 ===\n");
|
|
||||||
}
|
|
||||||
}
|
|
@ -0,0 +1,14 @@
|
|||||||
|
package top.yexuejc.demo.java10;
|
||||||
|
/**
|
||||||
|
* @author maxiaofeng
|
||||||
|
* @date 2025/8/13 20:40
|
||||||
|
*/
|
||||||
|
public class MyApp {
|
||||||
|
public static void main(String[] args) {
|
||||||
|
System.out.println("Hello from MyApp with AppCDS!");
|
||||||
|
// 使用一些常用的类来演示类共享
|
||||||
|
java.util.ArrayList<String> list = new java.util.ArrayList<>();
|
||||||
|
list.add("Example");
|
||||||
|
System.out.println("List size: " + list.size());
|
||||||
|
}
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user