类变量和类方法相关知识
Posted scanner小霸王
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了类变量和类方法相关知识相关的知识,希望对你有一定的参考价值。
1.类变量(静态变量)
a)类变量内存布局
ii)类变量存放在堆空间(jdk8以后),方法区(jdk8以前)
ii)静态变量被对象(指的是同一个类的所有对象)共享
ii)类变量在类加载的时候就生成
ii)类变量是类加载时候就创建了,所以我们没有创建对象实例,也可以通过雷鸣,类变量名来访问
ii)生命周期随着类的加载而加载,随着类的消亡而消亡
b)语法
2类方法
a)静态方法只能访问静态属性或者静态方法;但可以通过创建一个对象,访问对象里面的方法;
b)类方法不允许使用和对象有关的关键字,如:this、super;
c)普通方法既可以访问静态成员,也可以访问非静态成员。
3.main主方法
a)main是java虚拟机调用,所以只能是public,因为和虚拟机不再同一个类
b)执行main()方法时候是不需要创建对象的,所以,必须是static
c)string类型的数组参数(String[] args),
执行程序的时候可以传入参数,
可以在idea中传入
4.代码块
随着类的加载而执行,而且只执行一次
a)类什么时候加载
ii)创建对象实例的时候(new)
ii)创建子类的对象实例,父类也会被加载(父类先被加载)
ii)使用类的静态成员时候(静态属性,静态方法);
b)普通代码块是在创建一个对象的时候才会被加载。和类是否加载没有关系
c)新建一个对象时候(没有继承)
d)子类实例的时候
会先调用super();在调用普通代码块
e)有继承,也有静态代码块
ii)bbb继承aaa
ii)new bbb();顺序:
第一步骤:类加载,先加载父类 aaa , 先aaa的静态代码块
第二步骤:加载子类,调用子类bbb的静态代码
第三步骤:对象的创建,先加载父类的构造器,再普通的代码块
5.final 关键字,final修饰通常叫做常量
a)不需要被父类继承,可以给final修饰
b)不希望父类某个方法被重写时候,可以final修饰
c)不希望属性被修改时候(包括局部变量),属性可以final修饰
d)final不能修饰构造方法
e)final和static往往搭配使用,当这样搭配时候,内存空间不用反复重复申请和释放。
f)包装类、String类都是final类
以上是关于类变量和类方法相关知识的主要内容,如果未能解决你的问题,请参考以下文章