使用Kotlin 1.1.5 的REPL 来简单分析一下Java 9 中的$ jmod list java.base.jmod

简介: $ jmod list java.base.jmod命令行列出了 模块 java.base.jmod 中所有文件(.class文件, .dat, .jar, .
$ jmod list java.base.jmod

命令行列出了 模块 java.base.jmod 中所有文件(.class文件, .dat, .jar, .cfg, .dylib 等 )共 5761个文件:

/Library/Java/JavaVirtualMachines/jdk-9.jdk/Contents/Home/jmods$ jmod list java.base.jmod|wc -l
    5761

我们来看下都有哪些包里面的类:

我们把 java.base.jmod中的所有文件list放到文件中:

val lines = File("/Users/jack/java/java.base.jmods.txt").readLines()
val set = HashSet<String>()
lines.forEach{ 
    set.add(it.substring(0,it.lastIndexOf("/")) ) 
}
>>> set.forEach{println(it)}

我们可以看到java.base.jmod中都有哪些核心API的包:


classes/java/util/stream
classes/jdk/internal/vm/annotation
classes/jdk/internal/org/objectweb/asm/tree/analysis
bin
classes/java/security/cert
classes/sun/nio
conf
classes/sun/net/sdp
classes/META-INF/services
classes/sun/reflect/generics/repository
classes/java/text
classes/sun/reflect/generics/parser
classes/sun/text/spi
classes/sun/usagetracker
lib/jli
classes/sun/net/www/protocol/http
classes/javax/crypto/interfaces
classes/jdk/internal
classes/jdk/internal/loader
classes/sun/net/dns
classes/javax/security/auth
classes/sun/security/provider
classes/java/time/format
classes/sun/security/internal/interfaces
classes/sun/security/provider/certpath/ssl
classes/sun/launcher
classes/jdk/internal/vm/cds/resources
classes/sun/security/internal/spec
classes/sun/net/ext
classes/sun/util/resources
classes/java/lang
classes/sun/net/www/content/text
classes/sun/security/tools
classes/jdk/internal/reflect
classes/java/util/function
classes/sun/security/util
classes/java/util/spi
classes/sun/reflect/generics/tree
classes/jdk/internal/misc
classes/jdk/internal/perf
classes/sun/util/cldr
classes/jdk/internal/org/objectweb/asm/commons
classes/jdk/internal/org/xml/sax
classes/jdk/internal/util/xml/impl
classes/sun/invoke/util
classes/sun/util/resources/cldr
classes/sun/reflect/generics/factory
classes/com/sun/net/ssl/internal/www/protocol/https
classes/jdk/internal/org/objectweb/asm/tree
classes/java/net
classes/sun/security/rsa
classes/sun/launcher/resources
classes/sun/net/www
classes/java/util/concurrent/atomic
classes/java/nio/channels
classes/sun/nio/fs
conf/security/policy
classes/sun/reflect/generics/reflectiveObjects
classes/sun/util/calendar
classes/java/security/acl
classes/javax/net/ssl
classes/jdk/internal/util
classes/sun/text/resources
classes/jdk/internal/math
include
classes/java/util
classes/java/lang/reflect
classes/sun/reflect/misc
classes/java/io
include/darwin
classes/sun/reflect/annotation
classes/java/math
classes/java/nio/channels/spi
classes/sun/net/ftp
classes/java/lang/annotation
classes/sun/util/locale/provider
classes/java/time/temporal
classes/sun/text/bidi
classes/sun/util/spi
classes/sun/security/jca
lib/security
classes/java/security/spec
classes/sun/net/www/http
classes/jdk/internal/org/objectweb/asm
classes/sun/net/www/protocol/jar
classes/sun/net/util
classes/sun/text/normalizer
classes/java/net/spi
classes/apple/security
classes/java/lang/module
classes/jdk/internal/ref
classes/sun/text/resources/cldr
classes/jdk/internal/org/objectweb/asm/signature
classes/sun/security/pkcs
classes/jdk/internal/module
classes/jdk/internal/vm
lib
classes/sun/net/ftp/impl
lib/server
classes/sun/net/www/protocol/jrt
classes/sun/net/www/protocol/https
classes/java/lang/invoke
classes/jdk/internal/jrtfs
classes/java/time/zone
classes/sun/text
classes/sun/net
classes/java/nio/charset/spi
conf/security
legal
classes/java/security/interfaces
classes/sun/security/provider/certpath
classes/javax/security/cert
conf/security/policy/limited
classes/java/util/regex
classes/sun/net/spi
classes/java/nio/charset
classes/java/nio/file/attribute
classes/java/util/concurrent
classes/javax/security/auth/x500
classes/java/lang/ref
classes/sun/net/smtp
classes/jdk/internal/jmod
classes/javax/crypto
classes/com/sun/java/util/jar/pack
classes/java/time
classes/jdk/internal/jimage
classes/sun/net/www/protocol/http/ntlm
classes/sun/security/ssl
classes/sun/security/x509
classes/sun/util/logging
classes/sun/net/idn
classes/sun/net/www/protocol/ftp
classes/java/util/zip
classes/sun/reflect/generics/visitor
classes
classes/java/nio
classes/com/sun/net/ssl
classes/java/util/jar
classes/javax/security/auth/spi
classes/sun/net/www/protocol/jmod
classes/sun/security/pkcs12
classes/java/text/spi
classes/sun/security/pkcs10
classes/sun/security/timestamp
classes/javax/net
classes/javax/security/auth/callback
classes/java/nio/file/spi
classes/javax/crypto/spec
classes/com/sun/net/ssl/internal/ssl
classes/com/sun/crypto/provider
classes/jdk/internal/logger
classes/sun/util/locale
classes/java/nio/file
classes/jdk/internal/jimage/decompressor
classes/sun/invoke
classes/sun/security/validator
classes/com/sun/security/cert/internal/x509
classes/jdk/internal/org/objectweb/asm/util
classes/sun/reflect/generics/scope
classes/sun/invoke/empty
classes/sun/net/www/protocol/mailto
classes/com/sun/security/ntlm
classes/jdk/internal/util/xml
classes/sun/nio/ch
classes/jdk/internal/util/jar
classes/jdk/internal/org/xml/sax/helpers
classes/sun/net/www/protocol/file
classes/java/time/chrono
classes/javax/security/auth/login
classes/sun/nio/cs
classes/sun/util
conf/security/policy/unlimited
classes/sun/security/tools/keytool
classes/sun/security/action
classes/java/security
classes/java/util/concurrent/locks


KotlinChina编程社区 微博

《Kotlin极简教程》正式上架:

点击这里 > 去京东商城购买阅读

点击这里 > 去天猫商城购买阅读

非常感谢 if (boy) { 帅气英俊潇洒} else { 魔鬼身材天使脸蛋美丽动人女神气质} 的您。大家请多支持!!!您的支持,是我源源不断的写作的动力! 如果您有任何问题,欢迎随时与我交流~


相关文章
|
8月前
|
Java Go 开发工具
【Java】(9)抽象类、接口、内部的运用与作用分析,枚举类型的使用
抽象类必须使用abstract修饰符来修饰,抽象方法也必须使用abstract修饰符来修饰,抽象方法不能有方法体。抽象类不能被实例化,无法使用new关键字来调用抽象类的构造器创建抽象类的实例。抽象类可以包含成员变量、方法(普通方法和抽象方法都可以)、构造器、初始化块、内部类(接 口、枚举)5种成分。抽象类的构造器不能用于创建实例,主要是用于被其子类调用。抽象类中不一定包含抽象方法,但是有抽象方法的类必定是抽象类abstract static不能同时修饰一个方法。
348 1
|
8月前
|
存储 Java Go
【Java】(3)8种基本数据类型的分析、数据类型转换规则、转义字符的列举
牢记类型转换规则在脑海中将编译和运行两个阶段分开,这是两个不同的阶段,不要弄混!
376 2
|
9月前
|
数据采集 存储 弹性计算
高并发Java爬虫的瓶颈分析与动态线程优化方案
高并发Java爬虫的瓶颈分析与动态线程优化方案
|
10月前
|
安全 Java 编译器
new出来的对象,不一定在堆上?聊聊Java虚拟机的优化技术:逃逸分析
逃逸分析是一种静态程序分析技术,用于判断对象的可见性与生命周期。它帮助即时编译器优化内存使用、降低同步开销。根据对象是否逃逸出方法或线程,分析结果分为未逃逸、方法逃逸和线程逃逸三种。基于分析结果,编译器可进行同步锁消除、标量替换和栈上分配等优化,从而提升程序性能。尽管逃逸分析计算复杂度较高,但其在热点代码中的应用为Java虚拟机带来了显著的优化效果。
327 4
|
10月前
|
机器学习/深度学习 安全 Java
Java 大视界 -- Java 大数据在智能金融反洗钱监测与交易异常分析中的应用(224)
本文探讨 Java 大数据在智能金融反洗钱监测与交易异常分析中的应用,介绍其在数据处理、机器学习建模、实战案例及安全隐私等方面的技术方案与挑战,展现 Java 在金融风控中的强大能力。
|
11月前
|
存储 Java 大数据
Java 大视界 -- Java 大数据在智能家居能源消耗模式分析与节能策略制定中的应用(198)
简介:本文探讨Java大数据技术在智能家居能源消耗分析与节能策略中的应用。通过数据采集、存储与智能分析,构建能耗模型,挖掘用电模式,制定设备调度策略,实现节能目标。结合实际案例,展示Java大数据在智能家居节能中的关键作用。
|
数据采集 搜索推荐 算法
Java 大视界 -- Java 大数据在智能教育学习社区用户互动分析与社区活跃度提升中的应用(274)
本文系统阐述 Java 大数据技术在智能教育学习社区中的深度应用,涵盖数据采集架构、核心分析算法、活跃度提升策略及前沿技术探索,为教育数字化转型提供完整技术解决方案。
|
Java 数据库连接 API
互联网大厂校招 JAVA 工程师笔试题解析及常见考点分析
本文深入解析互联网大厂校招Java工程师笔试题,涵盖基础知识(数据类型、流程控制)、面向对象编程(类与对象、继承与多态)、数据结构与算法(数组、链表、排序算法)、异常处理、集合框架、Java 8+新特性(Lambda表达式、Stream API)、多线程与并发、IO与NIO、数据库操作(JDBC、ORM框架MyBatis)及Spring框架基础(IoC、DI、AOP)。通过技术方案讲解与实例演示,助你掌握核心考点,提升解题能力。
498 2
|
传感器 分布式计算 安全
Java 大视界 -- Java 大数据在智能安防入侵检测系统中的多源数据融合与分析技术(171)
本文围绕 Java 大数据在智能安防入侵检测系统中的应用展开,剖析系统现状与挑战,阐释多源数据融合及分析技术,结合案例与代码给出实操方案,提升入侵检测效能。
|
缓存 安全 Java
【高薪程序员必看】万字长文拆解Java并发编程!(3-1):并发共享问题的解决与分析
活锁:多个线程相互影响对方退出同步代码块的条件而导致线程一直运行的情况。例如,线程1的退出条件是count=5,而线程2和线程3在其代码块中不断地是count进行自增自减的操作,导致线程1永远运行。内存一致性问题:由于JIT即时编译器对缓存的优化和指令重排等造成的内存可见性和有序性问题,可以通过synchronized,volatile,并发集合类等机制来解决。这里的线程安全是指,多个线程调用它们同一个实例的方法时,是线程安全的,但仅仅能保证当前调用的方法是线程安全的,不同方法之间是线程不安全的。
236 0

热门文章

最新文章