01-对JAVA平台的理解

1.1 对jAVA平台的理解

1.1.1 跨平台

Write once, run anywhere.
JAVA的跨平台特性与JAVA虚拟机的存在密不可分。JAVA语言本身与其他编程语言没什么特别大的差异,并不是说JAVA语言可以跨平台,而是在不同的平台都有可以让JAVA语言运行的环境。
程序从源码到运行:编码-编译-运行-调试。JAVA在编译阶段体现了跨平台的特性,即:首先,将Java源代码编译成.class文件字节码(第一次编译);.class通过JVM将Java字节码转化为目标机器可以运行的代码(第二次编译)。正是第二次编译中JVM的作用,为JAVA语言提供了在不同平台运行的效果。

和C/C++最大的不同点在于:C是面向操作系统的,需要开发者关注不同操作系统之间的差异性;而JAVA是通过虚拟机屏蔽了操作系统的底层细节。这也是“解耦”的思想。

1.1.2 垃圾收集

JAVA通过垃圾收集器(Garbage Collector)回收分配内存,大部分情况下,程序员不需要自己操心内存的分配和回收。

1.2 JAVA是解释执行吗?

JAVA不是编译机制,而是解释机制。
JVM类加载器加载.class文件字节码,通过解释器逐行解释执行,但是这种执行速度会相对比较慢。
针对高频使用的代码块(即热点代码),引进了即时编译(JIT Just-in-time compilation),提前将这类代码编译成本地机器码,可以直接执行。有点类似于“缓存”技术。

对一般的Java方法而言,编译后代码的大小相对于字节码的大小,膨胀比达到10x是很正常的。同上面说的时间开销一样,这里的空间开销也是,只有对执行频繁的代码才值得编译,如果把所有代码都编译则会显著增加代码所占空间,导致“代码爆炸”
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值