`
本来不想注册
  • 浏览: 197442 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

平台无关之对虚拟机的依赖

阅读更多
我只记记我容易忘记的或者暂时不甚了解的:

以下基本为摘录:

在编写平台独立的Java程序时,还必须遵从两条原则,这两条原则和Java虚拟机中的某些部分相关,Java虚拟机中的某些部分可以由不同的开放商用不同的方法实现。 这两条的原则是:
1) 不要依赖及时终结(finalization)来达到程序的正确性。
2) 不要依赖线程的优先级(thread prioritization)来达到程序的正确性。
这两条原则可以防止Java虚拟机规范中允许的垃圾收集和线程在不同实现中的变化所带来的不利影响。

所有的Java虚拟机都必须有垃圾收集堆,但是不同的实现可能使用不同的垃圾收集技术。所以,在不同的虚拟机中,一个特定的Java程序的对象会在不同的时间被垃圾收集器收集掉。

在不同的Java虚拟机的实现中,另一个变化和线程的优先级有关。Java虚拟机规范只保证了,程序中所有拥有最高优先级的可运行线程将会得到一些CPU时间。这个规范保证了,在较高优先级的线程被阻塞时,较低优先级的线程将会运行。但是,在较高优先级线程没有被阻塞的情况下,并没有禁止较低优先级的线程的运行。 在某些虚拟机的实现中,即使较高优先级的线程并未被阻塞,那些较低优先级的线程也可能先得到CPU的时间。 如果你的程序依赖于这个行为的正确性,它将在某些虚拟机中可以正常运行,而某些不能。
为了保证多线程Java程序的平台独立,必须依赖同步(sychronization)而不是优先级来在线程之间协调相互的动作。
分享到:
评论

相关推荐

    深入java虚拟机笔记

    - **对虚拟机的依赖**:不同平台上的JVM实现可能存在差异,这会影响Java程序的一致性。 - **平台无关的七个步骤**:虽然没有明确列出七个步骤的具体内容,但可以推测这七个步骤涵盖了从Java源代码的编写到最终在...

    Java虚拟机(Java VM) msjavax86 微软java虚拟机

    这种跨平台能力得益于Java的平台无关性,Java虚拟机成为连接不同系统平台的关键桥梁。 微软Java虚拟机(msjavax86)是微软公司开发的一款JVM实现,专为Windows平台设计。与Sun Microsystems(现在被Oracle收购)的...

    Java虚拟机的深入研究

    Java虚拟机(JVM)是Java技术的核心组成部分,它提供了平台无关性的关键功能,使得Java程序可以在任何安装了相应JVM的平台上运行。JVM通过移植接口与底层操作系统和硬件进行交互,接口由适配器和Java操作系统两部分...

    深入Java虚拟机(原书第2版).pdf【附光盘内容】

    2.2 java的体系结构对平台无关的支持 2.2.1 java平台 2.2.2 java语言 2.3.3 java class文件 2.2.4 可伸缩性 2.3 影响平台无关性的因素 2.3.1 java平台的部署 2.3.2 java平台的版本 2.3.3 ...

    Java虚拟机在ARM_Linux平台的移植全过程

    通过对Jam VM的详细介绍及其在ARM-Linux平台上的移植过程,我们可以看出,尽管Java虚拟机本身具备良好的跨平台特性,但在具体实现时仍需针对不同平台进行相应的调整和优化。通过选择合适的开源Java虚拟机,并结合...

    Java 虚拟机规范.pdf

    - 字节码指令集是平台无关的,可以跨平台执行。 5. **垃圾回收**: - 自动管理内存,释放不再使用的对象内存。 - 垃圾回收算法有标记-清除、引用计数、复制、分代收集等。 - 常见垃圾回收器有Serial、Parallel...

    深入Java虚拟机

    2.2 Java的体系结构对平台无关的支持 2.2.1 Java平台 2.2.2 Java语言 2.3.3 Java class文件 . 2.2.4 可伸缩性 2.3 影响平台无关性的因素 2.3.1 Java平台的部署 2.3.2 Java平台的版本 2.3.3 ...

    java 虚拟机 教程 pdf

    Java源代码经过编译器转化为字节码,这是一种平台无关的中间表示。JVM通过解释器将字节码转化为机器指令执行,同时,现代JVM如HotSpot还包含了即时编译器(JIT),能将频繁执行的字节码编译为本地机器码,以提高运行...

    Java的平台无关性.pdf

    Java的平台无关性是其设计的核心特性之一,使得Java代码能够在不同的操作系统上运行,无需重新编译。这一特性极大地增强了Java的可移植性和跨平台兼容性。平台无关性主要得益于Java的虚拟机(Java Virtual Machine,...

    java的平台无关性理解.doc

    Java 平台无关性的核心概念在于,Java 程序能够在任何支持 Java 虚拟机(JVM)的平台上运行,无需针对特定操作系统或硬件进行修改。这一特性源于 Java 语言的设计理念,旨在提高软件的可移植性和降低维护成本。 ...

    Java虚拟机向ARM平台的移植

    Java虚拟机(JVM)是Java技术的核心组成部分,它提供了一种抽象的计算环境,使得Java程序能够在不同硬件和操作系统平台上运行,实现了平台无关性。JVM通过自己的指令集和内存模型来执行字节码,并负责内存管理、数据...

    深入java虚拟机

    Java虚拟机是一种可以执行Java字节码的抽象计算机,是一种依赖于物理机器的虚拟机。它为Java程序提供了一个与具体硬件和操作系统无关的运行环境,使得Java程序可以在各种平台上运行,而无需修改代码。 JVM的主要...

    Java虚拟机实现原理分析.pdf

    这归功于Java虚拟机对于不同平台的实现,即平台依赖的虚拟机层(JVM)对平台无关的字节码进行解释或编译,从而使得同一份字节码能够在不同的硬件平台上运行。 JVM的实现不仅包括运行时环境,还包括丰富的标准库,...

    Java虚拟机笔记.pdf

    ### JVM概述 JVM即Java虚拟机,是Java平台的核心组成部分,使得Java可以实现“一次编写,到处运行”的跨平台特性。JVM不是跨平台的,而是其在...JVM的版本信息也能够帮助开发者了解所运行的应用程序所依赖的平台特性。

    java虚拟机详解免费.pdf

    Java虚拟机的跨平台能力之所以强大,不仅得益于其类装载子系统和内存管理机制,还依赖于其移植接口。移植接口由适配器和Java操作系统组成,适配器针对特定平台提供,负责与底层操作系统和硬件进行交互,确保JVM能在...

    虚拟机连续数据保护方案RecoverPoint-for-VM.pdf

    4. **简化恢复流程**:相比传统的基于存储的数据保护恢复方法,RP4VM大大简化了虚拟机恢复流程,虚拟化管理员可以直接执行恢复,而无需过多依赖存储管理员。 通过RP4VM,虚拟化管理员可以快速识别受损虚拟机,选择...

    java虚拟机详解

    通过Java虚拟机,Java应用程序可以在任何安装有JVM的平台上运行,而无需对底层平台进行修改。这使得Java成为了编写一次、到处运行的理想选择。 总的来说,Java虚拟机是Java平台的关键组件,它通过抽象说明、具体...

    深入java虚拟机第二版

    2.2 Java的体系结构对平台无关的支持 2.2.1 Java平台 2.2.2 Java语言 2.3.3 Java class文件 . 2.2.4 可伸缩性 2.3 影响平台无关性的因素 2.3.1 Java平台的部署 2.3.2 Java平台的版本 2.3.3 本地...

    java虚拟机技术分析

    它位于Java平台结构的中心位置,其下层是移植接口,包含适配器等平台依赖组件,确保JVM能在不同的硬件和操作系统上运行。上层则是Java基本类库和API,提供了丰富的函数库供Java程序员调用。JVM负责读取字节码,将其...

Global site tag (gtag.js) - Google Analytics