JVM初步理解(二)

1.沙箱安全机制

沙箱就是JAVA用来保证安全的一种体制,为了Java代码在JVM中运行时限制其访问的权限,从而保证安全,相当于网页的管理员和普通用户的感觉,访问的权限不同。也已经跟新了很多个版本。沙箱限制的是系统资源访问(CPU、内存、文件、网络)
JDK1.0版本
Java中的执行代码分为本地代码和远程代码,当时的初始设定就是所有的远程代码都是完全不可信的,直接将远程代码和本地资源分别开,不能进行访问,而本地代码则由最高的权限,可以访问一切资源。这样做虽然安全,但是做法太绝对了,远程代码完全不能访问本地的资源
在这里插入图片描述
JDK1.1
对上面的版本进行了一些改进,增加了安全策略,让用户可以给一部分的远程代码授权去访问本地的资源,但是这样也减少了一些的安全性,需要用户去判断代码是否安全。
在这里插入图片描述
JDK1.2
对1.1的安全机制进行了改进,增加了一个代码签名的验证过程。本地代码和远程代码都会按照用户设定的安全策略进行权限的分配,从类加载器加载到JVM的不同权限的位置来实现不同代码权限不同的操做。
在这里插入图片描述

最新
当前的安全机制引入了域,JVM会把所有代码加载到不同的系统域和应用于,系统域专门负责与关键的自愿交互,其他的域也会通过系统的代理对相应资源进行访问。
在这里插入图片描述

2.PC寄存器与关键字Native

程序计数器:(最不起眼的一个地方)
每个线程都有其私有的程序计数器,相当于一个指针,每次执行都会读取下一条的命令,展通内存极小
Native:
可以用带Native关键字的去调用底层C语言的库。也就是进入本地方法栈去调用本地方法接口JNI(作用:扩展Java的使用,可以用其他语言进行编写)。当时的c语言和c++语言是整个编程语言的顶峰,所以说Java提供了这样一个关键字可以使用C或者C++

3.方法区

方法区可以对所有线程共享,所有的字段、方法的字节码一些特殊的方法(构造函数,接口代码)都在这里定义,也就是所有定义的方法都保存在方法区,属于共享区间。
静态变量、常量、类信息(构造、接口)、运行时的常量都在方法区中,但是实例变量存在堆中,与方法去无关

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值