Java入门之了解JVM(22)
启动类加载器:用于加载 JAVA_HOME\lib 或者通过 -Xbootclasspath 指定路径下的class文件或jar
扩展类加载器:用于加载 JAVA_HOME\lib\ext 目录下的class文件或jar
应用程序类加载器:用于加载应用 classpath 下的class文件或jar
对于JVM来说只有两种类型的类加载器:Bootstrap ClassLoader 和 其他继承了java.lane.ClassLoader的ClassLoader;其中Bootstrap ClassLoader是用C++实现的;如图所示,这个双亲委派模型的ClassLoader并不是通过继承来去实现的,而是通过组合的方式实现的;双亲委派模型主要目的是为了防止对class文件被不同的类加载器多次被加载导致生成没必要的class对象;要求子ClassLoader在接收到需要加载某个class文件请求时,尽量将其提交给自己的父ClassLoader去加载,直到父ClassLoader表明无法加载时才自己进行加载;双亲委派模型并不是一个强制的约束模型,而是设计者推荐的模型,所以大部分都是按照这个模型去实现的;简单介绍一下JVM
JVM的全称叫Java Virtual Machine,即java虚拟机java之所以能够跨平台,全因为JVM的功劳java通过编译器将其源码编译成JVM所识别的字节码(这是一种中间码,介乎于机器码和高级语言之间),来运行java程序,而不是像C/C++那样直接编译成机器码运行,即不论在什么平台,只要能够装上JVM就能够运行java的程序目前除了Java之外,如近年兴起的Kotlin也是基于JVM的(当然还有其它),所以千万不要以为JVM只能运行java程序,准确点说JVM识别的是字节码而不是java程序,所以不管是什么语言,只要自身能够编译成JVM能够识别的字节码就可以运行在JVM上,即也就能够跨平台了推荐书籍《深入理解Java虚拟机》JVM运行时数据区域
推荐阅读
- 唐僧|tap评分高达9.1,《黑色沙漠》手游终于要来了,你了解了吗?
- viper|最佳外援是VIPER,新任FMVP坐不住了?本土选手机制了解一下
- lpl|LPL为何处理不了猫咪,自身了解太浅,根本不重视S11!
- 传奇|我们玩传奇3不仅仅是游戏,更是情怀和回忆,这款手游你了解吗?
- t1|vivo T1究竟值不值得购买?看了这些后你可能有更深了解
- 使命召唤18|王者荣耀 想要轻松上分英雄克制关系了解一下 公孙离克制上官婉儿
- 暗黑破坏神2|《暗黑破坏神2》七种职业!那个才是最适合新手的入门职业!
- s6|金铲铲之战:测试服内容抢先看,5分钟带你了解S6赛季的变化
- 电影|“王者宇宙”全面开启,三分钟了解官方后续动作,你想要的全都有
- 米哈游|米游社三周年,米哈游游戏的必备软件,你了解多少?