主题:Java反射机制

学习资料参考网址:

1.http://www.icoolxue.com

1、Java反射机制。

  各种框架中都使用到了Java的反射机制。

  两个类:java.lang.Class;java.lang.ClassLoader.

2、ClassLoader类。

  ClassLoader并非加载一次,是动态加载。需要的时候才加载。static语句块只执行一次。ClassLoader负责把类load到内存。

  当我们执行Java程序的时候,首先执行JVM,然后再把java class加载到JVM里运行,负责加载java class的这部分叫做class loader。JVM本身包含一个class loader,即bootstrap class loader。bootstrap class loader是用本地代码实现的,它负责加载核心的java class,另外JVM还提供两个由Java写的class loader,即extension class lodaer和application class loader。它们两个都由bootstrap class loader来加载。其中Extension class loader负责加载扩展的java class(如javax.*开头和JRE/ext目录下的类);application class loader负责加载应用程序自身的类。

3、JDK中常见的几个ClassLoader。(认识他们)

  bootstrap class loader,最核心的class Loader。其他的class loader都是由bootstrap class loader来loader进来的。当在控制台往出打印的时候,显示null。它是用C++编写的,从jre/lib中加载类。

  extension class loader。

  application class loader。我们自己定义的类,是由application class loader来loader进来的。

  URLclassloader。网上的一些类,由它来loader。它是SecureClassLoader的之类。

  classLoader的层次关系(不是继承关系,是层次关系;没有继承关系):bootstrap --> extension -->application(在application class loader中有一个引用,指向了extension class loader).所以,application.getParent--->指向了extension class lodaer.

  类加载的时候,追根溯源。找到最parent的class loader来加载。避免了病毒问题。”有什么事,先问他爸爸!”也就是说:一个class loader要加载一个类的时候,首先要查找其父加载器是否加载了,如果找不到,才由自己加载,这个过程一直往上递归处理。

4、程序运行中,class loader的运用。

  当一个程序启动的时候,JVM也随着启动,运行bootstrap class loader。该类加载器负责加载Java核心API(Extclasslodaer和Appclassloader),然后调用Extclassloader加载扩展API,最后Appclassloader加载CLASSPATH目录下定义的class。这即是一个程序最基本的加载流程。

5、

  

Java基础复习笔记系列 十三 反射机制的更多相关文章

  1. Java基础复习笔记系列 九 网络编程

    Java基础复习笔记系列之 网络编程 学习资料参考: 1.http://www.icoolxue.com/ 2. 1.网络编程的基础概念. TCP/IP协议:Socket编程:IP地址. 中国和美国之 ...

  2. Java基础复习笔记系列 八 多线程编程

    Java基础复习笔记系列之 多线程编程 参考地址: http://blog.csdn.net/xuweilinjijis/article/details/8878649 今天的故事,让我们从上面这个图 ...

  3. Java基础复习笔记系列 七 IO操作

    Java基础复习笔记系列之 IO操作 我们说的出入,都是站在程序的角度来说的.FileInputStream是读入数据.?????? 1.流是什么东西? 这章的理解的关键是:形象思维.一个管道插入了一 ...

  4. Java基础复习笔记系列 五 常用类

    Java基础复习笔记系列之 常用类 1.String类介绍. 首先看类所属的包:java.lang.String类. 再看它的构造方法: 2. String s1 = “hello”: String ...

  5. Java基础复习笔记系列 四 数组

    Java基础复习笔记系列之 数组 1.数组初步介绍? Java中的数组是引用类型,不可以直接分配在栈上.不同于C(在Java中,除了基础数据类型外,所有的类型都是引用类型.) Java中的数组在申明时 ...

  6. Java基础复习笔记系列 三

    前几节都是基础中的基础,从第三讲的笔记开始,每次笔记针对Java的一个知识块儿.  Java异常处理 1.什么是异常? 异常是指运行期出的错误.比如说:除以一个0:数组越界:读取的文件不存在. 异常处 ...

  7. Java基础复习笔记系列 二

    1.Java中Static的相关用法总结?(静态方法:静态变量:静态代码块) public static void main(String args[])执行的关键,在于有static.有了stati ...

  8. Java基础复习笔记基本排序算法

    Java基础复习笔记基本排序算法 1. 排序 排序是一个历来都是很多算法家热衷的领域,到现在还有很多数学家兼计算机专家还在研究.而排序是计算机程序开发中常用的一种操作.为何需要排序呢.我们在所有的系统 ...

  9. Java基础学习笔记二十三 Java核心语法之反射

    类加载器 类的加载 当程序要使用某个类时,如果该类还未被加载到内存中,则系统会通过加载,链接,初始化三步来实现对这个类进行初始化. 加载就是指将class文件读入内存,并为之创建一个Class对象.任 ...

随机推荐

  1. 1121冬至!!!巩固HTML基础第一堂

    今天只是把以前的知识巩固了一下.温故而知新,说的一点没错: 又新明白了一种居中对齐方法: 水平居中:align left(左侧对齐),center(居中对齐) 垂直居中:ralign top(上对齐) ...

  2. html_01之基础标签

    1.嵌套规则:①行内不能嵌套块:②p不能嵌套块:③非布局元素不要嵌套div: 2.标准属性:①id:定义元素唯一名称(a.布局时用:b.JS用):②title:鼠标移入时提示的文字:③class:定义 ...

  3. 快速入门系列--WCF--08扩展与新特性

    最后一章将进行WCF扩展和新特性的学习,这部分内容有一定深度,有一个基本的了解即可,当需要自定义一个完整的SOA框架时,可以再进行细致的学习和实践. 服务端架构体系的构建主要包含接下来的几个要素:服务 ...

  4. Nexus3.0私服搭建

    官方文档:http://books.sonatype.com/nexus-book/3.0/reference/install.html 1.下载 http://www.sonatype.com/do ...

  5. KendoUI系列:ComboBox

    1.基本使用 1>.创建Input <input id="color" placeholder="Select Color..." /> &l ...

  6. VS 添加Snippets

    Code Snippet 下载文件: propfull.7z copy到C:\Users\哲\Documents\Visual Studio 2013\Code Snippets\Visual C#\ ...

  7. SQL*Loader之CASE2

    CASE2 1. 控制文件 [oracle@node3 ulcase]$ cat ulcase2.ctl -- NAME -- ulcase2.ctl - SQL*Loader Case Study ...

  8. Hadoop官方文档翻译——MapReduce Tutorial

    MapReduce Tutorial(个人指导) Purpose(目的) Prerequisites(必备条件) Overview(综述) Inputs and Outputs(输入输出) MapRe ...

  9. Nutch源码阅读进程1---inject

    最近在Ubuntu下配置好了nutch和solr的环境,也用nutch爬取了一些网页,通过solr界面呈现,也过了一把自己建立小搜索引擎的瘾,现在该静下心来好好看看nutch的源码了,先从Inject ...

  10. jQuery 插件简单模板

    /*! * Copyright yunos.com All rights reserved. * jquery.scrollspy.js * @author v10258@qq.com * @vers ...