JAVA的平台无关性

Java相关重要特性

  • 跨平台/可移植性
    Java 的核心优势。Java在设计时就很注重移植和跨平台性。比如:Java的int永远都是32位。不需要为不同的平台开发不同的程序,而是只开发一套应用,就可以运行在不同的平台上。

  • 解释执行
    解释执行的含义是,Java程序编译之后,只是生成了class文件,成为字节码,并不是机器码。在执行时,JVM中的解释器,会根据当前平台的特征,对class文件进行解释,生成符合当前规范的机器码,得以运行。

  • 面向对象
    Java语言是一门面向对象语言,具备面向对象语言三大特征:封装、继承、多态。

  • 自动垃圾回收
    程序员无权回收内存。系统级线程跟踪每一个存储空间的分配情况,在JVM空闲周期,垃圾收集线程检查,释放内存。

  • 健壮性
    Java是一种健壮的语言,吸收了C/C++ 语言的优点,但去掉了其影响程序健壮性的部分(如:指针、内存的申请与释放等)。Java程序不可能造成计算机崩溃。即使Java程序也可能有错误。
    如果出现某种出乎意料之事,程序也不会崩溃,而是把该异常抛出,再通过异常处理机制加以处理。

  • 支持多线程编程
    多线程的使用可以带来更好的交互响应和实时行为。 Java多线程的简单性是Java成为主流服务器端开发语言的主要原因之一。

  • Java 还具有 高性能、分布式 等特性。

“一次编译,到处运行”的实现

  • Java编译程序并不直接将Java源代码编译为相依于计算机平台的0、1序列,而是将其编译为字节码(* *.class)。

  • 想要执行字节码文件,目标平台必须要安装JVM(java虚拟机),JVM会将字节码翻译为相依与平台的计算机指令,即:0、1序列。(不同平台要安装专属该平台的JVM)。
    在这里插入图片描述

  • JVM 相当一个翻译员,将字节码文件(* *.class)翻译成程序运行的平台能看懂的0、1序列,JVM 帮助我们编写的 Java 程序实现“一次编译到处运行”的跨平台目的。

  • 即,Java 程序跨平台性好的根本原因是 JVM 的存在。
    在这里插入图片描述

对Java程序而言,只认识一种操作系统,这个系统就是JVM,字节码文件(扩展名为.class的文档)就是JVM的可执行文件。

Java 的执行过程

  • 最开始,我们编写的 Java 代码是 **.java 文件
  • 在编译后(javac 命令)后,从 * *.java 文件会生成一个新的 Java 字节码文(##.class
  • JVM 会执行前面生成的字节码文件(##.class),并把字节码文件转化为 机器指令
  • 机器指令可以直接在 CPU 上运行,也就是最终的程序运行
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值