java运行机制:跨平台的原因

java三种核心机制

  • java虚拟机
  • 代码安全性检测
  • 垃圾收集机制(garbage collection)

java程序的编译与运行

java程序的编译与运行过程图

【说明】

  • 源程序.java文件运行编译命令javac,相当于c语言中的命令cc
  • javac编译后生成class文件,实际上就是一些字节码bytecode。不是我们实际机器的最终执行码,而在C++中,是直接成最终的cpu指令。该字节码是java自定义的一套规则中的一系列指令。最大特点就是平台无关性
  • 命令java用来实现运行字节码文件,实际上是调用了虚拟机。最终要转成对应系统的代码。

java虚拟机jvm

  • 虚拟机是在一台计算机上有软件或硬件模拟的计算机;
  • jvm读取并处理经编译过的字节码class文件;

Java语言的一个非常重要的特点就是与平台的无关性。而使用Java虚拟机是实现这一特点的关键。一般的高级语言如果要在不同的平台上运行,至少需要编译成不同的目标代码。而引入Java语言虚拟机后,Java语言在不同平台上运行时不需要重新编译。Java语言使用Java虚拟机屏蔽了与具体平台相关的信息,使得Java语言编译程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。Java虚拟机在执行字节码时,把字节码解释成具体平台上的机器指令执行。这就是Java的能够“一次编译,到处运行”的原因。

java运行环境jre

  • jre = jvm + api (lib)
  • jre运行程序时的三种主要功能
    • 加载代码
    • 校验代码
    • 执行代码

java自动垃圾回收技术

  • 在c/c++等语言中,有程序员负责回收无用内存,不需要用delete命令;
  • java自动垃圾回收
    • 系统级线程跟踪存储空间的分配情况;
    • 在jvm空闲时,检查并释放那些可被释放的存储空间
    • 程序员无须也无法精确控制和干预该回收过程;

jdk(java开发工具包)

  • JDK = JRE + TOOLS;
  • JRE = JVM + API ;
    JDK结构图

JDK包含的基本组件包括:
- javac – 编译器,将源程序转成字节码
- jar – 打包工具,将相关的类文件打包成一个文件
- javadoc – 文档生成器,从源码注释中提取文档
- jdb – debugger,查错工具
- java – 运行编译后的java程序(.class后缀的)
- appletviewer:小程序浏览器,一种执行HTML文件上的Java小程序的Java浏览器。
- Javah:产生可以调用Java过程的C过程,或建立能被Java程序调用的C过程的头文件。
- Javap:Java反汇编器,显示编译类文件中的可访问功能和数据,同时显示字节代码含义。
- Jconsole: Java进行系统调试和监控的工具

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值