JVM16_类的概述、分类、ClassLoader源码分析、自定义类的加载器、双亲委派机制、沙箱安全机制(六)

简介: ⑤. 沙箱安全机制

⑤. 沙箱安全机制


①. 如图,虽然我们自定义了一个java.lang包下的String尝试覆盖核心类库中的String,但是由于双亲委派机制,启动加载器会加载java核心类库的String类(BootStrap启动类加载器只加载包名为java、javax、sun等开头的类),而核心类库中的String并没有main方法


微信图片_20220107140802.png


②. 自定义String类,但是在加载子弟敬意String类的时候回率先使用引导类加载器加载,而


引导类加载器在加载过程中会先加载jdk自带的文件(rt.jar包中的java\lang\String.class),


报错信息说没有main方法就是因为加载的是rt.jar包中的String类。这样可以保证对java


核心源代码的保护,这就是沙箱安全机制


③. 沙箱安全机制作用:


保证程序安全


保护Java原生的JDK代码


④. JDK1.6时期,当前最新的安全机制实现,则引入了域(Domain)的概念


虚拟机会把所有代码加载到不同的系统域和应用域。系统域部分专门负责与关键资源进行


交互,而各个应用域部分则通过系统域的部分代理来对各种需要的资源进行访问。虚拟机


中不同的受保护域(Protected Domain),对应不一样的权限(Permission)。存在于不同域中


的类文件就具有了当前域的全部权限,如下图所示,最新的安全模型(jdk1.6)


微信图片_20220107140828.png


相关文章
|
28天前
|
存储 缓存 Java
金石原创 |【JVM盲点补漏系列】「并发编程的难题和挑战」深入理解JMM及JVM内存模型知识体系机制(1)
金石原创 |【JVM盲点补漏系列】「并发编程的难题和挑战」深入理解JMM及JVM内存模型知识体系机制(1)
37 1
|
10天前
|
监控 Java 关系型数据库
JVM工作原理与实战(十三):打破双亲委派机制-线程上下文类加载器
JVM作为Java程序的运行环境,其负责解释和执行字节码,管理内存,确保安全,支持多线程和提供性能监控工具,以及确保程序的跨平台运行。本文主要介绍了打破双亲委派机制的方法、线程上下文类加载器等内容。
14 2
|
1月前
|
安全 前端开发 Java
【JVM】双亲委派机制详细解读(通俗易懂)
【JVM】双亲委派机制详细解读(通俗易懂)
109 0
|
2月前
|
Java 应用服务中间件
深入理解JVM - 类加载器概述
深入理解JVM - 类加载器概述
18 0
|
2月前
|
安全 Java 程序员
深入理解jvm - 类加载过程
深入理解jvm - 类加载过程
50 0
|
3月前
|
缓存 安全 前端开发
JVM(类的加载与ClassLoader、双亲委派机制)
JVM(类的加载与ClassLoader、双亲委派机制)
|
存储 安全 算法
深入剖析JVM内存管理与对象创建原理
JVM内存管理,JVM运行时区域,直接内存,对象创建原理。
40 2
|
1月前
|
存储 算法 安全
【JVM】深入理解JVM对象内存分配方式
【JVM】深入理解JVM对象内存分配方式
29 0
|
1月前
|
Java 程序员
探讨JVM垃圾回收机制与内存泄漏
探讨JVM垃圾回收机制与内存泄漏
|
2月前
|
存储 缓存 算法
深入剖析Java中JVM的内存模型!!!
对于 Java 程序员来说,在虚拟机自动内存管理机制下,不再需要像C/C++程序开发程序员这样为内一个 new 操作去写对应的 delete/free 操作,不容易出现内存泄漏和内存溢出问题。正是因为 Java 程序员把内存控制权利交给 Java 虚拟机,一旦出现内存泄漏和溢出方面的问题,如果不了解虚拟机是怎样使用内存的,那么排查错误将会是一个非常艰巨的任务。
49 1