Java内功之ClassLoader

众所周知,“书到用时方恨少,事非经过不知难”,在学生时代,被备考和考试所“折磨”过的同学尤其能体会其中的艰难。到了工作的当中尤其能够体会到这种艰难的时刻莫过与准备面试。所以为了减少面对时的痛苦,提前做好准备是很有必要的。胸有成竹,才能够行云流水。不管是正在准备着面试,还是在准备的路上,提前修炼好内功是很有必要地!希望能够这段话能够与读者以及未来的自己共勉!

Java的精髓莫过于其最大的优势——高可维护性。在Java工程师的面试过程中,JVM的基础知识是不可能迈过去的“槛”!这也是Java的内功之一。下面来聊一聊JVM的一个重点——ClassLoader。

偶然看到一道面试题:


题目:下面给出的Java中ClassLoader中的描述,哪些描述是正确的?()

A. ClassLoader没有层次关系

B. 所有类中ClassLoader都是AppClassLoader

C. 通过Class.ForName(String className),能够动态加载一个类

D. 不同的ClassLoader加载同一个Class文件,所得的类是相同的


可能是你已经有了正确的答案:C,没错。但是只是这个答案并不能够将你的Java内功完美地展现出来,得要抓取每个选项中的关键词进行讨论,并对其概念进行正确地论述,才能正确的打开方式!

下面取出其中的关键字:1. 层次关系;2. ClassLoader的存在形式;3. Class.ForName()方法;4. ClassLoader加载的过程;5. Class文件。

层次关系

ClassLoader的存在形式

Class.ForName()方法

ClassLoader加载的过程

Class文件

Class.ForName(),是根据一个类的名字,动态地实例化一个类。这种做法的常见场景:

1. 编写第三方的库;

2. 在实现OCP(开闭原则)的时候,对变化进行隔离,即进行防御性编程;

3. 常见于“Spring家族”中,实现依赖倒置(控制反转的思想)。

使用Class.ForName()可以不需要使用new关键字,而获取一个类的对象。这种做法取消了对类的显示依赖,既可以通过获取到的类的对象使用其方法。

下一篇文章,仔细讨论以上的5个关键词。

重修Java内功——书到用时方恨少相关推荐

  1. 西江月 - 书到用时方恨少

    西江月 - 书到用时方恨少 闲时无忧无虑,忙时百事着急,书到用时方恨少,临阵磨枪游戏. 革命尚未成功,我辈仍需努力,莫到竟时悔之矣,夕阳残照孤寂.

  2. 我的第一次应聘经历有感--书到用时方恨少

    大家好,我是CSDN论坛粉丝Channie,这是我第一次在博客上面写东西,有点不习惯有什么不够的地方希望大家指教. 先做个自我介绍吧,Channie,男,芳龄23,相貌俊朗,品格端正,未婚 ,哈说到哪 ...

  3. 老二牛车Axure夜话:程序员眼中的原型设计视频教程之书到用时方恨少

    案例描述:书到用时方恨少 这是一个经典的案例,作者曾经在培训机构工作期间发现很多的学员都很喜欢这样的课程 知识点: 动态面板的移动 动态面板改变大小 Axure循环操作 效果图: 在线效果预览: Ax ...

  4. 程矢Axure夜话:程序员眼中的原型设计视频教程之书到用时方恨少

    程矢Axure夜话:程序员眼中的原型设计视频教程之书到用时方恨少 案例描述:书到用时方恨少 这是一个经典的案例,作者曾经在培训机构工作期间发现很多的学员都很喜欢这样的课程 知识点: 动态面板的移动 动 ...

  5. 通宵总结!值得你收藏的Git命令清单(全),切莫书到用时方恨少

      坦白说,Git目前已经是国内最常见的代码管理工具之一:无论新手或老油条,都需要有一套自己的Git命令字典,方便随时使用.本文基本上涵盖了常用到的所有Git命令,足矣让我们得心应手的在公司使用Git ...

  6. 书到用时方恨少? 整理了一份初中、高中数学教材pdf 百度云

    码代码经常用到初中高中数学知识, 列个方程,弄个函数,画个圆公式什么的.结果发现早就忘了. 这里整理了一份初中.高中数学教材pdf 百度云,自取. 链接:https://pan.baidu.com/s ...

  7. incident用法_“我出事故了”书到用时方恨少,事故用“incident”还是“accident”?...

    同学们,学了十几年的英语 Incident VS. Accident 二者的区别及用法都还记得吗 你可能经常在新闻中听到人们 用accident和incident表示某事件 导致我们非常容易混淆这两个 ...

  8. 二进制取位操作。(愚蠢的人:书到用时方恨少)

    昨天写了一个关于位运算的困扰,今天又学习了一下才知道自己是多么的无知和愚蠢. 昨天的困惑: 16进制数:0X06AA4C 换算成24位2进制数:000001101010101001001100 数据定 ...

  9. 书到用时方恨少,试试运气好不好

    很多人经常问有没有一些生物信息的图书推荐,由于生物信息发展实在太快了,从图书规划到定稿,再到出版可能一年时间就过去了,这一年时间技术已经发生了很大的变化,所以文献和公众号是比较及时的信息.也有很多测序 ...

最新文章

  1. LINQ to SQL活学活用(1):这要打破旧观念
  2. [Javascript]编程风格
  3. 前端(五)——CSS之美化页面
  4. .net 操作xml
  5. html符号纵向,HTML常用特殊符号对照表与一些标签说明.pdf
  6. Eyjafjalla
  7. python中算法定义_python算法
  8. 洛谷 P1031 均分纸牌【交叉模拟】
  9. UI\UX实用素材模板|电子商务企业设计十大趋势
  10. 面试官问我什么是「栈」,我随手画了 10 张图来解释
  11. Linux 离奇磁盘爆满,如何解决? | 原力计划
  12. Bailian3719 学生信息用qsort排序【排序+字符串库函数】
  13. 总算完成了第一个项目,宿管系统,和感想
  14. 微信开放平台(公众号)API学习笔记(1)-公众号测试账户
  15. matlab2015使用dsolve错误,用matlab解常微分方程,调用dsolve是老出错 y=dsolve,用matlab解微分方程y=dsolve(’D2y+Dy2...
  16. python获取ip所在地详细地址_Python 获取本机 IP 地址
  17. 孕妇睡眠质量差怎么办?如何提高睡眠质量?
  18. 关注智能眼镜:tooz Devkit 20
  19. flask框架----跨域
  20. Android: How to Capture Screen in Gingerbread(2.3中实现截屏)

热门文章

  1. 批量下载二维码并打成zip压缩包
  2. 如何获取UEFI开源资源?
  3. 操作系统真象还原第9章:线程
  4. C++ 获取时间戳:下周一、月初、月中、月末
  5. ecdf函数的逆函数_如何区分反函数和逆函数
  6. “天问一号”火星车命名由来
  7. 动画特效五:灌水动画
  8. 题解 P2089 【烤鸡】
  9. 校园的数学课会结束,但人生的数学道路将永不止步
  10. 错失电商风口,国美还能让谁“真快乐”?