java 代码
-
- public class Test {
-
- public static void main(String[] args) {
-
- Class c;
- ClassLoader cl,cl1;
- cl=ClassLoader.getSystemClassLoader();
- System.out.println(cl);
- while(cl!=null){
- cl1=cl;
- cl=cl.getParent();
- System.out.println(cl1+"'s parent is "+cl);
- }
-
-
- try{
-
- c=Class.forName("java.lang.Object");
- cl=c.getClassLoader();
- System.out.println("java.lang.Object's loader is "+cl);
-
- c=Class.forName("Test");
- cl=c.getClassLoader();
- System.out.println("Test's loader is "+cl);
-
-
- }catch(Exception e){
-
-
- }
-
-
-
- }
-
- }
运行结果:
sun.misc.Launcher$AppClassLoader@19821f
sun.misc.Launcher$AppClassLoader@19821f's parent is sun.misc.Launcher$ExtClassLoader@addbf1
sun.misc.Launcher$ExtClassLoader@addbf1's parent is null
java.lang.Object's loader is null
Test's loader is sun.misc.Launcher$AppClassLoader@19821f
注意红色区域的运行结果.之所以最后他们返回的父加载根加载器为NULL的原因是因为JAVA虚拟机并不会向JAVA程序提供根类加载器的引用,而是返回NULL来表示根类加载器,这样做是为了保护JAVA虚拟机的安全,防止黑客利用根加载器来加载非法的类,从而破坏JAVA虚拟机的核心代码.
分享到:
相关推荐
这个类加载器没有父类加载器,因为它本身是由C++编写并在JVM启动时初始化的。 2. **扩展类加载器(Extension ClassLoader)**:它负责加载`$JAVA_HOME/lib/ext`目录下的类库或由`java.ext.dirs`系统变量指定的路径中...
- 每个类加载器都有一个父类加载器(除了根类加载器)。 - 请求加载类只能传递给父类加载器,而不能从子类加载器加载类。 ##### 类加载器概述(续) 3. **委托模式:** - 每个类加载器都有一个可配置或不可配置...
1. 一致性规则:每个类加载器维护一个名字空间,确保同一个类不能被同一个类加载器加载两次。这意味着不同类加载器加载的同名类是相互独立的,不能直接交互。 2. 委托规则:在加载类之前,类加载器总是先询问其父...
综上所述,这个"CSS3绘制6根彩色横条加载特效"涵盖了CSS3的多个核心特性,包括伪类选择器、渐变、动画、Flexbox布局以及响应式设计。通过理解和掌握这些技术,开发者能够创建出更富吸引力和用户体验的网页加载特效。
1. **Bootstrap类加载器**(根类加载器):负责加载JRE核心库,如rt.jar。 2. **Extension类加载器**:加载扩展库,如jre/lib/ext目录下的jar文件。 3. **System类加载器**(应用类加载器):加载用户类路径...
1. **内置类加载器**:包括根类加载器(Bootstrap,C++实现)、扩展类加载器(Extension,Java实现)和系统类加载器(System或AppClassLoader,加载应用类路径上的类)。 2. **用户自定义类加载器**:允许开发者创建...
JVM通过类名、类所在的包名及类加载器的实例ID来唯一标识一个类。 2. **执行引擎**:执行字节码,处理本地方法调用。这是JVM的核心组件,负责解释执行Java字节码指令,或调用本地方法库中的方法。 3. **运行时数据...
所有JVM都内置了一个特殊的类装载器——根装载器(Bootstrap ClassLoader),它负责装载Java核心类库。当需要装载非设计时已知的类时,则需要使用用户自定义的类装载器。 #### 实例演示 以下是一个简单的示例,...
类加载器分为Bootstrap ClassLoader(根类加载器)、Extension ClassLoader(扩展类加载器)和Application ClassLoader(系统类加载器),遵循双亲委派机制。 8. **访问修饰符**:Java的访问修饰符有private、...
- 每个类加载器都有其特定的职责范围,包括从不同的位置加载类。 - **三种默认类加载器:** - **Bootstrap ClassLoader (启动类加载器):** 负责加载核心类库,如rt.jar中的类。它是所有类加载器的父类加载器,且...
xloadtree 是一个JavaScript库,用于创建具有上述特性的树形控件。它允许开发者通过WebFXLoadTree对象来构建异步加载的树结构。WebFXLoadTree是基于WebFX库的一个扩展,WebFX是一个强大的JavaScript库,提供了许多...
ClassLoader分为启动类加载器、扩展类加载器和应用程序类加载器,加载顺序是从父到子,即先由启动类加载器加载,然后扩展类加载器,最后是应用程序类加载器。用户自定义的类加载器通常在应用程序类加载器之后进行...
7. **配置启动**:更新设备的引导加载器(如u-boot)配置,使其能够初始化ubi并挂载根文件系统。这可能涉及到修改bootcmd_script环境变量或者设备树源码。 在整个过程中,你可能需要关注的一些关键点包括:正确配置...
这部分通常涉及引导加载器如何加载内核和根文件系统映像,以及系统启动后的初始化过程。 ### 第四部分:总结 这一章节是对整个内核移植和根文件系统制作过程的回顾,强调了关键步骤和注意事项,有助于开发者巩固所...
在Web应用开发和部署中,Apache Tomcat是一个广泛使用的开源Servlet容器,它用于提供运行Java代码的环境,使Java代码能够在Web服务器上运行。Tomcat作为Jakarta EE技术的一部分,经常被用来作为独立的Web服务器或与...
Java垃圾回收机制是Java语言中的一个重要特性,它自动管理程序中的内存,避免程序员手动进行内存管理,从而减少了程序出现内存泄漏或悬挂指针的风险。在Java中,对象的生命周期分为创建、使用和垃圾回收三个阶段。 ...
类加载器从根加载器开始,按层次结构逐级加载类。JVM提供了三种类加载器:Bootstrap ClassLoader、Extension ClassLoader和Application ClassLoader,分别用于加载Java核心类库、扩展类库和应用程序类库。此外,JVM...
- **根加载器(Bootstrap ClassLoader)**: 最基础的类加载器,加载Java核心类库。 - **扩展加载器(Extension ClassLoader)**: 加载扩展目录下的类库。 - **应用加载器(Application ClassLoader)**: 默认的类...