深入理解java虚拟机(周志明)
qq_53294028
这个作者很懒,什么都没留下…
展开
-
31_通过JDBC驱动加载,理解线程上下文类加载器机制
参数分别为:输入的类名,加载时是否对其初始化,调用forName方法的类加载器,调用者(类)调用forName过程首先对DriverManager初始化所以,会使用将mysql自身的驱动注册到DriverManager上获取到调用该方法的类三个参数分别为:mysql的驱动,加载时是否初始化,传入的类加载器上图中,判断是否由同一个...原创 2019-10-26 18:44:31 · 198 阅读 · 0 评论 -
27_线程上下文类加载器分析与实现
设置线程上下文的类加载器下列2个输出,应该是什么?将应用类加载器默认赋值给当前线程的类加载器通过Mysql的jdbc驱动举例:上图中,第一行代码中,只给一个驱动的接口,该接口是顶层接口,由启动类加载器加载。下面几行代码,就能找到具体的由APPClassLoader类加载器加载的驱动实现为什么?说好的命名空间呢?serviceLoader,主要是加载服...原创 2019-10-26 17:56:24 · 126 阅读 · 0 评论 -
26_自定义系统类加载器源码分析与forName方法底层剖析
源码:获取APPClassLoader时,传入extcl,把他作为双亲上图中,为当前执行的线程设置上下文类加载器,也就是APPClassLoader上图中,为安全管理器的一些代码返回的也就是应用类加载器在ClassLoader中ClassLoader类中上文中可以看出,if(cls != null)也就是说,可以将自己设置的类加载器作为系统类加载器使用。通...原创 2019-10-26 08:31:05 · 121 阅读 · 0 评论 -
25_Launcher类源码分析
浏览源代码的网站上文中,count为扩展类加载器加载的路径个数上图中,校验有没有权限这么做原创 2019-10-26 07:31:54 · 93 阅读 · 0 评论 -
24_平台特定的启动类加载器深入分析与自定义系统类加载器详解
运行结果:上述实在Java程序中运行的结果。若是在控制台上通过命令运行系统会根据你运行的目录的不同,生成相应的目录通过上截图,可以看出,应用类加载器的加载目录为.也就是当前目录下图就是.(点)目录总结:若是将根加载器加载目录修改下改成当前目录虚拟机初始化的时候出错,先加载Object类找不到object类,虚拟机就启动不起来疑问:类加载器将类加载到虚拟...原创 2019-10-25 22:59:04 · 179 阅读 · 0 评论 -
23_类加载器命名空间总结与扩展类加载器要点分析
将扩展类加载器的加载目录改为当前文件夹按照经验,应该是使用扩展类加载器加载但是结果:还是使用应用类加载器加载原因:是因为,扩展类加载器,并不能直接加载class文件,而是加载jar包演示:将MyTest1.Class打包再次运行刚才的命令将命令改动下将扩展类加载器加载目录修改为根目录下因为此时,扩展类加载器在此目录下找不到该MyTest.Class...原创 2019-10-25 21:59:31 · 102 阅读 · 0 评论 -
22_不同类加载器命名空间关系
将系统中的MyPerson.Class文件拷贝到桌面,删除系统的MyPerson.Class运行结果为:奇怪的异常,怎么来的呢?一个对象调用另一个对象,2个对象相互不可见,它们的class文件在内存中就不同,也就是模板不同,就像是美元不能强转为人民币一样...原创 2019-10-25 13:00:58 · 92 阅读 · 0 评论 -
类加载器加载目录修改后,如何运行
输出这三个路径参数的值APPClassLoader加载的目录,含有:也就是编译后,class文件存放路径代码:根类加载器的加载目录有一个是:如果,把自己编写的Class文件放在这里,能不能被根加载器加载?输出结果为:是使用根类加载器加载的,将此目录删除后,再次运行对于扩展类加载器改造扩展类加载器的系统属性:将扩展类加载器所寻找的目录改为当前目...原创 2019-10-25 12:40:17 · 198 阅读 · 0 评论 -
20_类加载器命名空间实战剖析与透彻理解
MyCat是谁加载的呢?上文代码中,加载MySample的加载器,在使用MyCat的时候,去加载它。如果,项目中删除MyCat.Class文件,当APPClassLoad不能加载它,自定义加载器明明可以加载它时,若MySample.Class被应用类加载器加载,那么MyCat.Class会被APPClassLoader和它的双亲尝试加载,但是都不能成功,若MyCat.Class加载不成功,直...原创 2019-10-25 08:53:08 · 131 阅读 · 0 评论 -
19_自定义类加载器在复杂类加载情况下的运行分析
没有使用的类,一般不会加载,但是不一定,只是可能性比较大。原创 2019-10-24 20:16:34 · 88 阅读 · 0 评论 -
18_类的命名空间与卸载详解及jvisualvm使用
类的卸载原创 2019-10-24 19:21:02 · 105 阅读 · 0 评论 -
17_类加载器双亲委托机制实例深度剖析
上文中loadClass方法后边一个参数改为false,它表示一个标识符,如果类被找到,置为truefindClass(name)为自己重写的方法加载Class对象代码的执行结果:说明自己定义的findClass方法没有被执行为什么呢?因为,它先委托父加载器,父加载器是可以加载的,所以。。。。。。加载系统的类的时候,使用app类加载器...原创 2019-10-24 12:33:16 · 114 阅读 · 0 评论