1. ClassLoader基本概念
    Java程序并不是一个可执行文件,而是由许多独立的类文件组成的,每一个文件对应一个Java类。这些类文件并非全部装入内存,而是根据程序需要逐渐载入。并且ClassLoader是JVM实现的一部分。
  2. ClassLoader加载流程
    当运行一个程序的时候,JVM启动,运行bootstrap classloader,该ClassLoader加载Java核心API,然后调用ExtClassLoader加载扩展API,最后AppClassLoader加载CLASSPATH目录下定义的Class。
另:类加载的过程使用了一种父类委托模式,主要原因是避免重复加载,还有出于安全因素的考虑。
  1. 一些重要的方法

    • loadClass方法,是ClassLoader的入口点
    class loadClass(String name, boolean resolve)
    • defineClass方法,接受由原始字节组成的数组,并把它转换成Class对象

    • findSystemClass方法,从本地文件系统装入文件

    • resolveClass方法,可以不完全装入类,也可以不完全装入类
    • findLoadedClass方法,允当一个缓存:
    当请求loadClass装入类时,它调用该方法来查看ClassLoader是否已装入这个类,这样可以避免重新装入已存在类所造成的麻烦
    • findClass方法,从本地文件系统使用实现的类装载器装载一个类
    • getSystemClassLoader方法
    • forName方法,Class类的一个静态方法
    Class.forName()调用Class.forName(name, initialize, loader);也就是说Class.forName("something");等同于Class.forName("something", true, CALLCLASS.class.getClassLoader());

转载于:https://www.cnblogs.com/zhazhapan/p/java_classloader_primary.html

Java之ClassLoader基础知识相关推荐

  1. 第76节:Java中的基础知识

    第76节:Java中的基础知识 设置环境,安装操作系统,安装备份,就是镜像,jdk配置环境,eclipse下载解压即可使用,下载tomcat 折佣动态代理解决网站的字符集编码问题 使用request. ...

  2. 【Java】【基础知识】【Java的基本使用】

    [Java][基础知识][Java的基本使用] 基于jdk8 仅个人理解,或有疏漏 基于 java疯狂讲义 第三版和第四版 java核心技术卷一 第十版和第十一版 廖雪峰java课程 一.基本数据与结 ...

  3. java 网络爬虫 正则表达式_【干货】Java网络爬虫基础知识

    原标题:[干货]Java网络爬虫基础知识 引言 Java 网络爬虫具有很好的扩展性可伸缩性,其是目前搜索引擎开发的重要组成部分.例如,著名的网络爬虫工具 Nutch 便是采用 Java 开发,该工具以 ...

  4. Java核心技术卷一基础知识第10版demo实例

    Java核心技术卷一基础知识第10版demo实例 第三章 JAVA的基本程序设计结构 3.7输入与输出 3.7.1读取输入 3.8控制流程 3.8.3循环 3.10数组 3.10.6多维数组 第四章 ...

  5. java的一些基础知识(引用BlogJava 落花飞雪)

     java的一些基础知识(引用BlogJava 落花飞雪) <Practical Java>笔记 1. 声明是什么? String s = "Hello world!" ...

  6. 黑马程序员 一、java 概述与基础知识

    获取更多资源关注Java帮帮IT资源分享网 一.黑马程序员-java 概述与基础知识 1.何为编程? 编程就是让计算机为解决某个问题而使用某种程序设计语言编写程序代码,并最终得到结果 的过程. 为了使 ...

  7. java to go 基础知识与区别入土指南

    java to go 基础知识与区别入土指南 文章目录 java to go 基础知识与区别入土指南 @[toc] 基础篇 关于基础类型 关于复合数据类型 关于切片 关于Map 关于sync.map ...

  8. Java 网络编程基础知识

    Java 网络编程基础知识 基础概念 计算机网络的基本概念 ​ 网络:多台计算机使用网络设备互联在一起,计算机之间可以进行通信,这样就组成了一个计算机网络. ​ 网络设备:集线器(HUB),路由器,交 ...

  9. 4 万字超强总结!Java 这些必备基础知识不可少

    点击「关注」公众号,回复"1024"获取2TB学习资源! 什么是Java Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承.指针等概 ...

最新文章

  1. zookeeper -- Mac 上 Intellij IDEA 配置 zookeeper(3.5.8) 源码阅读、运行、调试环境
  2. js如何获得FCKeditor控件的值
  3. 国内做事就要高调——财富人生:邹果庆:中国新蛋网总裁
  4. 符号引用(typeglob,别名)与全局变量的修改
  5. python3精要(20)-函数(1)
  6. Docker 学习应用篇之一: 初识Docker
  7. 如何远程调试部署在CloudFoundry平台上的nodejs应用
  8. dockerfile中的run_Docker3-Dockerfile创建镜像的方法(推荐docker file这种方法)
  9. IPV4与IPV6的区别(史上最详细)
  10. 使用DocFx生成文档网站并将其发布到GitHub Pages
  11. 计算机视觉图像去噪原理,图像去噪方法研究进展
  12. pandas之map(), apply()和applymap()
  13. Java空字符串与null区别
  14. 51 nod 最长公共子序列问题(打印路径)
  15. node koa2 mysql_Node.js + Koa2 + MySQL + Vue.js 实战开发一套完整个人博客项目网站
  16. 撤销工作表保护密码忘记了怎么办?
  17. 李健清华计算机专业,计算机DeepWeb数据库的分类研究李健
  18. FatalThrowableError in Encrypter.php line 66: Call to undefined function openssl_encrypt()
  19. 计算机在日常办公众的应用论文,计算机及应用基础专业论文.docx
  20. C++笔试笔记1(4399 西山居 深信服 剑心互娱 快手)

热门文章

  1. 贝叶斯分类器的matlab实现_贝叶斯实验
  2. 【杂谈】篇篇精华,有三AI不得不看的技术综述(超过100篇核心干货)
  3. 【每周CV论文】初学深度学习图像风格化要读的文章
  4. 【知识星球】有三AI编程与开源框架正式开通
  5. 【AI不惑境】网络深度对深度学习模型性能有什么影响?
  6. 【AI初识境】如何增加深度学习模型的泛化能力
  7. 中国二氧化碳激光器行业现状研究与可行性分析报告2022-2028年版
  8. 仅通过崩溃地址找出源代码的出错行
  9. VC++下Window剪贴板的操作
  10. 第四届泉水文化论坛协调会-商协社团:平台经济谋定水产业