zoukankan      html  css  js  c++  java
  • java体系结构概览

    java体系结构包括四个方面:

    java程序设计语言

    java class文件格式

    java API

    java 虚拟机

    1.java虚拟机

    java虚拟机的任务是装载class文件并执行字节码

    执行引擎的实现有:一次性解释字节码;即时编译器;自适应优化器;

     java程序通过调用本地代码和主机交互,访问主机底层系统资源,如上图,本地方法是由其他语言编写的,编译成和处理器相关的机器代码

    2.类装载器的体系结构

    java应用程序分为两种类装载器,启动(bootstrap)类装载器和用户自定义类装载器

    启动类装载器有操作系统对应的语言有不同实现,如C,但是用户自定义的类装载器能够用java编写,是java程序可执行代码的一部分

    装载器装载类时采用双亲委派模式,被装载的类默认情况下只能看到由同一个类装载器装载的其他类,每个类装载器都有他自己的命名空间,通过这种方式,能控制不能源文件装载的类之间的相互影响,特别是阻止恶意代码访问和破坏善意代码

    3.java class文件:为java程序提供独立于底层主机平台的二进制服务,是java虚拟机的二进制语言,被设计的紧凑适合传输

    4.java API

    是运行库的集合,提供一套访问主机系统资源的标准方法,在一个平台能够执行java程序之前,必须在这个平台上明确地实现API的功能,JAVA API通过本地方法访问主机资源

    5.java程序语言

    除了平台移动性,安全性,网络移动性,java语言相比其他语言,还有其他优势:

    java语言相比于c++,还有一些能够提高开发效率的特性:

    1. 1.对内存直接操作的约束:不能直接将引用类型的指针转化为其他类型,除非确定此对象为新类型的前提下;不能直接对指针进行偏移量等运算操作
    2. 2.自动垃圾收集:不释放对象会导致内存泄露,多次释放一个对象会导致内存冲突
    3. 3.数组边界检查:每次使用数组的时候,会进行边界检查
    4. 4.对对象引用的检查:一个空的引用不会导致程序崩溃,只会抛出一个异常

    6.java体系结构的代价

    1. 和其他技术相比,java程序的执行速度可能比较低:但java或许很慢,但不会永远那么慢,1995年第一个java虚拟机诞生采用解释技术,不久,即时编译器诞生了,现在,适应性优化等先进技术能够使java程序和本地编译的c程序相媲美的速度运行
    2. 在内存管理上的缺陷:垃圾收集器给程序的运行加入不确定性,你不能确定什么时候开始进行垃圾收集,无法确认是否开始,无法确认持续多长时间
    3. 在线程调度上的缺陷:对线程调度上的约束松散,有利于将java虚拟机移植到不同的硬件,但是,这导致程序员无法控制线程的调度
    4. 平台无关性导致的最小公分母的问题:某种特性只在一种操作系统上有,API可能决定不支持;当支持某个特性,某些操作系统上不具备时需用API模拟实现
    5. class文件的逆向编译较容易:工作成果容易被窃取,解决方法--使用混淆器
  • 相关阅读:
    HDU 1058 Humble Numbers
    HDU 1421 搬寝室
    HDU 1176 免费馅饼
    七种排序算法的实现和总结
    算法纲要
    UVa401 回文词
    UVa 10361 Automatic Poetry
    UVa 537 Artificial Intelligence?
    UVa 409 Excuses, Excuses!
    UVa 10878 Decode the tape
  • 原文地址:https://www.cnblogs.com/qilong853/p/6519600.html
Copyright © 2011-2022 走看看