zoukankan      html  css  js  c++  java
  • 《深入java虚拟机》随笔(随时更新)

    1.不同系统在java平台上运行的java程序(这张图不错)     2.java虚拟机的主要任务就是用类装载器(class loader)从程序和API中装载class文件,        3.java中有两种方法:java方法和本地方法(native method)                                                                                                             并且执行其中的字节码。(类的加载:把class文件读入内存, 并创建一个Class对象)        前者是java语言编写的,与平台无关。后者用c/c++/汇编 编写的,与平台有关

      

    4.通过本地方法,java程序可以直接访问底层操作系统的资源。但是这样用,程序会变成平台相关的,因为包含本地方法的动态库是平台相关了。如果希望保证程序的平台无关性,那么只能通过java API 来访问系统资源

    5.运行java程序时,虚拟机装载程序的class文件所使用的java api class文件(任何能运行程序的java虚拟机上都能够获得java api class文件,因为java虚拟机和java api class文件是任何java平台都要实现的必要部分)。所有被加载的class文件(包括从应用程序中和从java api中提取的)和所有已经装载的动态库(包含本地方法)共同组成了在java虚拟机上运行的整个程序。

    6.Java API的class文件天生就主机平台密切相关。在一个平台能够支持java程序以前,必须在这个特定平台上明确地实现API的功能。为访问主机上的本地资源,Java API调用了本地方法。出于API class文件调用了本地方法,Java程序就不再需要调用它们了。通过这种方法,Java API class文件为底层主机提供了具有平台无关性的、标准接口的Java程序。对Java程序而言,无论平台内部如何,Java API都会有同样的表现和可预测的行为。正是由于在每个特定的主机平台上都明确地实现了Java虚拟机和Java API,因此,Java程序自身就能够成为具有平台无关性的程序。(但是一些图形界面库因为不同系统风格不同,所以有例外) 

  • 相关阅读:
    个人亲历运维面试
    《Kubernetes进阶实战》之管理Pod资源对象
    Docker容器必备技能 -- iptables
    vue后台管理权限正确思路
    Axios 各种请求方式传递参数格式
    Cookie的使用(js-cookie插件)
    微信小程序template模板与component组件的区别和使用
    如何机智地回答浏览器兼容性问题
    webpack系列5:源码流程,webpack编译流程
    webpack系列4:文件分析.
  • 原文地址:https://www.cnblogs.com/baron89/p/2831019.html
Copyright © 2011-2022 走看看