类中可以包含的内容(需要记)
1.成员变量(成员变量属于方法,可以不赋初始值,当创建对象(调用构造方法时)会赋初始值)
2.方法
3.构造方法(特殊的方法):构造方法运行是从执行开始的(代码的是实现过程是先编译再运行),可以初始化成员变量(目的在于运行时能够顺利通过),若已被代码块赋值,不会进行重新赋值(非初始值)
4.代码块:以大括号{}包裹的都是代码块,代码块分静态(有static修饰)和非静态(无static修饰)
5.内部类
执行顺序
1.代码执行分为两大部分:编译→执行
2.代码块(静态先于非静态作用于编译过程)→构造方法
3.当有继承关系存在时:执行顺序为父静态代码块-子静态代码块-父类非静态代码块-父类构造方法-子类非静态代码块1-子类构造方法(需要记)
static
1.static表示静态的当有static修饰时,保存后即会存在与内存当中(静态域),永久保存,所以当我们用static修饰方法时,通过类名即可进行方法调用,无需创建对象。
2.拓展内容:static优先于对象存在,因为static的成员随着类的加载就已经存在。
内存内都包含什么东西
1.静态:当保存时,即会存在于静态域,永久进行保存
2方法区:存放方法
3寄存器:计算当前代码行数的
4栈(stack):==是通过栈内地址进行判断,地址是以0x(代表16进制)开头;栈内存放的是变量地址(局部变量/基本数据类型)
5堆(Heap):equals是通过堆来进行比较;堆内存的是真实的对象
注意:以上五个内存分区不是相互独立存在的,会有相互交叉的情况。