JVM学习之体系结构、平台无关性(1)

一 Java虚拟机

1 java虚拟机可以指规范,或者规范的实现,或者是运行的实例(一个java程序的运行就代表了一个jvm运行实例)

 

2 JVM生命周期

java命令 -> 类名 -> main()方法执行(非守护线程) -> 非守护线程全部执行完毕 -> 守护线程(如垃圾回收线程)自动退出 -> jvm运行终止

 

3 虚拟机的架构:

class文件 -> 类装载器子系统 -> 运行时数据区: 方法区 堆 java栈 PC寄存器 本地方法栈 -> 执行引擎 +-> 本地方法接口 -> 本地方法库

 

 

二 Java体系结构对平台无关性的支持

1 java程序对应的class文件只需要与java虚拟机打交道,当要与低层平台交互时,特定平台的jdk所带的java API封装了对本地方法的调用

 

2 java语言的基本数据类型的值域和行为都是由语言自己定义的,如int都是32位二进制补码表示的有符号整数;而c或c++,基本整数类型的值域是由编译器根据目标平台的字长来决定的

 

3 在编写平台独立的java程序时,必须遵从两条原则:

(1)不要信赖及时终结(finalization)来达到程序的正确性,

    因为不同的虚拟机实现中可以使用不同的垃圾收集技术,意味着在不同的虚拟机中一个特定的java程序可能在不同的时间被垃圾收集,如果使用一个终结方法来释放有限的内存资源岢能在一些虚拟机上可以及时释放,而在其他实现上却直到资源耗尽也没有及时释放

 

(2)不要信赖线程的优先级来达到程序的正确性,

    因为有些低层平台的线程调度机制可能不单单信赖于线程的优先级

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值