J V M(二)双亲委派机制及native
package java.lang;
public class String {
// 双亲委派机制: 安全
// 应用程序加载器-扩展程序加载器-根加载器
// 自底向上检查类是否被加载,自顶向下加载类
// 1.APP-->EXC--BOOT(最终执行) 根加载器叫bootstrapClassLoader
// 当前是应用程序加载器,它会先向上找,找到EXC
// 如果根加载器没有这个类,就开始倒着走,BOOT里面没有,就去EXT里面找,EXT也没有,就去APP里面找
public String toString(){
return "Hello";
}
public static void main(String[] args) {
String s = new String();
s.toString();
new Thread().start();
// native是一个计算机的函数,一个Native Method 就是一个Java调用非java代码的接口。
// 方法的实现由非java语言实现,例如C或者C++
// 在定义一个native method时,并不提供实现体(有些像定义一个Java Interface),
// 因为其实现体是由非Java语言在外面实现的。
// 标识符native可以与所有其它的java标识符连用,但是abstract除外。
// 这是合理的,因为native暗示这些方法是有实现体的,只不过这些实现体是非java的,
// 但是abstract却显然的指明这些方法无实现体。native与其它java标识符连用时,
// 其意义同非Native Method并无差别,
// 比如native static表明这个方法可以在不产生类的实例时直接调用,这非常方便,
// 比如当你想用一个native method去调用一个C的类库时。
}
// 1.类加载器收到类加载的请求
// 2.将这个请求向上委托给父类加载器去完成,一直向上委托,直到启动类加载器
// 3.启动类加载器检查是否能够加载当前这个类,能加载就结束,使用当前的加载器,否则,抛出异常,通知子加载器进行加载
// 4.重复步骤 3
// Class Not Found~
// null:java调用不到,或者不存在 C、C++
// java = C++--: 去掉繁琐的东西,指针,内存管理~ ---java中的内存管理交给了jvm
}
J V M(二)双亲委派机制及native的更多相关文章
- JVM 专题四:类加载子系统(二)双亲委派机制
2. 双亲委派机制 2.1 双亲委派机制工作原理 2.1.1 原理 Java虚拟机对class文件采用的是按需加载的方式,也就是说当需要使用该类时才会将它的class文件加载到内存,生成class对象 ...
- 深入探究JVM之类加载与双亲委派机制
@ 目录 前言 类的生命周期 加载 验证 准备 解析 初始化 案例一 案例二 案例三 案例四 类加载器 类加载器和双亲委派模型 破坏双亲委派模型 第一次 SPI Tomcat OSGI 总结 前言 前 ...
- java安全沙箱(一)之ClassLoader双亲委派机制
java是一种类型安全的语言,它有四类称为安全沙箱机制的安全机制来保证语言的安全性,这四类安全沙箱分别是: 类加载体系 .class文件检验器 内置于Java虚拟机(及语言)的安全特性 安全管理器及J ...
- 深入JVM系列(三)之类加载、类加载器、双亲委派机制与常见问题
一.概述 定义:虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验.转换解析和初始化,最终形成可以被虚拟机直接使用的java类型.类加载和连接的过程都是在运行期间完成的. 二. 类的 ...
- JVM学习六:JVM之类加载器之双亲委派机制
前面我们知道类加载有系统自带的3种加载器,也有自定义的加载器,那么这些加载器之间的关系是什么,已经在加载类的时候,谁去加载呢?这节,我们将进行讲解. 一.双亲委派机制 JVM的ClassLoader采 ...
- java类加载过程以及双亲委派机制
前言:最近两个月公司实行了996上班制,加上了熬了两个通宵上线,状态很不好,头疼.牙疼,一直没有时间和精力写博客,也害怕在这样的状态下写出来的东西出错.为了不让自己荒废学习的劲头和习惯,今天周日,也打 ...
- 浅谈JVM-类加载器结构与双亲委派机制
一.类加载器结构 1.引导类加载器(bootstrap class loader) 它用来加载Java的核心库(JAVA_HOME/jre/lib/rt.jar),是用原声代码来实现的,并不继承自ja ...
- Java的类加载器有几种?什么是双亲委派机制?
一.JAVA类加载器包括几种? 启动类加载器 bootstrap class loader 启动类加载器主要加载的是JVM自身需要的类,这个类加载是用C++语言实现的,是虚拟机自身的一部分,它负责将 ...
- JVM探究(一)谈谈双亲委派机制和沙箱安全机制
JVM探究 请你谈谈你对JVM的理解?java8虚拟机和之前的变化gengxin? 什么是OOM,什么是栈溢出StackOverFlowError JVM的常用调优参数有哪些? 内存快转如何抓取,怎么 ...
- 面试~jvm(JVM内存结构、类加载、双亲委派机制、对象分配,了解垃圾回收)
一.JVM内存结构 ▷ 谈及内存结构各个部分的数据交互过程:还可以再谈及生命周期.数据共享:是否GC.是否OOM 答:jvm 内存结构包括程序计数器.虚拟机栈.本地方法栈.堆.方法区:它是字节码运行时 ...
随机推荐
- LeetCode-429 N叉树的层次遍历
来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/n-ary-tree-level-order-traversal著作权归领扣网络所有.商业转载请联 ...
- mongodump导出mongodb中的数据
如果数据量小,用navicat或者其它客户端可以很方便的导出数据,但如果数据量比较大的话,建议用mongo官方工具 mongodump 下载地址: https://www.mongodb.com/tr ...
- Windows 干净启动
1. 卸载设备中全部的第三方反病毒软件与系统优化软件 (例如 360.腾讯电脑管家.鲁大师等).2. 按 "Windows 徽标键+R",输入 "msconfig&quo ...
- maven发布到本地仓库
<distributionManagement> <repository> <id>localRepository</id> <url>fi ...
- ORM框架——Dapper
1.什么是ORM ORM(Object Relational Mapping)对象关系映射,是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术,用于实现面向对象编程语言里不同类型系统的数据之 ...
- Android MVP框架 详细代码
android mvp的好处,网上一搜一大堆,相对于一开始普通的在activity中处理所有的不管是网络请求还是页面渲染,最大的好处是简洁了,废话不多说,看代码 这里网络请求使用了两种,一种是自己封装 ...
- P1886 滑动窗口 /【模板】单调队列
滑动窗口 /[模板]单调队列 题目描述 有一个长为 \(n\) 的序列 \(a\),以及一个大小为 \(k\) 的窗口.现在这个从左边开始向右滑动,每次滑动一个单位,求出每次滑动后窗口中的最大值和最小 ...
- SQL SERVER提示pre-login handshake failed错误的一种解决方法。
昨天在客户那里,遇到一个奇怪的问题.程序直接运行的时候,可以正常连接SQL SERVER; 但是使用Web Service连接SQL SERVER的时候,出现了下面的错误信息: Connection ...
- java中List的浅拷贝与深拷贝
List浅拷贝 众所周知,list本质上是数组,而数组的是以地址的形式进行存储. 如上图将list A浅拷贝给list B,由于进行的是浅拷贝,所以直接将A的内容复制给了B,java中相同内容的数组指 ...
- Linux系统Shell脚本第三章:for、while循环及脚本实操
目录 一.echo命令 二.查看当前系统的时间-date命令 三.for循环语句 四.while循环语句结构(迭代) 五.until 循环语句结构 六.continue和break 一.echo命令 ...