Java|Java初学者不得不知的概念:抽丝剥茧JDK、JRE、JVM之间的区别( 二 )


  • Just-In-Time (JIT) Compiler
JVM 自动监视正在执行的方法 。 一旦一个方法符合 JIT 编译的条件 , 它就会被JIT编辑器编译成机器代码 。 这种方法被称为热方法 。 这个编译过程发生在单独的JVM线程上 。 编译成机器码后 , 程序运行速度是更快的 。
  • Garbage Collector
JVM的垃圾收集器主要用于对运行时数据区的内存进行回收整理 , 保证内存空间的正常使用 。
3、什么是Java Runtime Environment(JRE)?Java 运行时环境 (JRE) 是一组用于运行 Java 应用程序的软件组件
JRE 的核心组件包括:
  • JVM
  • 运行 Java 程序所需的类
  • 属性文件
JVM上一节已经做了比较详细的描述 , 所以这里只介绍运行 Java 程序所需的类和属性文件
3.1、运行 Java 程序所需的类
  • Bootstrap 类
Bootstrap class可以翻译为引导类 , 放在 jre/lib/路径下面 , 这里类在Bootstrap ClassLoader启动时候就会被加载
rt.jar 运行时类
i18n.jar 国际化类
charsets.jar 字符转换用
等等
  • extension类
extension class , 也即拓展类 , 放在jre/lib/ext/路径下面 , 可以将自定义的jar放在此路径
包括的类: jfxrt.jar (JavaFX 运行时库)、localedata.jar(包括java.text和java.util)、等等
  • jre/lib/security 安全管理
  • jre/lib/applet 放置小程序支持类的目录
  • jre/lib/fonts 字体相关文件
  • 等等
3.2、 属性文件
属性文件位于/jre/lib/内的不同文件夹中
  • calendar.properties 日历配置
  • logging.properties 日志配置
  • net.properties 中的网络配置
  • /jre/lib/deploy/ 中的部署属性
  • /jre/lib/management/ 中的管理属性
  • 等等
4、什么是Java Development Kit (JDK)?Java Development Kit (JDK) 提供用于开发、编译、调试和执行 Java 程序的环境和工具 。
JDK的核心组件包括:
JRE
开发工具
现在 , 我们将专注于各种开发工具
  • javac –将java文件编译成class类文件
  • java – 启动 Java 应用程序
  • javadoc – 从 Java 源文件生成 API 文档(HTML 页面)
  • apt – 根据指定源文件集中的注释查找并执行注释处理器
  • appletviewer – 使我们能够在没有 Web 浏览器的情况下运行 Java 小程序
  • jar – 将 Java 小程序或应用程序打包到单个存档中 , 可以用于运行jar文件
  • jdb – 用于查找和修复 Java 应用程序中的错误的命令行 , 调试工具
  • javah – 从 Java 类生成 C 头文件和源文件
  • javap – 反汇编class类文件 , 并显示有关类文件中存在的字段、构造函数和方法的信息
  • extcheck – 检测目标 Java 存档 (JAR) 文件和当前安装的扩展 JAR 文件之间的版本冲突
安全工具
java是有提供一些安全的授权证书的 , Java Keystore 是授权证书或公钥证书的容器 。 因此 , 它经常被基于 Java 应用程序用于加密、身份验证和通过 HTTPS 提供服务 。
  • keytool – 加密密钥和证书
  • jarsigner – 使用密钥库信息生成数字签名的 JAR 文件
  • policytool – 管理外部策略配置文件
监控和性能分析
  • jconsole –提供一个图形控制台 , 让您监控和管理 Java 应用程序
  • jps –列出目标系统上检测的 JVM
  • jstat –监控 JVM 统计信息
  • jstatd –监控已检测的JVM
  • info – 为指定的 Java 进程生成配置信息
  • jmap –打印指定进程的共享对象内存映射或堆内存详细信息
  • jsadebugd –附加到 Java 进程并充当调试服务器
  • jstack –打印Java 堆栈跟踪 , 栈溢出问题排查
等等
今日份分享已结束 , 请大家多多包涵和指点!