java static详解

全是干货!全是干货!全是干货!事先声明,这里仅是个人看法,后期有了深造会接着更新!谢谢大家!!


这里先看到static在类中可以做什么?static在类中可以修饰变量和方法。

接着是static独有的特点,:

  1. 会随着类的加载而加载

public Student(){
  system.out.println(666);
}
Student student=null;
//写到这里。Student一旦出现,系统看到类的名字,就会加载到内存。

    2. 优于对象存在

public Student(){
  system.out.println(666);
}
Student student=new Student
Student studentOne=new Student
//类只加载一次,加载的同时Student里边的内容已经在内存中出现了;
//new出来的对象,出现了两次,构造方法执行了两次;但没有执行。

  3. 被所有对象共享

  4. 可以通过类名调用

以上,static的特点就介绍完了,之所以在前两个方法举出例子是因为作者觉着有必要拿出来详解一哈。

  再然后就是static的出现特别广泛,main方法里有它,它也可以单独拿出来用,就很好奇静态变量跟成员变量之间的区别了。

这里看一下静态变量跟成员变量之间的区别

  有3点,1、所属不同;2、内存中出现的位置不同;3、内存中出现时间不同。

  所属不同:

    静态变量也称为类变量;

    成员变量称为实例对象(对象变量);

  内存中出现位置不同:

    静态变量存储于方法区的静态区。

    成员变量存储区堆内存。

  内存中出现时间不同:

    静态变量随着类的加载而加载,随着类的消失而消失;

    成员变量随着对象的创建而存在,随着对象的消失而消失。

 最后附上刷过的题; 

    public class Student {
      static{ System.out.println("Student 静态代码块"); } { System.out.println("Student 代码块"); } public Student(){ System.out.println("Student 构造方法"); }  
      }
public class StudentTest {
  static
{ System.out.println("执行顺序"); } public static void main(String[] args) { System.out.println("main方法里边的内容代码块不难"); Student s1=new Student(); Student s2=new Student();    }
}

可以看出代码块的顺序以及打印出来的结果大家可以放在评论区,可以一起为刚上路的小白做参考呀!

posted @ 2022-05-07 16:05  凤梨小屋  阅读(106)  评论(1)    收藏  举报