「java内部类加载」java 静态内部类加载

博主:adminadmin 2022-11-25 09:25:06 58

今天给各位分享java内部类加载的知识,其中也会对java 静态内部类加载进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

java 中静态内部类字段什么时候初始化?是在外部类加载的时候就初始化吗?

首先分析下名字:静态内部类

静态是static。静态的方法或者参数是随着类的加载而产生的(感觉应该是JVM启动时static属性就加载了。)。这就是为什么不用实例化类,就可以调用它的原因。

内部类:用内部类是因为内部类与所在外部类有一定的关系,往往只有该外部类调用此内部类。其他类不会调用。所以没必要另写一个类。外部类可以调用内部类。而内部类不能调用外部类的方法。

所以我觉得

静态内部类中的属性,方法,是在外部类加载的时候初始化的。

希望对您有帮助。如果有问题请自行

谷歌

度娘.

java中静态内部类什么时候加载

只有在加载内部类的时候才初始化

看懂以下的代码,那么对于类的加载,基本上就没问题了,最后类的加载过程的解释

public class Test6 {

public static void main(String[] args){

new B();

new A.C();

}

}

class A{

private P p1 = new P("A--p1");

static P p3 = new P("A--p3");

public A(){

System.out.println("A()");

}

private P p2 =new P("A--p2");

static{

new P("A--static");

}

{new P("A{...}");}

public static class C {

private P p1 = new P("C--p1");

static P p3 = new P("C--p3");

public C(){

System.out.println("C()");

}

private P p2 =new P("C--p2");

static{

new P("C--static");

}

{new P("C{...}");}

}

}

class B extends A {

private P p1 = new P("B --p1");

static P p3 = new P("B -- p3");

public B() {

System.out.println("B()");

}

public P p2 = new P("B -- p2");

static {

new P("B -- static");

}

{new P("B{...}");}

}

class P {

public P(String s) {

System.out.println(s);

}

}

/*

有父类的情况

1. 加载父类

1.1 为静态属性分配存储空间并赋初始值

1.2 执行静态初始化块和静态初始化语句(从上至下)

2. 加载子类

2.1 为静态属性分配存储空间

2.2 执行静态初始化块和静态初始化语句(从上至下)

3. 加载父类构造器

3.1 为实例属性分配存数空间并赋初始值

3.2 执行实例初始化块和实例初始化语句

3.3 执行构造器内容

4. 加载子类构造器

4.1 为实例属性分配存数空间并赋初始值

4.2 执行实例初始化块和实例初始化语句

4.3 执行构造器内容

5 回到main()

内部类的加载过程也一样

java中的静态内部类的特点是什么?

需要了解2个概念:内部类和静态修饰符static1)首先,用内部类是因为内部类与所在外部类有一定的关系,往往只有该外部类调用此内部类。所以没有必要专门用一个Java文件存放这个类。2)静态都是用来修饰类的内部成员的。比如静态方法,静态成员变量,静态常量。

它唯一的作用就是随着类的加载(而不是随着对象的产生)而产生,以致可以用类名+静态成员名直接获得。这样静态内部类就可以理解了,因为这个类没有必要单独存放一个文件,它一般来说只被所在外部类使用。

并且它可以直接被用 外部类名+内部类名 获得。以下举例说明怎么使用:Student类有个叫School的内部类(非静态)Student stu = new Student();stu.School sch = new stu.School();sch就是School的一个对象。假如School是内部静态类:Student.School sch = new Student.School()。

关于java内部类加载和java 静态内部类加载的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

The End

发布于:2022-11-25,除非注明,否则均为首码项目网原创文章,转载请注明出处。