最近一直在看<深入java虚拟机>这本书,虽然是本比较老的书了.但看了几章后,感觉自己对一些底层的知识更了解了.现总结一下.
1.安全性
说到安全性肯定要说java的安全沙箱了,首先来看看安全水箱的基本组件,主要由以下几个组成:
- 类装载器结构
- class文件检验器
- 内置于java虚拟机的安全特性
- 安全管理器及java API
1.1 类装载器
从1.2开始,类装载器都采用的是"双亲委派"模式,即一个类装载器要装载一个类时,首先将这个类"委派"给它的双亲进行装载,这样下去一直到启动装载器,如果还不能装载则由它自己来装载.如果要装载的类已经被装载,则不会重复装载.由不同的装载器装载的类是属于不同的运行包,也就是说,如果一个类java.lang.Name是由用户自定义的装载器装载,而java.lang.Object是由启动装载器装载,虽然从包名上来看它们是属于同一个包,可能互相访问,但由于 他们不是由同一个类装载器装载,所以他们不在同一个包下面.这样做可以防止一些恶意程序的破坏.
1.2 class文件检验器
class文件是检验一共分为四趟.分别完成以下任务:
第一趟:class文件是结构检查.比如说检查前四个字节是不是0XCAFEBABE等等.
第二趟:类型数据的主义检查.主要检查一些语法错误.
第三趟:字节码验证.
第四趟:符号引用的验证.
分享到:
相关推荐
Java 虚拟机(JVM)自动内存管理机制 Java 虚拟机(JVM)自动内存管理机制是 Java 语言的一大特色,它使得 Java 程序员无需手动管理内存,从而提高了开发效率和程序稳定性。JVM 自动内存管理机制主要通过 JVM 的...
### 深入理解Java虚拟机(JVM)的关键知识点 #### 一、Java与Java虚拟机的关系 Java语言的设计者们为了使Java程序能够跨平台运行,引入了一个概念——Java虚拟机(JVM)。简单来说,Java源代码在编译成`.class`...
### 深入Java虚拟机JVM类加载学习笔记 #### 一、Classloader机制解析 在Java虚拟机(JVM)中,类加载器(ClassLoader)是负责将类的`.class`文件加载到内存中的重要组件。理解类加载器的工作原理对于深入掌握JVM以及...
理解这些概念对于深入学习Java和优化Java应用性能至关重要。在面试或日常工作中,掌握JVM的工作原理、JVM与操作系统、JRE和JDK的关系,可以帮助我们更好地理解Java程序的运行机制,解决性能问题,以及进行高效的代码...
虚拟机学习笔记 Java 虚拟机(JVM)是 Java 语言的 runtime 环境,负责加载、验证、执行 Java 字节码。以下是 JVM 相关知识点的总结。 1. 运行时数据区域 JVM 的运行时数据区域主要包括: * 堆(Heap):...
深入理解Java虚拟机,首先我们要明白Java虚拟机(JVM)的核心功能:它负责装载类文件,执行字节码,并管理内存。Java虚拟机的结构复杂且高效,主要由类装载器、执行引擎、内存管理和类库等组件构成。 类装载器是JVM...
通过阅读《深入理解Java虚拟机》第三章,开发者不仅可以深入理解Java的安全机制,还能学习到如何在实际项目中实施这些安全策略,提升应用的安全性。对于想要从事Java开发或者对系统安全有深入了解需求的人来说,这一...
### 学习深入理解Java虚拟机的前几章笔记 #### JVM内存模型 Java虚拟机(JVM)的内存模型主要分为两大类:线程共享区和线程私有区。 ##### 线程共享区 - **堆**:是所有线程共享的内存区域,在这里存放着对象实例...
读书笔记:学习周志明先生的深入理解Java虚拟机的笔记
《JVM:深入理解Java虚拟机》是一本深入解析Java虚拟机工作原理和技术细节的经典书籍。这份学习笔记将涵盖JVM的关键概念、架构以及它如何影响Java程序的性能。我们将探讨以下几个方面: 1. **JVM概述** Java虚拟机...
读书笔记:深入理解Java虚拟机(周志明)源码及学习笔记
1. **泛型改进**:在JDK 7中,泛型的使用更加灵活,引入了类型推断(Type Inference)特性,通过`<>`语法糖使得创建泛型实例更为简洁,例如`List<String> list = new ArrayList<>();` 2. **钻石操作符**:在创建带...
这篇学习笔记将主要围绕JSP展开,探讨其基本概念、语法以及如何在实际开发中运用。 JSP(JavaServer Pages)是一种动态网页技术,它允许开发者在HTML或XML文档中嵌入Java代码,从而实现服务器端的动态内容生成。JSP...
### 学习笔记之Java虚拟机详解 #### 运行时数据区域概览 Java虚拟机(JVM)运行时数据区域主要包括以下几部分:程序计数器、Java虚拟机栈、本地方法栈、Java堆、方法区以及运行时常量池。 1. **程序计数器**: -...
读书笔记:深入理解Java虚拟机JVM高级特性与最佳实践第3版学习笔记
读书笔记:深入理解Java虚拟机JVM高级特性与最佳实践第3版 周志明 学习笔记
总的来说,"深入理解Java虚拟机读书笔记之:第3章 安全(2)"主要涵盖了Java安全体系的核心概念,包括类加载器、权限模型、安全管理器以及相关工具的使用。理解这些内容对于任何希望构建安全、可靠的Java应用程序的...
读书笔记:《深入理解Java虚拟机JVM高级特性与最佳实践第2版》学习笔记
本篇文章将深入探讨Java虚拟机中的垃圾收集器(GC)及其对内存管理的影响。 1. 垃圾收集器的由来与作用 垃圾收集器的引入主要是为了解决内存管理的问题。在没有GC的情况下,程序员需要手动释放不再使用的对象,这...