查看安装的jdk版本号 和 虚拟机版本号

java -version

第一行:表示jdk版本号为jdk1.8.0

第二行:表示Java运行环境

第三行:表示jvm信息

能看到当前是64 位 的HotSpot VM 。1999年 4月 27 日,Java HotSpot Virtual Machine (简称 HotSpot)正式对外发布,并从这之后发布的 JDKl.3 版本开始, HotSpot 成为 Sun JDK 的默认虚拟机 。

JVM 有 3 种执行模式,分别是解释执行、混合执行和编译执行,默认情况是混合执行模式 .

当前JIT compiler(即时编译器)使用的是混合执行模式( mixed mode):

部分函数会被解释执行,部分可能被编译执行。JVM决定函数是否需要编译执行的依据是判断该函数是否为热点代码。如果函数的被调用频率很高,那么就是热点,热点代码就会被编译执行。编译执行模式的执行效率会远远高于解释执行模式(compiled mode)。如下显示表示的是解释执行模式:Java HotSpot(TM) 64-Bit Server VM (build 25.261-b12, compiled mode)。运行一个 Java程序,分别采用 -Xint和-Xcomp 作为 VM 选项,对应的是解释执 行模式和编译执行模式。我们可以使用Java -Xcomp -version命令使得jvm启用解释执行模式,使用Java -Xint -version命令使得jvm启用混合执行模式。

Ps:顺带深入理解一下采用即时编译器原理。最早的 Java编译方案是由一套转译程序将每个 Java指令都转译成对等的微处理器指令,并根据转译后的指令先后次序依序执行,由于一个 Java指令可能被转译成十 几或数十几个对等的微处理器指令,这种模式执行的速度相当缓慢。针对这个问题,业界首先 开发出即时编译器。当 Java执行运行时,每遇到一个新的类别(类别是 Java程序中的功能群组),JIT 编译器在此时就会针对这个类别进行编译作业 。 经过编译后的程序,被优化成相当精简的原生型指令码( Native Code),这种程序的执行速度相当快 。 花费少许的编译时间来节省稍后相当长的执行时间,也就是所谓的磨刀不误砍柴工,这种设计的确增加不少效率,但是它井未达到最顶尖的效能,因为某些极少执行到的 Java指令在编译时额外所花费的时间可能比转译器在执行时的时间还长,针对这些指令而言,整体花费的时间并没有减少。基于由 JIT 带来的经验, 业界发展出动态编译器( Dynamic Compiler),动态编译器仅针对较常被执行的程序码进行编译,其余部分仍使用转译程序来执行。也就是说,动态编译器会判断是否要编译某个类别。那动态编译器是如何判断的呢?动态编译器针对程序的特性或者是让程序执行几个循环,再根据结果决定是否编译这段程序码。此判断不见得绝对正确,但从统计数字来看,这个判断的机制正确的机会相当高 。 从整个结果来看,动态编译器产生的程序码执行的速度超越以前的JIT技术,平均速度可提高50%。

查看jdk安装目录

/usr/libexec/java_home -V

注意⚠️: V是大写字母

大部分JAVA HOME都在/Library/Java/JavaVirtualMachines/jdk1.8.0_221.jdk/Contents/Home路径

我们平时用来查看 JVM 内部信息的常用的工具都在 $JAVA HOME/bin 目录下。(Home/bin如下截图)

比如常用的用查看程序内存使用情况的Java命令:jmap、jhat、jstat、jstack等。

jdk安装目录 usr java_Mac查看已安装的jdk版本和jdk安装目录相关推荐

  1. 无法安装64位office,因为已有32位版本

    这里写自定义目录标题 1.无法安装64位office,因为已有32位版本 2."无法安装64位office,因为已有32位版本"解决方案 3.若要运行此您必须首先安装.net fr ...

  2. pip安装更新、第三方库对应的python解释器版本、pip安装第三方库,压缩包离线安装,pycharm快捷安装及pycharm中terminal的使用,timeout超时报错

    文章有点长,但是很详细,还望大家耐心看 之前在安装python的文章中已经给大家配置了pip环境变量(不了解的点这里去看看),这里就能直接在cmd窗口,不用切换路径,就能使用pip了. 首先 使用pi ...

  3. nessus rpm 安装_CentOS8.0下查看已安装的软件位置

    本文CentOS8.0环境为基础,以安装nginx说明. CentOS8发行版 / 存储库: CentOS 8 主要通过两个存储库分发:BaseOS.AppStream: BaseOS 存储库:主要包 ...

  4. 赛门铁克linux安装教程,Symantec赛门铁克14.2版本服务端安装教程及配置教程(三)...

    本小节将讲解如何后台配置SEPM 目录: 1.打开Symantec Endpoint Protection Manager,查看主页 管理服务器后台主页 2.打开之前添加的两个sepm服务器,如下图 ...

  5. python怎么改目录_如何查看文件,而不是使用Python进行更改的目录?

    问题: How do I watch a file for changes using Python?建议使用看门狗,但我发现它只能观看目录,而不是文件. watchdog-test.py是看门狗的示 ...

  6. Linux 系统关于应该把程序安装在目录 /usr 还是目录 /usr/local 下的思考

    对于一个以 LFS(Linux From Scratch 大意:自己做出来的 Linux) 为基础的系统来说,这是一个没有明确答案的问题.什么是 LFS? 在传统的 Unix 系统中,/usr 通常只 ...

  7. 多版本OpenCV+OpenCV_contrib安装及使用

    多版本的安装 对于多个版本都安装到了显式指定的路径上,可以参考文章2进行设置:若是有一种版本常用的,则将其安装到默认目录/usr/local下,而对于另一种新安装的,则显式指定安装目录CMAKE -D ...

  8. vue/cli 和 vue 版本对应及安装

    文章目录 Vue Cli 使用方式: 关于Vue Cli版本介绍 @vue/cli 安装: 版本号对应 查看vue和@vue/cli版本: Vue Cli Vue CLI = Vue + 一堆的js插 ...

  9. 深度学习环境搭建(从卸载CUDA到安装,以及Pytorch与torchvision的安装。你从未见过的全有版本)

    深度学习环境搭建(从卸载CUDA到安装,以及Pytorch与torchvision的安装.你从未见过的全有版本) 先来点头疼的:在深度学习的过程中,环境搭建是必须要经过的一个关卡,由于版本对应麻烦,很 ...

  10. CUDA:利用Pytorch查看自己电脑上CUDA版本及其相关信息

    CUDA:利用Pytorch查看自己电脑上CUDA版本及其相关信息 目录 利用Pytorch查看自己电脑上CUDA的版本信息

最新文章

  1. Ubuntu 系统 卸载OpenJDK 8
  2. python 中文查找_使用python和regex查找字符串中的所有中文文本
  3. html框架集把那根框架隐藏,HTML 框架集 frameset 和内嵌框架 iframe
  4. (更新)网络规划设计师考试大纲 及教程_下载
  5. MySQL的配置文件_选项文件_参数文件
  6. JavaScript逻辑运算符“”和“||”短路原则的应用
  7. Python版归并排序算法(附Python程序__name__属性用法演示视频)
  8. 即时通讯学习笔记002---xmpp基本概念
  9. 亲测有效!实现Chrome浏览器下载速度提升3倍!
  10. rabbitmq的基本安装、配置,以及整合springboot,gradle的hello.demo
  11. 中国科学技术大学生物信息学考试复习资料(整理版)
  12. oracle11g本地安装,windows64位机oracle11g+pl/sql安装教程图解
  13. 查看MySQL初始密码并修改
  14. ''' 疯狂填词 创建一个疯狂填词(Mad Libs)程序,它将读入文本文件
  15. 大数据安全体系介绍之技术体系篇
  16. 那一年我是如何从功能测试跨入自动化测试的,绝对让你不虚此行!
  17. ThinkPHP在线小说阅读管理系统
  18. 有水印的图片简直不要太尬!教你去水印,以后精美图片统统拿走!
  19. c语言堆、栈、数据段、代码段、bss段的疑惑
  20. GMT对应的SimpleDateFormat

热门文章

  1. Docker contanier comunication with route
  2. 发现这里才是我的地方
  3. Delphi的Indy通信中发送流文件的注意事项
  4. 用php写一个单例类,PHP里的单例类写法实例
  5. 【Spring-AOP】源码分析汇总
  6. 【Feign源码】解析方法的类--Contract
  7. 线程安全问题和Synchronized的使用
  8. JVM监控及诊断工具命令行篇之jmap
  9. mysql redolog日志
  10. 了解一下Redis队列【缓兵之计-延时队列】