类加载class loader
Class装载验证流程:
- 加载:取得类的二进制流,转为方法区的数据结构,在java堆中生成对应的java.lang.class对象
- 链接:就是将已经读入到内存的类的二进制数据合并到虚拟机的运行时环境中去。
l 验证:保证class流的格式正确
l 准备:为类的静态变量分配内存,并设置默认的初始值(方法区中)
l 解析:符号引用转化为直接引用
- 初始化:执行类的构造器。Static语句、变量,调用父类构造器
ClassLoader:
l ClassLoader负责类装载过程中的加载阶段
l ClassLoader的实例将读入Java字节码将类装载到JVM中
l ClassLoader可以定制,满足不同的字节码流获取方式
l ClassLoader是一个抽象类
分类:
l BootStrap ClassLoader (启动ClassLoader)
l Extension ClassLoader (扩展ClassLoader)
l App ClassLoader (应用ClassLoader/系统ClassLoader)
l Custom ClassLoader(自定义ClassLoader)
每个ClassLoader都有一个Parent作为父类

类加载class loader的更多相关文章
- jdbc驱动的类加载过程
这段时间跟类加载机制是干上了. 这一篇来分析一下jdbc工作过程中涉及到的类加载流程,重点是想看看在双亲委派模型不适用的时候,如何解决. 第一步,加载数据库的驱动 Class.forName(&quo ...
- 图解Tomcat类加载机制(阿里面试题)
Tomcat的类加载机制是违反了双亲委托原则的,对于一些未加载的非基础类(Object,String等),各个web应用自己的类加载器(WebAppClassLoader)会优先加载,加载不到时再交给 ...
- 8.6(java学习笔记)类加载过程及类加载器
一.类加载 1.加载 将class字节码加载到内存中,同时在方法区形成改类运行时数据结构. 同时在堆中产生一个Class对象,反射就是获取这个对象并对其进行操作. 2.链接 2.1验证:验证加载的类信 ...
- JDK动态代理
一.基本概念 1.什么是代理? 在阐述JDK动态代理之前,我们很有必要先来弄明白代理的概念.代理这个词本身并不是计算机专用术语,它是生活中一个常用的概念.这里引用维基百科上的一句话对代理进行定义: A ...
- AOP的实现原理
1 AOP各种的实现 AOP就是面向切面编程,我们可以从几个层面来实现AOP. 在编译器修改源代码,在运行期字节码加载前修改字节码或字节码加载后动态创建代理类的字节码,以下是各种实现机制的比较. 类别 ...
- AOP的实现机制--转
原文地址:http://www.iteye.com/topic/1116696 1 AOP各种的实现 AOP就是面向切面编程,我们可以从几个层面来实现AOP. 在编译器修改源代码,在运行期字节码加载前 ...
- AOP的实现机制
1 AOP各种的实现 AOP就是面向切面编程,我们可以从几个层面来实现AOP. 在编译器修改源代码,在运行期字节码加载前修改字节码或字节码加载后动态创建代理类的字节码,以下是各种实现机制的比较. 类别 ...
- 一个简单的Servlet容器实现
上篇写了一个简单的Java web服务器实现,只能处理一些静态资源的请求,本篇文章实现的Servlet容器基于前面的服务器做了个小改造,增加了Servlet请求的处理. 程序执行步骤 创建一个Serv ...
- 深度剖析JDK动态代理机制
摘要 相比于静态代理,动态代理避免了开发人员编写各个繁锁的静态代理类,只需简单地指定一组接口及目标类对象就能动态的获得代理对象. 代理模式 使用代理模式必须要让代理类和目标类实现相同的接口,客户端通过 ...
随机推荐
- java实现商品实时录入
//代表各的主页面 package com.gui; import java.awt.*; import javax.swing.*; import java.awt.event.*; import ...
- SharePoint Access Service-PowerShell
1. 配置应用程序Log文件大小 Set-SPAccessServiceApplication –Identity "Access Services" –ApplicationLo ...
- AJAX实现无刷新验证用户名
register.php <html> <head> <meta http-equiv="content-type" content="te ...
- 从零开始学C++之对象的使用(二):四种对象生存期和作用域、static 用法总结
一.四种对象生存期和作用域 栈对象 隐含调用构造函数(程序中没有显式调用) 堆对象 隐含调用构造函数(程序中没有显式调用),要显式释放 全局对象.静态全局对象 全局对象的构造先于main函数 已初始化 ...
- Android开发(24)---安卓中实现多线程下载(带进度条和百分比)
当我们学完java中多线程的下载后,可以将它移植到我们的安卓中来,下面是具体实现源码: DownActivity.java package com.example.downloads; import ...
- 密码配置配置SSH免密码登陆
在本文中,我们主要介绍密码配置的内容,自我感觉有个不错的建议和大家分享下 我的用户名是master 1.安装ssh(若没安装的话) sudo apt-get install ssh 2.配置为可以免密 ...
- 【汇编】字符串处理指令 stosb、lodsb、movsw、scasb、rep
一.字符串处理指令 (1) lodsb.lodsw:把DS:SI指向的存储单元中的数据装入AL或AX,然后根据DF标志增减SI (2) stosb.stosw:把AL或AX中的数据装入ES:DI指向的 ...
- springMVC框架中json处理
1.在项目中导入jackson-core.jar包 2.使用@ResponseBody注解,此注解会自动装换为json 如图: 3.如此,便可以得到json对象
- IONIC之简易购物车
HTML <div ng-app="app"> <div class="l-header"> <div class="l ...
- JavaScript中String.prototype.replace() 方法的使用
摘抄于:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/String/replace ...