`
dr.han
  • 浏览: 46313 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

JVM(一)java 体系结构 平台无关性,安全性,网络移动性

阅读更多
平台无关性 biggrin

Java中的方法分为两类:
java方法和本地方法native method,java方法是用java语言写的代码存储在class文件中,而本定方法为其他语言所写比如C,C++,汇编语言等,编译成和处理器相关的机器代码,并保存在动态链接库中。

java方法是平台无关的,而native方法是本地相关的。如果希望程序是本地无关的,那么通过调用javaAPI来访问底层资源
如果无法调用javaAPI,那么可以写一个平台相关的java代码,比如JNI等,这样的程序就是本地相关的。

安全性

类装载器的体系结构,class文件检查器,java内置的安全特性,安全管理器

类装载器的体系结构
java虚拟机种存在一个启动类装载器(bootstrap,启动jvm的class文件),或者叫原始类装载器,和多个用户自定义的类装载器。
bootstrap:使用某种默认方式从本地磁盘加载类和javaAPI。
user custom:能够用java实现,能够被编译成class文件,被虚拟机装载,像其他对象一样实例化,由于有用户自定义类装载器,所以不必再编译的时候就知道运行中的java应用程序中最终加入的所有的类,当它运行时,应用程序能够决定它需要哪些额外的类,并且由于类装载器是用java编写,所以它能用任何在java代码中的风格来进行类的装载,通过网上下载,或者DB中读取,甚至动态生成。
每个类被加载的时候,JVM都监视这个类,看它被bootstrap或者userCustom装载,如果一个类被装载器A装载,那么它所依赖的类都会被A装载,因此被装载的类在默认的情况下只能看到被同一个类装载器装载的别的类,通过这个方法,Java体系结构中允许在一个java程序中建立多个命名空间,运行的java程序中的每一个classloader都有它自己的命名空间。
当编写一个java程序的时候,从不同的源文件装载的类可以分隔在不同的命名空间中,通过这种方法就能够使用java类装载器的体系结构来控制任何从不同源文件中装载的代码之间的互相影响。比如applet类装载器,不同来源的javaapplet的class文件来自不同的命名空间中,因此恶意的applet就不能直接妨碍从别的地方下作class

双亲委派式装载模式,每个类装载器都有一个双亲类装载器,如果双亲装载器没有能力装载,那么自己装载。

双亲委派模式保证了父装载器优先,并且只有同一个类装载器装载的类直接才可以互相访问。

网络移动性

通过用户自定义的类加载器,知道如何从网络上下载class文件。

class文件
为java程序提供独立于底层平台的二进制形式的服务,它是可以运行在任何支持jvm的硬件平台和操作系统上的二进制文件。它是一种“机器语言”,它的字节顺序是高位在前,和平台无关。
class文件可以快速的在网上传送,而且可以在需要的时候才下载。
class文件检查器,在运行前对所有的字节码进行一次检测,共分为四趟检查
1.class文件的结构检查,所有的class文件都是以0xCAFEBABE,以及class文件的长度等
2.类型数据的语义检查,查看每个组成部分,比如方法描述符等是否符合语法。除Object类,其他类都必须有个超类,final类没有被子类化,final方法没有被覆盖。
3.字节码验证。
4.符号引用的验证。

javaAPI

它是运行库的集合,提供一套访问主机系统的标准方法,但存在最小公分母问题,不同的系统的差异性,使得设计者只能选择支持的系统特点。

安全管理器

应用程序可以java.lang.SecurityManager或者其子类的实例传递给setSecurityManager(),以此来安装安全管理器


 

分享到:
评论

相关推荐

    Java体系结构介绍

    ### Java体系结构介绍 #### 一、Java 是什么 Java是一种高级编程语言,它具有开放性、跨平台性、安全性及面向对象等特性。Java语言的设计借鉴了C和C++等面向对象语言的经验,但在语法上更为简洁。它可以运行在多种...

    Java安全体系结构1

    Java安全体系结构是Java平台的核心组成部分,它为Java的三大特性——平台无关性、网络移动性和安全性提供了坚实的基础。本文将深入探讨Java如何通过其语言特性、类加载器和安全管理器来实现安全性。 首先,Java的源...

    2022年Java体系结构对信息安全的支持Java教程.docx

    Java 语言作为一种面向对象的编程语言,以其平台无关性、网络移动性和安全性赢得了广大开发者和用户的青睐。2022年,Java体系结构在信息安全支持方面依然扮演着至关重要的角色。以下将详细介绍Java如何保障信息的...

    jvm特性与java特性

    在深入探讨JVM(Java虚拟机)的特性之前,我们首先需要了解Java虚拟机在整个Java体系中所扮演的角色。Java虚拟机是运行Java字节码的抽象计算机,它使得Java语言具有“一次编写,到处运行”的特性。JVM的特性不但支撑...

    深入java虚拟机笔记

    综上所述,《深入Java虚拟机》这本书覆盖了Java体系结构、平台无关性、安全性、网络移动性以及JVM内部运作等多方面的内容,对于想要深入了解Java虚拟机及其工作机制的读者来说是非常有价值的参考资料。

    JAVA8虚拟机(jvm)规范_Chinese version.rar

    Java虚拟机(JVM)是Java程序运行的核心组件,它负责解释和执行字节码,为Java应用程序提供了一个跨平台的运行环境。《JAVA8虚拟机(jvm)规范_Chinese version》提供了关于JVM的详细中文指南,对于理解Java程序的运行...

    第二章Java虚拟机

    #### Java体系结构概览 Java体系结构由四大关键技术构成,它们相互独立却又紧密相连: 1. **Java程序设计语言**:提供了一种高级、面向对象的语言,用于编写可移植性强的应用程序。 2. **Javaclass文件格式**:一...

    Java虚拟机工作原理(JVM).docx

    总的来说,Java虚拟机通过其独特的设计,实现了平台无关性、安全性和网络移动性,为开发者提供了高效、可靠的运行环境。理解和掌握JVM的工作原理,对于优化Java程序的性能和解决运行时问题至关重要。

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

    4.3 java体系结构对网络移动性的支持 4.4 applet:网络移动性代码的示例 4.5 jini服务对象:网络移动对象的示例 4.5.1 jini是什么 4.5.2 jini如何工作 4.5.3 服务对象的优点 4.6 网络移动性:java...

    java教程 第二课 虚拟机

    ### Java虚拟机详解 ...综上所述,Java虚拟机作为Java平台的核心组件,在确保平台无关性、提供安全性保障和实现网络移动性方面发挥着至关重要的作用。理解这些基础知识对于深入学习Java编程语言具有重要意义。

    Java平台 Java虚拟机 Java 应用编程接口

    Java的诞生对软件产业产生了深远影响,它推动了分布式计算模式、基于构建的开发方法和多层应用体系结构,如CORBA和后来的Java 2平台与.NET平台的竞争。此外,Java促进了软件从开发中心向服务中心的转变,强调软件的...

    java核心概念

    3. **Java class文件**是Java平台无关性和网络移动性的关键。它是一种二进制格式,可以跨平台运行。与传统的编译链接成特定平台的二进制文件不同,Java class文件无需修改就能在任何支持JVM的系统上运行。这使得Java...

    java体系概述

    10. **Java模块系统(Java 9及以上版本)**:Jigsaw项目引入了模块系统,旨在提高Java应用程序的可维护性、安全性和性能,通过明确的模块化结构,使大型项目更容易管理和部署。 Java体系还包括其他许多方面,如反射...

    JAVA基础知识概述

    Java体系结构主要包括以下几个层次: - **Java语言**:提供了一种简洁而强大的语法结构,使得开发者能够高效地编写面向对象的程序。 - **Java类文件**:Java程序经过编译后会生成`.class`文件,这些文件包含了Java...

    java知识体系总结

    它以其“一次编写,到处运行”的特性闻名,适用于开发跨平台的应用程序,包括桌面应用、企业级应用、移动应用以及服务器端和云计算环境。Java具有丰富的类库和强大的社区支持,是许多开发者首选的编程工具。 1. **...

    理解java开发平台

    此外,Java推动了基于组件的开发方法,促进了CORBA和多层应用体系结构的标准,如Java 2平台和.NET平台的形成。Java也促使软件产业从以开发为中心转向以服务为中心,催生了中间件提供商、构件提供商、服务器软件及...

    ZTE的JAVA内部培训教材

    Java的成功在于其强大的特性,包括面向对象编程、分布式计算、安全性、与平台无关性、多线程和动态性。 【面向对象编程】 Java是一种面向对象的编程语言,这意味着它基于对象,而不是过程。对象是封装数据和方法的...

    JVM优化及面试热点分析-完整版.pdf

    1. **跨平台性**:Java的核心理念之一就是“编写一次,到处运行”,这得益于JVM的存在。无论是在Windows、Linux还是Mac OS上,只要安装了JVM,Java程序就能运行。 2. **安全性**:Java提供了一套相对安全的内存管理...

    面向对象程序设计JAVA课件

    6. **体系结构中立**:Java程序可以在任何支持Java虚拟机(JVM)的平台上运行,无需重新编译。 7. **可移植性**:Java的源代码与平台无关,只需一次编写,到处运行。 8. **解释执行**:Java解释器将字节码解释为...

    java虚拟机工作原理

    1. Java体系结构: - **程序设计语言**:Java编程语言定义了语法和语义,使得开发者能够编写源代码。 - **字节码文件格式**:Java源代码经过编译后生成的字节码文件,包含了类信息、常量池、字段和方法定义等。 -...

Global site tag (gtag.js) - Google Analytics