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文件的逆向编译较容易:工作成果容易被窃取,解决方法--使用混淆器

 

posted on 2017-03-08 15:17  伪善者ql  阅读(2301)  评论(0编辑  收藏  举报

导航