JVM 真的很难学么?不、只是你“不敢学”而已 许多招聘的信息上面都说,要了解jvm、多线程什么的对于 java 程序员来说,这是工作好多年的程序员都不一定能掌握的东西,但是面试就会问啊,你不掌握咋整你说? 为什么面试会问呢? 因为面试时间就那么一个小时半个小时的,问不出什么东西,所以许多面试官都会问什么是类加载、jvm的结构、垃圾回收算法啊什么的,网上有很多的理论知识,我们背一背和面试官聊一聊就完事了,或者有的面试管技术实力很强问的很细节这时候如果掌握的不是很好的话就会被问懵逼 例如: 什么是类加载器? 类加载器都有哪些? 如何自定义自己的类加载器? 什么是双亲委托机制? 双亲委托机制的好处和问题? 那么双亲委托机制的问题如何解决的? 那么类是如何加载的? 类的加载和接口的加载有什么区别和注意事项? 类的初始化步骤是什么? 类的主动使用和被动使用都有什么? 什么时候类会被卸载? 什么是类的命名空间? 但是作为一个java程序员这些东西如果掌握了的话对自己的好处是显而易见的,遇见面试官你“喷他”就完了(学完之后) 先从比较好理解的jvm的类加载器开始学习:从第一个问题开始来 2、类加载器都有哪些 3、如何自定义自己的类加载器? 用户要创建自己的类加载器,只需要扩展java.lang.ClassLoader类,然后覆盖它的findClass(String name) 方法即可,该方法根据参数指定的类的名字,返回对应的Class对象的引用 4、什么是双亲委托机制? 当java程序请求加载器loader加载一个类时.加载器loader先去请求其父类去加载它当前要加载的类,若父加载器无法加载当前要加载的类,则加载器loader本身才去加载当前所要加载的类 5、双亲委托机制的好处和问题? 可以确保Java核心库的安全,所有的ava应用都会引用java.lang.Object类也就是说在运行期java.lang.Object这个类会被加载到java虚拟机中,如果这个加载过程是由我们自己的类加载器完成的,那么很可能就会在jvm中存在多个版本的java.lang.Object类,而且这些类之间还是不兼容的,相互不可见的(正是命名空间的存在导致的),但是由于双亲委托机制的存在Java核心库中类的加载工作都是由根类加载器所加载的,从而确保了Java应用所使用的都是同一个版本Java核心类库,他们之间都是相互兼容的 问题 实例场景说明:在双亲委托模型下,类加载器是由下至上的,即下层的类加载器会委托上层类加载器加载。但是对于SPI来说,有些接口是java核心库所提供的而java核心库是由启动类加载器加载的,而这些接口的实现确是来自于不同的jar包,java的启动类加载器是不会加载其他来源的jar包的,这样传统的双亲委托模型就无法满足SPI的要求。(jdbc链接数据库问题)还有好多场景能打破双亲委托机制 6、那么双亲委托机制的问题如何解决的? 传统的双亲委托模型就无法满足SPI的要求。而通过给当前线程设置上下文类加载器,就可以由设置的上下文类加载器来实现对于接口实现类的加载。(利用上下文类加载器) 7、那么类是如何加载的?(见下图) 比如类加载了它的父类一定会被加载,但是如果是接口被加载了但是它的父级接口不一定被加载 9、类的初始化步骤是什么? 10、类的主动使用和被动使用都有什么? 被动使用: 11、什么时候类会被卸载? 12、什么是类的命名空间? 13、类加载器之间的关系 更多的类加载的详情我整理了一份jvm的类加载的知识点如下图(需要的请留言)


1、什么是类加载器?
Java类加载器是Java运行时环境的一部分,负责动态加载Java类到Java虚拟机的内存空间中
好处
可以确保Java核心类库所提供的类不会被自定义的类所替代

8、类的加载和接口的加载有什么区别和注意事项?
主动使用:
除了上面的7种情况,其他使用java类的方式都被看做是对类的被动使用,都不会导致类的(初始化,但并不意味着类不进行加载和连接)所有的java虚拟机的实现必须在每个类或接口被java程序(首次主动)使用时才初始化他们
当一个类经历被加载、链接、初始化三个步骤后它的生命周期就开始了。当该类初始化生成的对象不在被引用的时候,Class对象就会结束生命周期。该类在方法区内的数据也会被卸载,从而该类的生命周期就结束了。所以一个类何时结束生命周期,取决于代表它的Class对象何时结束生命周期(即没有被引用)
类的命名空间是由类的名称以及类的加载器和加载器的所有父级别的加载器一起构成的
加载器顺序:用户自定义加载 -> 系统类加载器 -> 扩展类加载器 -> 根加载器



关注我,我会一直持续输出… 期待下一期的类加载的实例学习
与君共勉 …
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算
官方软件产品操作指南 (170)